41 #if (BNCURVE == BN256)
42 #ifdef MONTGOMERY_ARITHMETIC
44 static const fp12_t var_a = { { { {0xAEBFE6F1, 0xFB3A35DE, 0xCE9A67B2, 0x3464DE3B, 0x1C8FC2C0, 0xF8C7ADDD, 0x75D1A033, 0x634CDD45},
45 {0x31BCB1CD, 0x6FF47B01, 0x448D8301, 0xD3B2A06D, 0xD79DBC36, 0xDCCE0FBB, 0x72CF8404, 0x37C4C405} } ,
46 { {0xF54FB8C7, 0xE2D5263C, 0xAEBA6EFA, 0xE76067E5, 0xB0BB9C4C, 0x7B25C1A1, 0x0C822EE3, 0x6C266408},
47 {0x736920DC, 0x66B59B78, 0x9350F9D7, 0x7042563F, 0xE4B45959, 0x05D3060F, 0x9EB1EB29, 0x6E3F9D82} } } ,
48 { { {0x14066043, 0x311EE5AF, 0xD9723566, 0xDA6F7F16, 0x71615CF1, 0x92E7B68B, 0x3ABB1B1F, 0x317E3ED5},
49 {0x9EA6C64A, 0x1ADC5E4F, 0x6BA5F865, 0xE46C5A74, 0x383F711F, 0x8D39473D, 0x64129C8F, 0x575B9D85} } ,
50 { {0xDF7984BF, 0x24169969, 0x7000C581, 0x5D50030D, 0x37190DB8, 0x61043410, 0x15CD7150, 0x69A80A49},
51 {0xFF4E8B2B, 0xEFA42FFD, 0x1291D106, 0x67655AB8, 0x50AD5800, 0xC7AAFE53, 0xB95C5274, 0x9C7952B2} } } ,
52 { { {0x1B3EA1A0, 0x40F8DBB0, 0xDB840E8F, 0x92CD4F69, 0x255F03D8, 0x655A48C2, 0x7151BDB6, 0xAFF73915},
53 {0x22ABA616, 0x83267464, 0x0CF423CD, 0x749F8A92, 0xEA8846CC, 0x4385C9EC, 0xD2A2BF95, 0x25B8F94A} } ,
54 { {0xF640678A, 0x47AF295F, 0x408C5A4F, 0x11F15D04, 0x96572453, 0x5229CC47, 0x258BC94D, 0x0BFDEEC3},
55 {0xD540D8E2, 0xB961396E, 0x1EDA8C4F, 0xC25EF772, 0x0345CB17, 0xD2EDCC7A, 0x25EE01A0, 0x1C81E788} } } } ;
56 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
57 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
58 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
59 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
60 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
61 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
62 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
63 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
64 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
65 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
66 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
67 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
69 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 861 a000");
70 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 862 a001");
71 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 863 a010");
72 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 864 a011");
73 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 865 a100");
74 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 866 a101");
75 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 867 a110");
76 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 868 a111");
77 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 869 a200");
78 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 870 a201");
79 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 871 a210");
80 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 872 a211");
82 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 873 a000");
83 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 874 a001");
84 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 875 a010");
85 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 876 a011");
86 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 877 a100");
87 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 878 a101");
88 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 879 a110");
89 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 880 a111");
90 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 881 a200");
91 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 882 a201");
92 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 883 a210");
93 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 884 a211");
96 static const fp12_t var_a = { { { {0xA26BACFF, 0x36F353D7, 0xADE56C53, 0xDA80E3DF, 0xD1BD1F34, 0x0CC2557E, 0xC49CF647, 0x3D092377},
97 {0xC2777B7B, 0xB3633874, 0x7A5267F4, 0x38356D54, 0x822A9502, 0x8A7F1828, 0x2670F482, 0x3007545B} } ,
98 { {0x689914DD, 0x50B43161, 0xF29BA840, 0xF2359BAD, 0x5D42D0AC, 0xCBACD62D, 0x6336539C, 0x114FE278},
99 {0x5D42EF7F, 0xCEFBFA5B, 0xE116C411, 0x48EDAD30, 0xE2983DE6, 0xAE3BD622, 0x896E5CE0, 0x3738E627} } } ,
100 { { {0x99456338, 0x14D115D5, 0xC89C57F0, 0xC5A1ECAF, 0xACD5613F, 0xFDA70201, 0xD98B8392, 0x0BE52E6B},
101 {0xAB10C002, 0xAF91464C, 0x86B54F6F, 0x1E542790, 0x90125B45, 0xE1795851, 0x863C0864, 0x3274515C} } ,
102 { {0x3B4C1936, 0x4891BC67, 0xD839D5DD, 0xB35C06FE, 0x1F15CA8B, 0x5E68DCA0, 0x39DF65E8, 0x06CFA125},
103 {0x002B46CC, 0x332767C8, 0x81E6ECAF, 0xC0D36DF1, 0xD75954BD, 0xE2972D7B, 0x8F5AFD55, 0x33451F88} } } ,
104 { { {0x43A6285C, 0xE8F4C58D, 0xD69EFE28, 0xE24D2E3E, 0xA2E8D152, 0xCCD889E0, 0x992D8F3E, 0x33771411},
105 {0x44F72B5A, 0x7F7643E4, 0x59D61247, 0xEEFDC166, 0xFAF8EDC4, 0xD069041C, 0x9BFB8E36, 0x75C7D874} } ,
106 { {0xD59EE51D, 0x38C79228, 0x191B600A, 0x1D3C447D, 0xC4005D42, 0x8D7AE415, 0x4DA99163, 0x3406B6CE},
107 {0x25A65AFC, 0xF33B43A0, 0x279CC3DF, 0xF4D8678B, 0xC9CCA675, 0xF769964D, 0xDDA2838C, 0x5A125C18} } } } ;
108 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
109 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
110 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
111 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
112 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
113 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
114 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
115 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
116 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
117 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
118 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
119 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
121 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 885 a000");
122 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 886 a001");
123 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 887 a010");
124 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 888 a011");
125 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 889 a100");
126 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 890 a101");
127 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 891 a110");
128 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 892 a111");
129 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 893 a200");
130 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 894 a201");
131 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 895 a210");
132 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 896 a211");
134 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 897 a000");
135 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 898 a001");
136 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 899 a010");
137 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 900 a011");
138 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 901 a100");
139 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 902 a101");
140 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 903 a110");
141 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 904 a111");
142 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 905 a200");
143 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 906 a201");
144 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 907 a210");
145 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 908 a211");
148 static const fp12_t var_a = { { { {0x6869E235, 0xB79D337C, 0xD4F3F485, 0x0B6FFD05, 0xF0D1CC10, 0xFE846C57, 0xEBFD324C, 0xB83ED4A1},
149 {0xCEFE82AA, 0x2FB1FFB1, 0x9CBAADF2, 0x3808C5C9, 0xAD86C1C6, 0xED8812F0, 0x4CBD503A, 0x1151A63A} } ,
150 { {0x02580C99, 0x27E71674, 0xB2A43D77, 0x0C3FEF63, 0x8826F68F, 0xDF46221B, 0x88CB1FC8, 0x9BD6F362},
151 {0xD206F779, 0x1447BFBB, 0x27C6D630, 0x98B632F3, 0x4CE80F2A, 0x791D2A47, 0xDC8D7F7C, 0x38B971DA} } } ,
152 { { {0x11677560, 0x8A517F99, 0x15E7A2FC, 0xF7504546, 0x28BCE815, 0x20018F2D, 0x392F5818, 0x26D6EF3F},
153 {0x3CFE931E, 0xC30A731C, 0xCB627A17, 0x0EC7508D, 0xE2272918, 0xAC1417D9, 0x43DC2C05, 0x38B3AF77} } ,
154 { {0x660DA861, 0x1EDA0957, 0x22029156, 0x202173FC, 0xAB1DA16D, 0xE4F1542B, 0x12133646, 0x102867F9},
155 {0x9625B610, 0x9EB549C1, 0x258A4939, 0xAD6EFE18, 0x45C034A9, 0xE20128EE, 0xF44E89AF, 0x456A0ED1} } } ,
156 { { {0x6750846D, 0x68882EBE, 0x6B634C3F, 0x92F1F686, 0xDD90BA8C, 0xAEA5488C, 0xA9460DEF, 0x3A5A7806},
157 {0xCE7059E2, 0x4568D839, 0x8F3CE7E1, 0x0115F86B, 0x85AC263A, 0xA50EAFBE, 0x664D5A20, 0x02C4ACC0} } ,
158 { {0xC92DCFC1, 0x257A9E52, 0x67FE0CB1, 0x3655AD6C, 0x6A33D855, 0x1FA7AD45, 0xD39E8416, 0x966484C0},
159 {0xB2A46956, 0x9AFE4DDA, 0xCDEC8C18, 0xC2A0A3AC, 0x9FAE0539, 0xC88A5BF6, 0x0DD871AC, 0x9A9D3447} } } } ;
160 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
161 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
162 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
163 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
164 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
165 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
166 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
167 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
168 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
169 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
170 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
171 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
173 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 909 a000");
174 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 910 a001");
175 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 911 a010");
176 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 912 a011");
177 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 913 a100");
178 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 914 a101");
179 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 915 a110");
180 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 916 a111");
181 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 917 a200");
182 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 918 a201");
183 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 919 a210");
184 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 920 a211");
186 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 921 a000");
187 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 922 a001");
188 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 923 a010");
189 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 924 a011");
190 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 925 a100");
191 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 926 a101");
192 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 927 a110");
193 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 928 a111");
194 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 929 a200");
195 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 930 a201");
196 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 931 a210");
197 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 932 a211");
200 static const fp12_t var_a = { { { {0xD4D129E1, 0x59FCDB7A, 0xFD915D65, 0xA7BABE48, 0xF4824839, 0x34EFD26E, 0xE47A4858, 0x3D02E0E6},
201 {0x4E5331CF, 0xBD0E3C62, 0xE448FA06, 0xEA188252, 0xD001B169, 0x5B5C0416, 0x9EF62696, 0x7370157A} } ,
202 { {0x954FFD91, 0x44D63838, 0xA71FA153, 0x14C1CAEF, 0xACE7F743, 0x19152158, 0x73626001, 0x73251DFE},
203 {0xF0ABA7E4, 0x0FF9B9FF, 0x1A8A7A80, 0xB2343840, 0x962AF1FD, 0xAF0FBA21, 0x0F08A6C1, 0x38E2230D} } } ,
204 { { {0xFB92A89A, 0x66B3992D, 0x4AE41493, 0xD56D16C9, 0xAF181A34, 0x407E9565, 0x12BEE7EE, 0x0220F62F},
205 {0xC31F9DCE, 0x3409E1EF, 0x204CFE4D, 0x80DA2E10, 0x59E3D25E, 0x5A871FCC, 0x52F41934, 0x18409F01} } ,
206 { {0xD0314D43, 0x83334FE4, 0x36A8A4B5, 0x71BCD9C2, 0x06EBD8E0, 0x5F6E28E1, 0x59264D96, 0x3733D336},
207 {0xB90A3BCE, 0x07316E18, 0x36396614, 0x45058051, 0x135D11B4, 0x1EEC967F, 0xA113AC17, 0x6976EF8E} } } ,
208 { { {0xA614342A, 0x97A004F7, 0x4F668A20, 0xF988B35A, 0x499208B2, 0x57F72B4F, 0x1B501165, 0x8A87EA3D},
209 {0xBAD17908, 0xADC223CB, 0xE5A1A929, 0xC3A91220, 0x032E40B7, 0x1CFD9927, 0xED4F61AA, 0x67D1236C} } ,
210 { {0x0695B717, 0xE7B2FD0F, 0xBBED589E, 0x4D6BBDE5, 0x5B8F1B0A, 0x694956B3, 0xEE23D4BC, 0x56EDA0BE},
211 {0x7464D276, 0x87D6E9F9, 0x4785666E, 0x44F16BE8, 0xFD028F1E, 0x9EDF0159, 0x6CA3C9E5, 0x745CCF3B} } } } ;
212 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
213 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
214 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
215 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
216 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
217 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
218 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
219 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
220 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
221 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
222 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
223 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
225 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 933 a000");
226 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 934 a001");
227 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 935 a010");
228 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 936 a011");
229 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 937 a100");
230 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 938 a101");
231 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 939 a110");
232 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 940 a111");
233 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 941 a200");
234 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 942 a201");
235 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 943 a210");
236 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 944 a211");
238 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 945 a000");
239 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 946 a001");
240 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 947 a010");
241 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 948 a011");
242 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 949 a100");
243 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 950 a101");
244 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 951 a110");
245 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 952 a111");
246 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 953 a200");
247 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 954 a201");
248 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 955 a210");
249 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 956 a211");
252 static const fp12_t var_a = { { { {0x3EFFD416, 0xF3EC7E44, 0x34E0DBDF, 0xD9FBE808, 0xAB61308E, 0x00833B85, 0xA746C8D6, 0x1F3CC83C},
253 {0x7534E662, 0x36B0AED6, 0xE0844D20, 0x4174AF78, 0xBBFE4CCD, 0x374F7A5C, 0x53D18C7B, 0x7A0AA62A} } ,
254 { {0x195D0F4C, 0x7D16FC14, 0x0A328339, 0x22F85102, 0x4403D465, 0xD480168C, 0xDAAE98C4, 0x32667F4F},
255 {0x89307A15, 0x99BD6CF0, 0x76ADBE5A, 0x75DBEBE5, 0x3C6D7BB6, 0xB70DC95A, 0x18D4CD2A, 0xA15AD26B} } } ,
256 { { {0x2A4F5811, 0x83E51B2C, 0x204EB6E2, 0x3E3A65CF, 0xBC0C95EE, 0xC42D10F1, 0x5DABD33B, 0x08850514},
257 {0xBE9450A7, 0xD4A689B3, 0x0DC77A7A, 0xD76FFF79, 0xBC93AADE, 0x2FF35B6C, 0x6F2D671E, 0x53E8B050} } ,
258 { {0x95F4158F, 0x4ACA05AF, 0xCA35C574, 0xF68C6BB5, 0xA2C0B36B, 0x1873872F, 0x84E5EBFF, 0x4085822F},
259 {0x60BA16FC, 0x455E1900, 0xEAA44810, 0xA1AAC023, 0xB880AACE, 0xF0FD7AE8, 0x4D36DB92, 0x38FB8F06} } } ,
260 { { {0xD25409F1, 0x4FFB01F0, 0x3DE0FF95, 0xF13B4422, 0x642D3B49, 0x2BE8DEFC, 0xE77BC87C, 0x8CED7571},
261 {0xFEE76694, 0x8F300517, 0x93758E07, 0x4CC56A82, 0xEEDB0F54, 0x8B621E25, 0xE76EF818, 0x3A177383} } ,
262 { {0x846976F5, 0x569FD880, 0x4D08324E, 0x7A920D57, 0x0DC8AD27, 0xC2E23F91, 0x5763E16D, 0x0E237580},
263 {0x6221DE23, 0x93D4165F, 0xCD12DFE5, 0x91494EE5, 0x5AB68CAC, 0xD29B6818, 0xB2CE310A, 0x818CDA6A} } } } ;
264 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
265 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
266 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
267 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
268 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
269 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
270 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
271 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
272 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
273 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
274 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
275 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
277 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 957 a000");
278 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 958 a001");
279 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 959 a010");
280 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 960 a011");
281 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 961 a100");
282 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 962 a101");
283 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 963 a110");
284 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 964 a111");
285 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 965 a200");
286 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 966 a201");
287 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 967 a210");
288 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 968 a211");
290 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 969 a000");
291 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 970 a001");
292 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 971 a010");
293 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 972 a011");
294 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 973 a100");
295 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 974 a101");
296 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 975 a110");
297 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 976 a111");
298 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 977 a200");
299 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 978 a201");
300 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 979 a210");
301 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 980 a211");
304 static const fp12_t var_a = { { { {0x3D8836FA, 0x5FD54329, 0xDD82A2B3, 0xA56A7546, 0x378EB949, 0xC125AAE3, 0xAB8A37AC, 0x3B309D73},
305 {0x9CF74518, 0x707BE7C2, 0x9C517B48, 0x68A1C5D8, 0x3A5A1D79, 0xD57AC48C, 0x6414AB03, 0x77078FF3} } ,
306 { {0xAB763D61, 0xA96E48E8, 0x90E0B334, 0x8A17F224, 0xBFF4D0BF, 0x57363727, 0x37F201A8, 0x9E850E20},
307 {0x942C9DE3, 0x8BF228F7, 0x70DAE7BD, 0xF895C078, 0xB5387F60, 0xE8D64B6C, 0xB0F71D53, 0x0A0CD255} } } ,
308 { { {0xF866F52C, 0xB8F6EEF4, 0xA535937A, 0x5CFC295F, 0x1A9BFF06, 0x00C256C8, 0x111B0402, 0x8A9EBCBE},
309 {0x006173F4, 0x7F590EC5, 0x4ED0B390, 0xF334A206, 0x8625B734, 0x927DF64A, 0x8E1096CF, 0x52ED4C96} } ,
310 { {0x5078D048, 0x4D75EAB6, 0x3F49F8F2, 0xB56A2206, 0xA4A8ABEC, 0x6C3866BD, 0x0ED4ABF2, 0x0AE49F86},
311 {0x85283B8E, 0x32E68349, 0x7B721B98, 0xD9B53EED, 0xAE4F57D4, 0xAF8212BD, 0xB0F80944, 0x4A8EB194} } } ,
312 { { {0x45B8C860, 0x66721413, 0x415DC1DC, 0xA63E2E82, 0xF87F163A, 0x7E36485A, 0x03A9D4BE, 0x93518E9A},
313 {0x9295D7E6, 0xC3401130, 0xD21A14E4, 0xB5B4A2C3, 0xBDE85EF6, 0x4C1084FB, 0x0CCAC6F9, 0x13C1CCDF} } ,
314 { {0x60596FEB, 0x479EE32D, 0xD24739AC, 0x0FD6E7C4, 0xF590C934, 0x76377C73, 0x85191791, 0x824A6128},
315 {0x762B20BE, 0x94ED8AA4, 0x973634F9, 0xC16CFA2F, 0x3089D9AB, 0xBB964EF6, 0x98D7B8BE, 0x596F4A1F} } } } ;
316 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
317 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
318 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
319 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
320 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
321 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
322 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
323 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
324 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
325 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
326 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
327 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
329 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 981 a000");
330 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 982 a001");
331 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 983 a010");
332 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 984 a011");
333 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 985 a100");
334 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 986 a101");
335 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 987 a110");
336 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 988 a111");
337 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 989 a200");
338 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 990 a201");
339 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 991 a210");
340 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 992 a211");
342 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 993 a000");
343 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 994 a001");
344 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 995 a010");
345 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 996 a011");
346 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 997 a100");
347 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 998 a101");
348 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 999 a110");
349 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1000 a111");
350 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1001 a200");
351 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1002 a201");
352 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1003 a210");
353 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1004 a211");
356 static const fp12_t var_a = { { { {0xEF486EE5, 0x703784BD, 0xAC717BD3, 0x5D4BB44A, 0x0D0A94A4, 0xBF644812, 0x6821B60D, 0x58F96D11},
357 {0xBBDAB7D7, 0x454BE3CC, 0x500ECC11, 0x7659CBF1, 0xC4E28D58, 0x8B3CE6E9, 0x881B8B2B, 0x033F387E} } ,
358 { {0x1F1C8F11, 0xA26F3FDB, 0xF5CE24CA, 0x27B0F5AA, 0x9D37C8E1, 0x0BC68EC7, 0x81ECCB28, 0x20782F0E},
359 {0x31D1C205, 0xB8A25571, 0xC1151359, 0x8DC6C407, 0x7790F648, 0x8EEEC9F1, 0x51879F99, 0x3A22ED93} } } ,
360 { { {0x5D0D8FF0, 0xDD6A8270, 0x10A7BBA9, 0x48AE0973, 0x42370878, 0x4AB1F6FC, 0xE745D9CD, 0x21752F18},
361 {0xE349B08C, 0x0D377545, 0xF03B498C, 0xFE5FD42A, 0x85E60EF8, 0xD66FC1B5, 0xA853BBC7, 0x68E7F495} } ,
362 { {0xF4A01D6B, 0x6561359A, 0xCF6CCAEC, 0xC605B3F8, 0x85E552B5, 0xB37A7FBA, 0xADC8CF86, 0x2CAF3535},
363 {0x1E5D184D, 0xA55520D3, 0x213BCC66, 0x04C27E77, 0x6BC2F3A1, 0xB369BF22, 0x83506742, 0x36C9FF1B} } } ,
364 { { {0xF74DAE13, 0xB655B2B5, 0x9365B18C, 0x31775523, 0x7E19A00D, 0xA864674C, 0x29CC781E, 0x36E8AF20},
365 {0x70D0AD60, 0x22665748, 0xD9E8207E, 0x16097C5E, 0xE75A5800, 0xB67B6760, 0x153504E5, 0x8CFED5FE} } ,
366 { {0x6D9CC091, 0x95D80AD3, 0x054BC5F2, 0xEB9ED136, 0x8F9DBCEB, 0xE9EFBD4B, 0x707B2AD9, 0x1CB05A85},
367 {0xA6E64317, 0x64FAF7A8, 0xDE85F072, 0xEE619835, 0xF50FCF4D, 0xB04B3874, 0xD5EF9208, 0x934A4F1B} } } } ;
368 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
369 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
370 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
371 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
372 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
373 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
374 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
375 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
376 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
377 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
378 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
379 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
381 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1005 a000");
382 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1006 a001");
383 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1007 a010");
384 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1008 a011");
385 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1009 a100");
386 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1010 a101");
387 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1011 a110");
388 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1012 a111");
389 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1013 a200");
390 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1014 a201");
391 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1015 a210");
392 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1016 a211");
394 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1017 a000");
395 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1018 a001");
396 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1019 a010");
397 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1020 a011");
398 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1021 a100");
399 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1022 a101");
400 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1023 a110");
401 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1024 a111");
402 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1025 a200");
403 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1026 a201");
404 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1027 a210");
405 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1028 a211");
408 static const fp12_t var_a = { { { {0xC47BAF60, 0x0476EEE4, 0x89D18CAB, 0xCC27FD6F, 0x55F3B5C9, 0x664B08DD, 0x963F06E5, 0x26A62889},
409 {0xCC2FE880, 0x8CDE5B25, 0x340EFA9B, 0x8499D801, 0xD23AE6EC, 0xB2955943, 0x77F63035, 0xB58C4E02} } ,
410 { {0xCD1230B5, 0x3FCA1B01, 0x43F881E0, 0x265BC998, 0xA928C1AB, 0x4164C137, 0xB10AB405, 0x0A09258B},
411 {0x305910F2, 0xFC28DC96, 0x2189F78F, 0x12ADE253, 0xFCFD1850, 0x0E3C0EE4, 0xF095486B, 0x9B50C1DE} } } ,
412 { { {0x50099596, 0xCA295CE7, 0x9922819D, 0x1A0E188D, 0xACA89C4F, 0xFC95B587, 0x9698851B, 0x65953C7C},
413 {0x5EFDDB2E, 0x544A3863, 0x29597733, 0x115AAA4F, 0x2F1594FF, 0x5357CA6F, 0x76427559, 0x2D5EA31A} } ,
414 { {0x7ADD4FD7, 0x681896E3, 0xB09E4EA0, 0x40D47FDB, 0xBB0AF790, 0x461A13CB, 0x19CE5AED, 0x3FC6BB03},
415 {0x24746A2A, 0x761DE147, 0x128CA92F, 0x3AAE6138, 0x68A5CED9, 0x5446EDC6, 0x7CE71B14, 0x9449068C} } } ,
416 { { {0xE0B8301B, 0x16596AEC, 0x6CF5BDBD, 0xAA8FBE08, 0x6EDD56B6, 0x011956F2, 0x100EF4F7, 0x0E6AB3CA},
417 {0x8FA24487, 0x82F727CE, 0xE02A21F7, 0x8697AD19, 0xE50CF7EB, 0x21BE1FF7, 0xB937B723, 0x3A031D33} } ,
418 { {0x05B064B8, 0x18975BF4, 0xF3037BA1, 0x385EDA2E, 0xA7826EA3, 0x6F5810FE, 0x106FB2CC, 0x2F77582C},
419 {0x899EA5AA, 0xDAC8C7B8, 0x0511AA76, 0x1A6271C7, 0xCED0A9CA, 0x1079F8C9, 0xE1DEFBD5, 0x0E53AD0F} } } } ;
420 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
421 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
422 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
423 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
424 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
425 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
426 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
427 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
428 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
429 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
430 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
431 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
433 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1029 a000");
434 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1030 a001");
435 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1031 a010");
436 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1032 a011");
437 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1033 a100");
438 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1034 a101");
439 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1035 a110");
440 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1036 a111");
441 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1037 a200");
442 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1038 a201");
443 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1039 a210");
444 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1040 a211");
446 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1041 a000");
447 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1042 a001");
448 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1043 a010");
449 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1044 a011");
450 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1045 a100");
451 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1046 a101");
452 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1047 a110");
453 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1048 a111");
454 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1049 a200");
455 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1050 a201");
456 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1051 a210");
457 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1052 a211");
460 static const fp12_t var_a = { { { {0x3B4EE779, 0xEDCB96D6, 0xFEF9C9AD, 0x57DEDE83, 0xD7D613ED, 0xFA0CC30C, 0xEE43F525, 0x246BA2DA},
461 {0xC55C164E, 0x1DD88D7F, 0x81984F07, 0xA9A2ECAA, 0xDCD8B737, 0xA32B759C, 0xEA68D944, 0x26D039E9} } ,
462 { {0x4C5B4558, 0x58B5811E, 0xDFDAD38F, 0x8C528E09, 0x07B2DE9C, 0x57A907D9, 0x3EB0DA10, 0x3B5E8BA8},
463 {0xECC4FFC0, 0x2E7CD1DE, 0x9E313FB6, 0xB311F99C, 0x1168AC62, 0xBACA9E21, 0x8763494E, 0x7DA1ECDB} } } ,
464 { { {0x69893114, 0x599094E9, 0xA524F586, 0xD68C40D0, 0x7C280E6B, 0x70CDDAA1, 0x9694AFB0, 0x32FBA4CE},
465 {0x6B3D783F, 0x2E82965E, 0x346B14B8, 0x44D0113B, 0xFDC3ECCF, 0x62651D6F, 0xAFDC04E8, 0x38DDDF4E} } ,
466 { {0x3F67A3C4, 0x2F7E4349, 0xF1C8D553, 0x4E1FD25E, 0x12E55DA3, 0x767B6E71, 0x4A42F9B6, 0x94A7F5F0},
467 {0x2D70D2F8, 0x7EA3F4FE, 0xB46E2175, 0x818BCE1A, 0xC9B70E1F, 0xEEEF9B2A, 0x15FC2C25, 0x439C873F} } } ,
468 { { {0xF72F8F7D, 0x5E94E99D, 0x037D3EFB, 0x28F6A48D, 0x3F03E170, 0xE21DEE33, 0x71CBFFA9, 0xB31384A7},
469 {0xE629BE65, 0xBC2FDA99, 0x20202594, 0x1E79B972, 0x2FAD7353, 0xE59424CE, 0xB10DF3BA, 0xB7068FAD} } ,
470 { {0x2079365C, 0xA697D84B, 0xD260CEA1, 0x0F38D530, 0xB545E230, 0x608134CC, 0x1EEFD8EE, 0x53326E32},
471 {0x3D642AF6, 0xCDC6132C, 0xC0BFFD27, 0x9932A705, 0x2FAF28E8, 0x230569A1, 0x35994121, 0x8F14C9BB} } } } ;
472 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
473 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
474 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
475 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
476 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
477 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
478 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
479 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
480 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
481 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
482 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
483 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
485 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1053 a000");
486 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1054 a001");
487 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1055 a010");
488 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1056 a011");
489 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1057 a100");
490 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1058 a101");
491 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1059 a110");
492 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1060 a111");
493 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1061 a200");
494 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1062 a201");
495 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1063 a210");
496 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1064 a211");
498 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1065 a000");
499 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1066 a001");
500 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1067 a010");
501 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1068 a011");
502 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1069 a100");
503 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1070 a101");
504 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1071 a110");
505 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1072 a111");
506 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1073 a200");
507 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1074 a201");
508 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1075 a210");
509 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1076 a211");
512 static const fp12_t var_a = { { { {0xC525026E, 0x09626411, 0xF0F763DE, 0xC980697D, 0xBB7BB5D2, 0xE6FF0A8F, 0x27CE0D66, 0x02625CE9},
513 {0x3EAF2E59, 0xD1D074E8, 0x9A70E4D5, 0xEBE816DF, 0x0624C2DD, 0xB9E775E9, 0x57CB5BBA, 0x33D8F408} } ,
514 { {0xBA3B34FA, 0xC4873A68, 0x7F489518, 0xA8DCB725, 0x2A9FC925, 0x98D17EB6, 0xA0F1E970, 0x79744878},
515 {0x5CFC23F5, 0x27890ACE, 0x6E88C798, 0x88EFCF2D, 0x2EA7417D, 0xECE9D95E, 0xCDC5829E, 0x7B0EE85B} } } ,
516 { { {0xC401DCDC, 0x5D1B8E4A, 0xE77CA47E, 0xCDA3BD2C, 0x25CD7041, 0xF45CA37D, 0x5F6C3CB0, 0x5279D8D1},
517 {0x00E00128, 0x72B159ED, 0x46A9AEC6, 0xAEB3A740, 0x67D9F0C1, 0x596F2B30, 0x0BD68B60, 0x21F4342C} } ,
518 { {0x73818513, 0x92095AD6, 0x20E25DCF, 0xE3BEC042, 0x5CEDC1E7, 0xA7069C70, 0x79597F53, 0x5013ABDD},
519 {0x571DAE3D, 0x92EDBC4F, 0xBABFBCFD, 0x2AF764B4, 0x02124D3F, 0xCD610EB9, 0xC6FD81D8, 0x09A58EFD} } } ,
520 { { {0xD3522B35, 0x67947755, 0xBC687285, 0xB1CAE38B, 0x1734313C, 0xA6011346, 0xC376714B, 0x0292366C},
521 {0x6E9851AB, 0xA92D92AC, 0xD0FBFEB3, 0xF50AC3F1, 0x3CBEB2E6, 0x5A61745D, 0xB3A6155C, 0x9B44EEDF} } ,
522 { {0xB670349C, 0x18FC890B, 0xDCC3BFE9, 0x87149B1C, 0x3040ED90, 0x149F22E6, 0x512A3562, 0x1FF8A0E9},
523 {0x9352FAB7, 0x17AC877D, 0xCC98729F, 0x4770C717, 0x93141819, 0x4F34AB48, 0xC811E9D3, 0x81A2703F} } } } ;
524 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
525 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
526 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
527 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
528 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
529 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
530 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
531 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
532 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
533 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
534 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
535 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
537 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1077 a000");
538 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1078 a001");
539 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1079 a010");
540 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1080 a011");
541 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1081 a100");
542 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1082 a101");
543 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1083 a110");
544 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1084 a111");
545 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1085 a200");
546 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1086 a201");
547 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1087 a210");
548 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1088 a211");
550 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1089 a000");
551 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1090 a001");
552 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1091 a010");
553 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1092 a011");
554 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1093 a100");
555 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1094 a101");
556 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1095 a110");
557 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1096 a111");
558 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1097 a200");
559 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1098 a201");
560 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1099 a210");
561 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1100 a211");
564 static const fp12_t var_a = { { { {0xE256C255, 0x2A39B078, 0xEA0A1551, 0x87751492, 0xC81301B4, 0x719E9DEA, 0xF9A3E16E, 0x42C62ADA},
565 {0x533A1D01, 0x7DFD42D8, 0x342D1EAB, 0x9B68AEFF, 0xC4E411F2, 0x3FD7B251, 0x39A7B4E4, 0xA3CA9941} } ,
566 { {0xE883A6F6, 0x5D62616A, 0xDDB7E0C1, 0x5C97E897, 0x90BB7BBF, 0x68FDB203, 0xCF5B7A59, 0x2D508B4A},
567 {0x7AFB2B63, 0xBD20EC3F, 0xCCFA1EA5, 0xA8851B55, 0xCA67AC9D, 0xFA8C37E1, 0x7A461FEA, 0x2B959C3A} } } ,
568 { { {0x3470DDAA, 0xB2119835, 0x1BA03AD6, 0xDF296CDC, 0x24B3E657, 0xEB274C24, 0xEACA348E, 0x2BEA7E5E},
569 {0x16CF3E73, 0xF78E9C2F, 0x993EAACA, 0x68398E5B, 0xE40F1816, 0x91EE2F8A, 0x43964A98, 0x8136A643} } ,
570 { {0x115DA16C, 0x6B7513DA, 0x7544BF28, 0x177426B9, 0x0FB4BB85, 0x2F085CAA, 0x5DBA3E86, 0x0A78F470},
571 {0x734BD2F6, 0x8D4BB25E, 0xE1800297, 0x13661A3A, 0x8E582AE6, 0x55FB1E46, 0x86541359, 0x4FCF2D3B} } } ,
572 { { {0x2FD5E7D5, 0x0718247E, 0x78005D0A, 0x8227C0EE, 0x151456AA, 0x9C95C929, 0x3E1028F2, 0x07513B5E},
573 {0x1F349906, 0x1FF40600, 0x28E5607A, 0x24EE64E6, 0x8696B2CD, 0xD828FA85, 0x79A605BA, 0x7EFC47B8} } ,
574 { {0xBEA38EF0, 0x464A03A0, 0x4903BA2C, 0xB99FA06F, 0x911F65EA, 0xE30930B0, 0x6183C967, 0x2B631DD5},
575 {0xE74962C9, 0x8ED00A7D, 0x347AD25D, 0x5244E407, 0xC8C7A264, 0xE972B388, 0x92680580, 0x3567FEB9} } } } ;
576 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
577 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
578 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
579 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
580 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
581 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
582 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
583 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
584 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
585 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
586 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
587 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
589 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1101 a000");
590 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1102 a001");
591 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1103 a010");
592 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1104 a011");
593 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1105 a100");
594 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1106 a101");
595 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1107 a110");
596 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1108 a111");
597 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1109 a200");
598 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1110 a201");
599 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1111 a210");
600 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1112 a211");
602 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1113 a000");
603 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1114 a001");
604 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1115 a010");
605 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1116 a011");
606 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1117 a100");
607 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1118 a101");
608 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1119 a110");
609 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1120 a111");
610 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1121 a200");
611 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1122 a201");
612 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1123 a210");
613 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1124 a211");
616 static const fp12_t var_a = { { { {0x649A3524, 0x2D334053, 0xA59F6BA6, 0x6F68B09E, 0x7BF35495, 0xFFE6A406, 0x5CEB9C04, 0x4BCD9819},
617 {0x74EDDE59, 0xFDF439BC, 0x351229D2, 0x84E9B7CB, 0x3D808265, 0xA00B0B3D, 0x455FCE0C, 0x26410C59} } ,
618 { {0x3249A2EB, 0xFA85426B, 0x04F3FE15, 0xD12C4198, 0x03B4D0A9, 0x1BF1609F, 0xC42CAA79, 0xAACC3885},
619 {0x3CD2B07B, 0xC9F7B0CE, 0xEDE9223F, 0x2B57D2E6, 0x5F2AF12B, 0x3E4B2F8F, 0x47235149, 0x26375917} } } ,
620 { { {0x1318E804, 0x30DA57FE, 0x4D569A08, 0x37FEA3C9, 0x46D4B0B1, 0xA8B95384, 0x2E0CDCF9, 0x11FF5A74},
621 {0x42DC578B, 0x98C70704, 0x8FD280A0, 0x76C89610, 0x9B135DBF, 0x67A03B19, 0xCD1B01E6, 0x3627879C} } ,
622 { {0x354428D1, 0x8EA9D657, 0xA42570C9, 0x3AF6E4D2, 0xA0C8F466, 0x5910A861, 0x6E9DDB3B, 0x890614F5},
623 {0xDC936CE9, 0x46AD0C06, 0x3487D056, 0x68D948AB, 0x3B89952C, 0xDB3FB744, 0x4D993741, 0x68DDAB96} } } ,
624 { { {0x06B0B1D4, 0x16601BD1, 0x6E10C675, 0xB4C69D68, 0xAFD6859C, 0x1D1310C0, 0x9A9342CF, 0x5B19F98F},
625 {0x8F2AABA2, 0xF87ABF36, 0x8D801B68, 0xAEF5DA6C, 0x2F7E7042, 0xBC3496A6, 0x7B45949A, 0x3D5DCB73} } ,
626 { {0x31B3B4BE, 0x096CE923, 0x4F697061, 0xBC498C8F, 0x50E54D1D, 0x253E35AA, 0x07910163, 0x10926D16},
627 {0x2F1298DE, 0x0C8154FB, 0x30BD6A0D, 0xD009896B, 0x44818EE6, 0x48705CF2, 0x4C53A9D9, 0x44BC381B} } } } ;
628 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
629 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
630 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
631 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
632 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
633 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
634 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
635 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
636 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
637 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
638 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
639 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
641 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1125 a000");
642 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1126 a001");
643 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1127 a010");
644 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1128 a011");
645 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1129 a100");
646 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1130 a101");
647 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1131 a110");
648 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1132 a111");
649 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1133 a200");
650 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1134 a201");
651 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1135 a210");
652 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1136 a211");
654 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1137 a000");
655 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1138 a001");
656 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1139 a010");
657 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1140 a011");
658 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1141 a100");
659 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1142 a101");
660 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1143 a110");
661 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1144 a111");
662 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1145 a200");
663 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1146 a201");
664 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1147 a210");
665 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1148 a211");
668 static const fp12_t var_a = { { { {0xA5EA8A05, 0xE84D3057, 0x2E76C1D0, 0xAD11ED2A, 0xA04CA2BE, 0xE47B4CCE, 0x4977FAB1, 0x727F74DF},
669 {0x2333D996, 0x25A28599, 0x27163DAC, 0x0A04E01C, 0x3A4A4039, 0x203AB549, 0x3504A50B, 0x3B7BB75F} } ,
670 { {0x8E089364, 0x74A834A7, 0x2FC0EC4C, 0x20F99916, 0xFCA50223, 0x0935CE6C, 0x36B7CE0A, 0x8834061C},
671 {0x9CA40312, 0x24A7AF8C, 0x0BAB9D0B, 0x2B2B8366, 0x63433310, 0x0E601E41, 0xEB4D105B, 0x03FAC825} } } ,
672 { { {0x59A4A0C8, 0xAD501D0A, 0xB663DE17, 0xECB2EC45, 0x019C2BEA, 0x856052A5, 0xE3A0E1A7, 0x9CD8E92B},
673 {0xA49E2BD8, 0x29A44416, 0xDFDF3726, 0x2A5474FD, 0xFBED615C, 0x256663AD, 0x248E7E9B, 0x05A00C7C} } ,
674 { {0xB20A0078, 0xD65DE431, 0x6A608684, 0x2C5A65A0, 0x8BBA7D4B, 0x8A9390F2, 0xA5B38E4C, 0x37F7121C},
675 {0x294A9349, 0x9708CD86, 0x16ABBCE3, 0x2D72FC1B, 0x2BB183FD, 0xBA968FF9, 0x93DA3CD9, 0x316CBFD1} } } ,
676 { { {0x880D0E83, 0x6E39AC2C, 0x2EE99738, 0x38021595, 0xB83EB857, 0x891184E6, 0x10EE93DC, 0x221083B7},
677 {0xDB6E7184, 0x0A5A8580, 0xB2419957, 0xE88034A0, 0xAC1A03D9, 0x4FF25636, 0x2FED0742, 0x9EEC5AD4} } ,
678 { {0x07D463CA, 0x37AF7804, 0x28B4BC9C, 0xA946CC9D, 0xE5E6075F, 0x33DCB377, 0xFA1DB0E2, 0x6627AFD3},
679 {0x6487BD66, 0x68EEBBE9, 0xF9AE89E1, 0xD95FBD73, 0x80CDB337, 0xC47FAAF0, 0xAC3B81CA, 0x46FFE59C} } } } ;
680 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
681 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
682 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
683 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
684 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
685 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
686 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
687 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
688 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
689 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
690 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
691 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
693 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1149 a000");
694 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1150 a001");
695 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1151 a010");
696 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1152 a011");
697 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1153 a100");
698 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1154 a101");
699 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1155 a110");
700 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1156 a111");
701 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1157 a200");
702 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1158 a201");
703 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1159 a210");
704 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1160 a211");
706 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1161 a000");
707 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1162 a001");
708 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1163 a010");
709 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1164 a011");
710 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1165 a100");
711 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1166 a101");
712 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1167 a110");
713 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1168 a111");
714 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1169 a200");
715 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1170 a201");
716 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1171 a210");
717 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1172 a211");
720 static const fp12_t var_a = { { { {0x9DAA9627, 0x33FD4BFF, 0xBE4A3C00, 0x59DB0D2B, 0xAFC26938, 0x78C39E70, 0x7830753B, 0x4C5569C1},
721 {0x314D2311, 0xD151ED72, 0xC6DC9405, 0x0D172DAA, 0x37332276, 0x261C3C2E, 0x00809EFB, 0x4D31B7AE} } ,
722 { {0xF5D28B85, 0xA1E3A760, 0x93591735, 0x601CC5B1, 0xF3026267, 0x8A754BD2, 0xDE814E59, 0x5E564E0B},
723 {0x90AAFB1F, 0xA5ABA08E, 0x5D87E4AF, 0xBD0CAB5A, 0x4FDBA2F5, 0xC4AA2DD3, 0x1E6CD866, 0x5BE7E897} } } ,
724 { { {0xFD5360F5, 0x03B572CD, 0x8D0097A9, 0x179EC0D3, 0xCDC9065D, 0xD98EFC3A, 0xC22DBBD6, 0x631BB7EA},
725 {0x0DB79202, 0x85BD6997, 0x4306CE59, 0x62A7D866, 0x842E71FA, 0x31859470, 0x3D193C70, 0x59028C9E} } ,
726 { {0xE2C9E40C, 0x1A6640B3, 0xD1225044, 0x17BDF0DB, 0x9CFA5E51, 0x17AA08A2, 0xF95EBC4B, 0x65592E1C},
727 {0x75874D1F, 0x53F343D1, 0x3E9CEF04, 0xB4DD512A, 0xD33E18A4, 0x3C8B43FD, 0xD15753E5, 0x716F3FF8} } } ,
728 { { {0x1236AD1B, 0xE69DFF53, 0xC5B69A87, 0x3A2E6A07, 0xFB091572, 0x3570D6F9, 0x979F779B, 0xAD196AFC},
729 {0xD7FDE38C, 0x2F73D1B7, 0x53C74178, 0xAEC6714B, 0x7997AF11, 0xF8323995, 0x8FFFC05E, 0x0CB8CB56} } ,
730 { {0xD6A37F68, 0xABD680A5, 0x379E9E7A, 0x857C7FB3, 0x74EAF3AE, 0x6848A01D, 0xB2093106, 0x0B362A54},
731 {0x1C6D7A32, 0x7B3EF4E9, 0xF2183CDD, 0x7317AEE5, 0xA02A6299, 0xBA3854C5, 0x2D20B558, 0x187E2350} } } } ;
732 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
733 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
734 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
735 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
736 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
737 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
738 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
739 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
740 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
741 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
742 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
743 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
745 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1173 a000");
746 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1174 a001");
747 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1175 a010");
748 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1176 a011");
749 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1177 a100");
750 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1178 a101");
751 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1179 a110");
752 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1180 a111");
753 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1181 a200");
754 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1182 a201");
755 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1183 a210");
756 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1184 a211");
758 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1185 a000");
759 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1186 a001");
760 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1187 a010");
761 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1188 a011");
762 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1189 a100");
763 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1190 a101");
764 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1191 a110");
765 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1192 a111");
766 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1193 a200");
767 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1194 a201");
768 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1195 a210");
769 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1196 a211");
772 static const fp12_t var_a = { { { {0x43D195C2, 0xE5189D00, 0x8C4D0B4D, 0x8AF3ACCE, 0x204DF350, 0x1348860B, 0x9F33A2D2, 0x744B558E},
773 {0xF746083A, 0xD6EC86C7, 0x1CDD3052, 0xB80D458B, 0x008D04E7, 0x058FDC83, 0x9EED3D75, 0xAD6E227D} } ,
774 { {0xFD21215D, 0x5BC721BE, 0x95F55AE3, 0x976877F6, 0x0BADF954, 0xFB21FE82, 0x3328C300, 0x0A70A848},
775 {0xAE048F6B, 0x24785B14, 0x4744963F, 0xE9385EA8, 0x480BE085, 0xBC4DDB0D, 0x59B889FA, 0x0AF95F5E} } } ,
776 { { {0x96CD8E5D, 0x09BC98D9, 0x3761482A, 0xBCC7F576, 0xD08F6A30, 0x017A6BC2, 0x426C46C7, 0x45DB734D},
777 {0xD68BB714, 0x83481A66, 0xC7B80936, 0x4A19033D, 0x01C258F4, 0xDD668CF0, 0x12123E16, 0x840628FE} } ,
778 { {0xBD026D34, 0x310C8663, 0x1497D465, 0x14EFE423, 0x4A6A1575, 0x573039C4, 0x2216A677, 0xACABF1EC},
779 {0x956E57F6, 0x564DEA95, 0x66290839, 0xDCA013A1, 0xAF20303D, 0xC90C92C8, 0xFE48A80A, 0x9262E205} } } ,
780 { { {0x9AD82706, 0x57FDF661, 0x69A15431, 0xD250EFFB, 0xEF67742B, 0x77D1FF81, 0xE73CDA28, 0x958AF6AC},
781 {0x796D363D, 0x3E5A61A9, 0xA8077355, 0x187865F0, 0x0E9B26D1, 0x108BD6D6, 0x51F03562, 0x1F0FF3A0} } ,
782 { {0x59D4F597, 0x3AD712AE, 0x5CBD933E, 0x8DCBBFC9, 0x1CB4C8DE, 0x142AF97A, 0x68C5D7B3, 0x0A9003E3},
783 {0x744CCF3A, 0x1A370452, 0xCF974DB8, 0xEF8D6480, 0x1874FF0E, 0x74567B4A, 0x4430F327, 0x81D97653} } } } ;
784 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
785 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
786 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
787 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
788 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
789 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
790 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
791 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
792 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
793 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
794 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
795 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
797 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1197 a000");
798 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1198 a001");
799 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1199 a010");
800 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1200 a011");
801 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1201 a100");
802 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1202 a101");
803 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1203 a110");
804 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1204 a111");
805 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1205 a200");
806 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1206 a201");
807 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1207 a210");
808 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1208 a211");
810 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1209 a000");
811 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1210 a001");
812 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1211 a010");
813 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1212 a011");
814 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1213 a100");
815 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1214 a101");
816 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1215 a110");
817 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1216 a111");
818 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1217 a200");
819 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1218 a201");
820 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1219 a210");
821 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1220 a211");
824 static const fp12_t var_a = { { { {0x90E9BBA3, 0xD8DC717E, 0xD022C5AF, 0x594CD177, 0x6A37FCB9, 0x0DB8734B, 0x78D1AE64, 0x80E2FE9F},
825 {0x0BE6210B, 0x0E6441D8, 0x8E92B46A, 0x0EF435F7, 0xB9B7FBC2, 0x1A53C0F0, 0x88DD37FA, 0x3A1AC7E3} } ,
826 { {0xC3B07B36, 0x77FF7488, 0xEB1D3EE1, 0x15BC3F6B, 0xBA676ED7, 0xA551D467, 0xADF643A2, 0x539639B6},
827 {0xB4697631, 0x792D3FFF, 0xAA02B781, 0xEA67533A, 0x6B6B1557, 0x44335262, 0xD37F9C79, 0x2067EC4E} } } ,
828 { { {0x42FD3498, 0x963A3EFE, 0x660D26AF, 0x2D443512, 0x7CF9516D, 0x46FF950A, 0xDBC693E9, 0x0703C854},
829 {0xF86A5FBF, 0xFB6F9FE0, 0xA4E63E1D, 0xF9323A1F, 0xE986219B, 0x83B875DF, 0x5A6400C0, 0x1D542B0B} } ,
830 { {0x3BCA4C90, 0xF5FDF734, 0x685B9112, 0x3B84F787, 0x0F3F4A5A, 0xA2260488, 0xD88344A3, 0xA3F00B07},
831 {0x80BBC48F, 0x78A78AC1, 0xC6809484, 0xBCBB1B9B, 0x36C4293B, 0xB6CE8D79, 0xD1F8EAE1, 0x2B03CD02} } } ,
832 { { {0x1938C139, 0x972BBC24, 0x5545476B, 0x1734C7F5, 0x0EDC979E, 0xA9FB4252, 0xB98E9462, 0x723B7DF8},
833 {0xE0EC20C3, 0x0E5002BE, 0x66559F85, 0x77C08F11, 0xDF46F763, 0xDE56CB41, 0xF1442C4F, 0x9C831C7A} } ,
834 { {0x28308961, 0xBC38CC17, 0xFCB33E04, 0xC7A22963, 0x03B2861A, 0x922FC32B, 0x9398C4BB, 0x414FB891},
835 {0xDE8CA4B1, 0x21F99EF7, 0x787541CB, 0x18E6AC80, 0x1029094C, 0x5C988FBF, 0xAB74B891, 0x302BEE78} } } } ;
836 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
837 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
838 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
839 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
840 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
841 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
842 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
843 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
844 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
845 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
846 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
847 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
849 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1221 a000");
850 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1222 a001");
851 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1223 a010");
852 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1224 a011");
853 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1225 a100");
854 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1226 a101");
855 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1227 a110");
856 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1228 a111");
857 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1229 a200");
858 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1230 a201");
859 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1231 a210");
860 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1232 a211");
862 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1233 a000");
863 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1234 a001");
864 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1235 a010");
865 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1236 a011");
866 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1237 a100");
867 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1238 a101");
868 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1239 a110");
869 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1240 a111");
870 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1241 a200");
871 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1242 a201");
872 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1243 a210");
873 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1244 a211");
876 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
877 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
878 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
879 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
880 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
881 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
882 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
883 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
884 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
885 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
886 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
887 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
888 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
889 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
890 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
891 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
892 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
893 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
894 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
895 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
896 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
897 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
898 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
899 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
900 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
901 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
902 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
903 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
904 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
905 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
906 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
907 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
908 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
909 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
910 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
911 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
913 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1245 a000");
914 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1246 a001");
915 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1247 a010");
916 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1248 a011");
917 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1249 a100");
918 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1250 a101");
919 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1251 a110");
920 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1252 a111");
921 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1253 a200");
922 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1254 a201");
923 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1255 a210");
924 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1256 a211");
927 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
928 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
929 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
930 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
931 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
932 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
933 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
934 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
935 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
936 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
937 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
938 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
939 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
940 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
941 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
942 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
943 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
944 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
945 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
946 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
947 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
948 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
949 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
950 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
951 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
952 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
953 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
954 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
955 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
956 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
957 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
958 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
959 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
960 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
961 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
962 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
964 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1257 a000");
965 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1258 a001");
966 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1259 a010");
967 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1260 a011");
968 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1261 a100");
969 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1262 a101");
970 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1263 a110");
971 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1264 a111");
972 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1265 a200");
973 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1266 a201");
974 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1267 a210");
975 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1268 a211");
978 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
979 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
980 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
981 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
982 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
983 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
984 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
985 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
986 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
987 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
988 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
989 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
990 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
991 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
992 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
993 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
994 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
995 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
996 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
997 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
998 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
999 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1000 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1001 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1002 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1003 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1004 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1005 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1006 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1007 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1008 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1009 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1010 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1011 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1012 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1013 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1015 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1269 a000");
1016 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1270 a001");
1017 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1271 a010");
1018 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1272 a011");
1019 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1273 a100");
1020 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1274 a101");
1021 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1275 a110");
1022 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1276 a111");
1023 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1277 a200");
1024 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1278 a201");
1025 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1279 a210");
1026 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1280 a211");
1029 static const fp12_t var_a = { { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
1030 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1031 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1032 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1033 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1034 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1035 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1036 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1037 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1038 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1039 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1040 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1041 static const fp12_t var_b = { { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
1042 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1043 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1044 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1045 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1046 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1047 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1048 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1049 { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
1050 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1051 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1052 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1053 static const fp12_t var_expected = { { { {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
1054 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1055 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1056 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1057 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1058 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1059 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1060 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1061 { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
1062 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1063 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1064 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1066 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1281 a000");
1067 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1282 a001");
1068 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1283 a010");
1069 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1284 a011");
1070 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1285 a100");
1071 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1286 a101");
1072 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1287 a110");
1073 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1288 a111");
1074 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1289 a200");
1075 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1290 a201");
1076 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1291 a210");
1077 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1292 a211");
1080 static const fp12_t var_a = { { { {0x7C12C154, 0xE3E8622F, 0xC3E2C50E, 0xDD9B04FB, 0x07216573, 0xBFE503EC, 0xBA8EDEAD, 0x081FCBE5},
1081 {0x8EB5D9F3, 0x4F44E650, 0xD24BBD50, 0x645E55FA, 0xD670FD3A, 0xAE50935B, 0x3511DEAF, 0xB9715AD3} } ,
1082 { {0x1BCA5CB0, 0xD107E4A3, 0x4E011589, 0xBA4C5ABB, 0x7AF6C9CC, 0xEFF90E6E, 0x44B2CA3A, 0xA3E5B3B6},
1083 {0x984DECD7, 0x7BF4D052, 0xBDE7F0AC, 0xDB6DD3B0, 0x329D2A34, 0xB4238230, 0x448188E1, 0x314A488C} } } ,
1084 { { {0xD35881F7, 0x84CF2284, 0xD931B645, 0x497F4E23, 0x4F1EE0C1, 0x0FDA50C4, 0x8620CBF8, 0x1385D172},
1085 {0x098A3864, 0xC653ADC0, 0x3BFB6BDB, 0x75AFA06B, 0x624C7E58, 0x7F6B4D6E, 0x8D90B55D, 0x02827F0B} } ,
1086 { {0xF19D2EEA, 0x3F5E7D00, 0x330A78E1, 0x90C31EDC, 0x0D1F7838, 0x5550CE8D, 0x94676953, 0x299AE719},
1087 {0x53C3D31B, 0x8F438295, 0x132BB037, 0xA5A4AE3E, 0xDE10CEC3, 0x51487993, 0xC6BF05BF, 0x035183F0} } } ,
1088 { { {0x24FFC107, 0x80723E07, 0xEA3A6E26, 0x0E554E63, 0x7A5B4E54, 0x277975B4, 0x84730D7F, 0x217476DE},
1089 {0x7C882532, 0x7AF6F2C0, 0x73B0B14F, 0x9891309D, 0x135F99D8, 0xCEF077AD, 0x235C6754, 0x341B4A0B} } ,
1090 { {0x9C64EECE, 0x0ACB090A, 0x23889D50, 0x5D55D3AB, 0xF36C523F, 0x37E9FC32, 0x2B3D2FC1, 0x033D6F4A},
1091 {0xD808AC52, 0x64017F40, 0x76AE1723, 0x5317901F, 0x4FAF16BF, 0xB761ADBE, 0x19A4F488, 0xA63268C3} } } } ;
1092 static const fp12_t var_b = { { { {0xFFFE6F60, 0xDF4059F3, 0x9C198DE0, 0x2F5C69A8, 0x6DFDDF02, 0x7FC7A599, 0x1D240992, 0xA6897328},
1093 {0x4F4AB7D1, 0x726A7C69, 0xA27C4FBA, 0x96BE5DFB, 0xD2FBEBAB, 0x28CE43EA, 0x9D42BA70, 0x953AB848} } ,
1094 { {0x5DFA3551, 0x3E780A2D, 0xCC219AC0, 0xB05C0978, 0x18FE0B92, 0x2CB80346, 0xF1D0CA2F, 0x4B51C35A},
1095 {0x90E184A6, 0x04FEF702, 0x101D32FB, 0xAC44194F, 0x6D55BC09, 0x6ECF05D3, 0xE5F68C7F, 0x63911554} } } ,
1096 { { {0x416F2AA1, 0xAA4AF672, 0xC4D70B9A, 0x27DF62B5, 0xC00CDC8A, 0xB40D3DFE, 0xF9EE67D0, 0x031672AF},
1097 {0xC5B7F7CA, 0xBAC550C7, 0x70BDD678, 0xFCC4C03A, 0x8A60620D, 0x1F34BA56, 0xE429F4E1, 0x40699A57} } ,
1098 { {0xFE3CCBDE, 0xE26FD45B, 0x28912E76, 0x64FC885E, 0xB991C50F, 0xB918731D, 0xCD310AD6, 0x03F1F643},
1099 {0xE1E4DB7B, 0x74AD2EDC, 0x07D6C62A, 0x78AFBA66, 0x21746F53, 0xFD547839, 0xD1F41FAE, 0x83D350F2} } } ,
1100 { { {0xDB1D06A6, 0xE837E594, 0xDE6DFAA1, 0x0A3992D5, 0xA8B8D364, 0x3A787879, 0xC17604E5, 0x68534FE0},
1101 {0xCCC3ECA1, 0x5647BE88, 0x5BCB3E70, 0xDFAD41F8, 0x7392EFFA, 0x285BDAC8, 0xA042C249, 0x6681F766} } ,
1102 { {0xE832D01A, 0xFDF0C585, 0x604C8FB3, 0x42CA814C, 0xBD17FBB1, 0x63E9F60E, 0x69431810, 0x746513D0},
1103 {0x357E1681, 0xBF279744, 0x84ECC3BB, 0x7EDE8565, 0x5210B383, 0xEC190B5E, 0x864EE2D8, 0x4C2338BD} } } } ;
1104 static const fp12_t var_expected = { { { {0x7C1130B4, 0xC328BC23, 0x5FFC52EF, 0x0CF76EA4, 0x751F4476, 0x3FACA985, 0xD7B2E840, 0xAEA93F0D},
1105 {0x7BD45D29, 0xC2C0D908, 0xA0502DC3, 0xE80B0755, 0x558A5F30, 0xDBBE7ADB, 0x9235BCF6, 0x94987459} } ,
1106 { {0x17985D66, 0x1091651F, 0x45AAD103, 0x5796B793, 0x40124BAA, 0x2150B549, 0xF664B841, 0x3523D84E},
1107 {0x292F717D, 0x80F3C755, 0xCE0523A7, 0x87B1ECFF, 0x9FF2E63E, 0x22F28803, 0x2A781561, 0x94DB5DE1} } } ,
1108 { { {0x14C7AC98, 0x2F1A18F7, 0x9E08C1E0, 0x715EB0D9, 0x0F2BBD4B, 0xC3E78EC3, 0x800F33C8, 0x169C4422},
1109 {0xCF42302E, 0x8118FE87, 0xACB94254, 0x727460A5, 0xECACE066, 0x9EA007C4, 0x71BAAA3E, 0x42EC1963} } ,
1110 { {0xEFD9FAC8, 0x21CE515C, 0x5B9BA758, 0xF5BFA73A, 0xC6B13D47, 0x0E6941AA, 0x6198742A, 0x2D8CDD5D},
1111 {0x35A8AE96, 0x03F0B172, 0x1B027662, 0x1E5468A4, 0xFF853E17, 0x4E9CF1CC, 0x98B3256E, 0x8724D4E3} } } ,
1112 { { {0x001CC7AD, 0x68AA239C, 0xC8A868C8, 0x188EE139, 0x231421B8, 0x61F1EE2E, 0x45E91264, 0x89C7C6BF},
1113 {0x494C11D3, 0xD13EB149, 0xCF7BEFBF, 0x783E7295, 0x86F289D3, 0xF74C5275, 0xC39F299D, 0x9A9D4171} } ,
1114 { {0x8497BEE8, 0x08BBCE90, 0x83D52D04, 0xA02054F7, 0xB0844DF0, 0x9BD3F241, 0x948047D1, 0x77A2831A},
1115 {0xAB5A8E38, 0x243A8CD3, 0x2722FB98, 0xBEE468E4, 0x4DDD408D, 0xA81A5CB1, 0x5FD4FB38, 0x384202BE} } } } ;
1117 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1293 a000");
1118 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1294 a001");
1119 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1295 a010");
1120 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1296 a011");
1121 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1297 a100");
1122 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1298 a101");
1123 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1299 a110");
1124 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1300 a111");
1125 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1301 a200");
1126 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1302 a201");
1127 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1303 a210");
1128 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1304 a211");
1131 static const fp12_t var_a = { { { {0xAEC9FE99, 0xA35E0AA8, 0xBF4F3C9C, 0x53BA23FC, 0xC13214C3, 0xAC16E448, 0x1A5F3C11, 0x351B1D44},
1132 {0xA9FEAD45, 0x504F71F7, 0x0A6CA5DB, 0xCF0EFD4A, 0x7AF96658, 0xDB390E65, 0xB95C6F74, 0x1F918F7A} } ,
1133 { {0x2009FE45, 0x9970279F, 0xC8858F9A, 0xFDCF1D57, 0xB8B21C52, 0xBA8C179B, 0x2BBF06D2, 0x2A27896D},
1134 {0xF4ECFB02, 0xEB28FA8F, 0xAF27A894, 0x885CFFC8, 0xE8C2B61A, 0xC5A9D613, 0xAC28B617, 0x086FF4B2} } } ,
1135 { { {0xA9E8014F, 0xDFAC5E13, 0xE0DF1FBA, 0x18C4FB75, 0x41CF68C2, 0x7EE06D32, 0xAF35B225, 0x9B2C053D},
1136 {0x237EA618, 0xB09903D1, 0x7BF8C7C3, 0xA5C5FB9D, 0xDA1AB910, 0xBAAEA499, 0x1635ADFB, 0x6FBDE227} } ,
1137 { {0x34F6E3CD, 0xBA3FBFB9, 0x038328CE, 0x98DB6FED, 0x8F1EDAD6, 0x35C9CEC1, 0x7CCBA479, 0x9C45BD6B},
1138 {0x2217FA6B, 0x01230D57, 0xDB8B0E6B, 0x4AA743D5, 0x78D5A652, 0x1293AAB7, 0xAAFD1974, 0x4454CCBF} } } ,
1139 { { {0x0F0E8B3E, 0xA8B13C87, 0xEC6EF5EB, 0xE7C2A407, 0x14CC1BC3, 0x490B39A0, 0x66A27654, 0xB2FFE813},
1140 {0xA4FF8459, 0x7D98ECF1, 0xD5059545, 0x2BA3288F, 0x7B2DA185, 0x4E9B85DC, 0x61DE8CC8, 0x9DDA472A} } ,
1141 { {0x0547E2DD, 0x6D50C71E, 0xEB770982, 0x8DCCA021, 0xDA00CF4F, 0x6FA9481A, 0x03AE9310, 0x2B83A53E},
1142 {0x4F6CA9A5, 0x07E44543, 0xAFAC70E2, 0xC5843AF8, 0xE5B23771, 0x4F4CE279, 0xEB343A2F, 0x7587F197} } } } ;
1143 static const fp12_t var_b = { { { {0xA9D2A61E, 0x05D8AF9D, 0xE0605268, 0x9BEBD0E1, 0x7600FEC0, 0x8D34D972, 0x28BE8676, 0x7E9F292B},
1144 {0x30E83713, 0xC17323F7, 0x6E6614F7, 0x146AA182, 0xF319FDC6, 0x23E4B464, 0x00C0C94E, 0x376D1E45} } ,
1145 { {0x820778BE, 0xB52CDF03, 0xF686D91F, 0xF28E9608, 0xCE213664, 0xE01B14F5, 0x6A96B655, 0x058C8C0D},
1146 {0xBC1F3336, 0x084A992C, 0xD308E071, 0x8958A684, 0x1B061DFA, 0x116AC195, 0x54F42BC1, 0xB704FCF9} } } ,
1147 { { {0xDFF6A237, 0xFDC0242D, 0xE5D55D61, 0xFCE50A6D, 0x5076CF68, 0xD57CC665, 0x9D768990, 0x45477EE8},
1148 {0x5822E71A, 0x80AF724F, 0xE87BB3F1, 0x63296A6A, 0x22E6DD03, 0xB4559D66, 0x5C326001, 0xB20C1CF4} } ,
1149 { {0xED5964C7, 0x9EFAE299, 0xD1C5496C, 0x54167167, 0x5A2E65D0, 0x1C538054, 0x97CED6FA, 0x46BF31B2},
1150 {0x34EEDEAE, 0x0A8F004F, 0x46AE2064, 0x6FCEB85F, 0x579B46F1, 0xDB681B81, 0xCD4E46CA, 0x0BDFD252} } } ,
1151 { { {0x198FFD3B, 0x99315523, 0x21225A80, 0xD3DD7450, 0x894BE303, 0xA7E8FBC0, 0x6DADB599, 0x5176858F},
1152 {0x5C62EE7A, 0xC6DFB65E, 0xF0926A63, 0xA587FCB4, 0xF7DD749C, 0x96DA00EF, 0x5C463E4F, 0x2A9E4735} } ,
1153 { {0xAF3DF385, 0x30D226F6, 0xA3E1FA08, 0x7D10D4C8, 0x668DD365, 0xAB84F184, 0x33F2C772, 0x34FE7241},
1154 {0x1E3B83D6, 0x15A3E9D1, 0x2EE8BA9E, 0x40858306, 0x80EF08FE, 0x36C88209, 0xFFACA4BD, 0xB9D842CA} } } } ;
1155 static const fp12_t var_expected = { { { {0x589CA4B7, 0xA936BA46, 0x9FAF8F04, 0xEFA5F4DE, 0x37331383, 0x394BBDBB, 0x431DC288, 0xB3BA466F},
1156 {0xDAE6E458, 0x11C295EE, 0x78D2BAD3, 0xE3799ECC, 0x6E13641E, 0xFF1DC2CA, 0xBA1D38C2, 0x56FEADBF} } ,
1157 { {0xA2117703, 0x4E9D06A2, 0xBF0C68BA, 0xF05DB360, 0x86D352B7, 0x9AA72C91, 0x9655BD28, 0x2FB4157A},
1158 {0x4EDFF99D, 0xF4850A0B, 0xADB8A9BE, 0xFEA3F9AC, 0xAFE64A5F, 0xDBB43B3D, 0xC0FE05AF, 0x056152E9} } } ,
1159 { { {0x27B26EEB, 0xDE7DF890, 0xF23C9DD5, 0x02985942, 0x3E63AE76, 0x58FCD72C, 0x0C8D5F8D, 0x265FE564},
1160 {0x19755897, 0x3259EC6F, 0x8FFC9C6E, 0xF5DDB967, 0xA91F0C5E, 0x73A3E594, 0x324931D4, 0x67B66059} } ,
1161 { {0xC02413F9, 0x5A4C18A1, 0x00D092F4, 0xD9E034B4, 0x956AB6F1, 0x56BCF2AA, 0xD47B9F4A, 0x28F1505B},
1162 {0x5706D919, 0x0BB20DA6, 0x22392ECF, 0xBA75FC35, 0xD070ED43, 0xEDFBC638, 0x784B603E, 0x50349F12} } } ,
1163 { { {0xC67253DE, 0x42F407F8, 0x39197125, 0xA88E6BB7, 0x4A357512, 0xF593D8F5, 0x94314FC4, 0x4A62CEE0},
1164 {0x9F363E38, 0x458A199E, 0xF1202062, 0xBE1978A3, 0x1F288C6C, 0xEA152A61, 0x7E05EEEE, 0x0E64EF9D} } ,
1165 { {0xB485D662, 0x9E22EE14, 0x8F59038A, 0x0ADD74EA, 0x408EA2B5, 0x1B2E399F, 0x37A15A83, 0x6082177F},
1166 {0x0B7BF8E0, 0x1E99A563, 0x0A1D4C39, 0xF2F8115E, 0x12BEB6BA, 0x8AB50818, 0xAAC202C3, 0x754C95A0} } } } ;
1168 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1305 a000");
1169 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1306 a001");
1170 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1307 a010");
1171 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1308 a011");
1172 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1309 a100");
1173 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1310 a101");
1174 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1311 a110");
1175 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1312 a111");
1176 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1313 a200");
1177 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1314 a201");
1178 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1315 a210");
1179 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1316 a211");
1182 static const fp12_t var_a = { { { {0x5DD6EB50, 0xE12420D5, 0xE8556F70, 0xD3712E26, 0xB6CFB00E, 0x8FFFDD7C, 0x001A00BD, 0x2EDC1778},
1183 {0x06E2D602, 0x99F4E378, 0x82876BFA, 0xB7775CDA, 0xAE6ADA03, 0x4C450C8A, 0xEAFD263E, 0xA0196288} } ,
1184 { {0x548A3782, 0x6FB85D3A, 0x1324A2FF, 0x6DE57D7B, 0xD564AF50, 0x07EEA7F6, 0xA7EEEC32, 0x47ACB924},
1185 {0xE23D34B6, 0x331AE3B1, 0xB4B54395, 0xC41F77AE, 0x7E1381BE, 0xAA6BA898, 0x92EBCB33, 0x09784F1A} } } ,
1186 { { {0x3B111499, 0xDB719DD0, 0xE094B22F, 0xFE08C36A, 0xBAEF999F, 0x0AB145B3, 0xBDE071E2, 0x54BB5535},
1187 {0xBF825144, 0x0294F5EE, 0xC672A9D7, 0x60DE0810, 0x2EA7B142, 0x5F6B1089, 0xACAFAF8D, 0x5C27FD07} } ,
1188 { {0x216166BD, 0x6642A102, 0xC93B6232, 0xB314C39B, 0x949A9FD9, 0xC66A416F, 0xD8E90E12, 0x98F4DE05},
1189 {0xE901BED0, 0x692CBEB1, 0xFFC9C6F1, 0xC4443595, 0x3AAC6EDB, 0xBE9A5D37, 0x2E5B7440, 0x4307E565} } } ,
1190 { { {0x909B1280, 0x93909270, 0xDEEF368F, 0xD115D743, 0x2D7C2299, 0xB129D3A4, 0x4D45BD68, 0x220FC374},
1191 {0xEDF96338, 0x09081B3E, 0xE421A36D, 0x68A4FAD1, 0x5F420D6A, 0x57865F35, 0x4C26663C, 0xA6334C13} } ,
1192 { {0xDDE82447, 0x1EE1B62E, 0xC3EAA5EA, 0x2AEAE23A, 0xDEB5C0E2, 0x6C3E17A7, 0xB17A76BC, 0x2999CA3A},
1193 {0x99661E9F, 0xC2B5B084, 0x398C30BA, 0x069F62A1, 0x9AF20D11, 0xFB009639, 0x7AC05375, 0xAF948A50} } } } ;
1194 static const fp12_t var_b = { { { {0xEC6008FF, 0x0DA36018, 0x8AF2EABB, 0x4B09A27C, 0xF3898B18, 0xFD2137FC, 0x1856513D, 0x0EA4ED3A},
1195 {0x98A42E33, 0xB64FCF55, 0x2E9E6E8D, 0x84A549BA, 0xD59D3FD1, 0xBFD37314, 0x30813EA8, 0x0C5AB7F4} } ,
1196 { {0xF26FB8EE, 0x9C3B40CE, 0x2AAFF19D, 0x9A2338CD, 0x9B6E8DA5, 0x802F32B4, 0xD90C2E50, 0x428BCE79},
1197 {0x5D1FFFD1, 0x443677B1, 0x8817B872, 0x53DD78D4, 0x89B3F1AC, 0xE8AD6913, 0x2054E711, 0x95F213D7} } } ,
1198 { { {0xB6164BC8, 0x511FFEB8, 0x0AF591BF, 0x35A34C54, 0xF59A8AFD, 0x760FD95E, 0xC6B8CADD, 0x604D23CB},
1199 {0x4E65EB7F, 0x0FCA2CFA, 0x4C84FB59, 0xB505E033, 0x7534E649, 0x13753A1F, 0xC0D02911, 0x04CD2813} } ,
1200 { {0xC7987536, 0xEB1C2755, 0x243BEC38, 0xCB02788D, 0xB3900201, 0x8BE8687C, 0xF7FF66FB, 0x2B00B738},
1201 {0x9AB32FD8, 0xF7D176AE, 0x153B49BD, 0x74B2980D, 0xEC4FDD00, 0x0E1517D7, 0xC6C23DE0, 0x3DB75369} } } ,
1202 { { {0x30471E62, 0x6BD9627B, 0x081B63E3, 0x1EF1F90A, 0x1E9E6D27, 0xB52F17D5, 0x3FA9FD44, 0x32E46D86},
1203 {0x4FE8DD69, 0x1EE02B47, 0xE8554CD1, 0x8A860945, 0x2ACDE0E5, 0xE9AF0389, 0xE6DDC6A3, 0xA906084C} } ,
1204 { {0xC459FAD1, 0x11747FB6, 0xD9748880, 0x854D44F0, 0x0FFC38E8, 0x15F821C6, 0xB4A703FF, 0x2C713CEB},
1205 {0x5851EA8F, 0xE5625605, 0x34030FAE, 0x1DC3AEFC, 0x59DA1495, 0xF8ACA971, 0xD50EE515, 0x36292F01} } } } ;
1206 static const fp12_t var_expected = { { { {0x4A36F44F, 0xEEC780EE, 0x73485A2B, 0x1E7AD0A3, 0xAA593B27, 0x8D211579, 0x187051FB, 0x3D8104B2},
1207 {0x9F870435, 0x5044B2CD, 0xB125DA88, 0x3C1CA694, 0x840819D5, 0x0C187F9F, 0x1B7E64E7, 0xAC741A7D} } ,
1208 { {0x46F9F070, 0x0BF39E09, 0x3DD4949D, 0x0808B648, 0x70D33CF6, 0x881DDAAB, 0x80FB1A82, 0x8A38879E},
1209 {0x3F5D3487, 0x77515B63, 0x3CCCFC07, 0x17FCF083, 0x07C7736B, 0x931911AC, 0xB340B245, 0x9F6A62F1} } } ,
1210 { { {0xF1276061, 0x2C919C88, 0xEB8A43EF, 0x33AC0FBE, 0xB08A249D, 0x80C11F12, 0x84993CBF, 0xB5087901},
1211 {0x0DE83CC3, 0x125F22E9, 0x12F7A530, 0x15E3E844, 0xA3DC978C, 0x72E04AA8, 0x6D7FD89E, 0x60F5251B} } ,
1212 { {0x86CDA758, 0x52703EA6, 0x18FF6F24, 0x6B058F88, 0xF4481826, 0x56F24D80, 0x90C998E5, 0x09E1F67C},
1213 {0x83B4EEA8, 0x60FE3560, 0x150510AF, 0x38F6CDA3, 0x26FC4BDC, 0xCCAF750F, 0xF51DB220, 0x80BF38CE} } } ,
1214 { { {0xC0E230E2, 0xFF69F4EB, 0xE70A9A72, 0xF007D04D, 0x4C1A8FC0, 0x6658EB79, 0x8CEFBAAD, 0x54F430FA},
1215 {0xDBB60C06, 0x28F9BCD4, 0xF7FF10F7, 0xE0195776, 0x362D649A, 0x45D50653, 0xF2E550B7, 0x9525B59D} } ,
1216 { {0xA2421F18, 0x305635E5, 0x9D5F2E6A, 0xB038272B, 0xEEB1F9CA, 0x8236396D, 0x66217ABB, 0x560B0726},
1217 {0x8F8BD493, 0xA9297CD8, 0x99176122, 0x115164FC, 0xA0E997F1, 0xF84CE33F, 0x0FB05C62, 0x2BAA1A90} } } } ;
1219 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1317 a000");
1220 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1318 a001");
1221 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1319 a010");
1222 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1320 a011");
1223 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1321 a100");
1224 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1322 a101");
1225 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1323 a110");
1226 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1324 a111");
1227 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1325 a200");
1228 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1326 a201");
1229 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1327 a210");
1230 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1328 a211");
1233 static const fp12_t var_a = { { { {0x4B037CB7, 0x5F4A4356, 0xFF067874, 0x1C03979F, 0xA6C688CB, 0x2B432ED0, 0x2A32993C, 0xB416B23A},
1234 {0x053322CF, 0xEC6C1F46, 0x27AF31D5, 0xCB1FDB6C, 0xDD6584EC, 0xC74D39FA, 0x484368F9, 0x418403AC} } ,
1235 { {0x52FD67C9, 0x16546998, 0x73762F50, 0x904DBD48, 0x96A4FF25, 0xA5D015D2, 0xB84B21BE, 0x8D9B7562},
1236 {0xC284233F, 0x14314426, 0xB4935C05, 0x3AEEFA89, 0x5FA05EDB, 0x287467A3, 0x750825AE, 0x3A8DC74E} } } ,
1237 { { {0x487AF000, 0x378DEC42, 0x9A423300, 0xBAEE88FD, 0x7A2BD56A, 0x724E60D3, 0x71772727, 0x0046F3AB},
1238 {0xFDA3ABC3, 0x7DB851CD, 0xB34B3973, 0x79048556, 0x7138F59C, 0x289CEAE4, 0x506D6315, 0x43C142E0} } ,
1239 { {0xD8219DC1, 0x03F4F220, 0x188EEA34, 0xB4D0131E, 0x309275F5, 0xC3C810FE, 0xAA27A25A, 0x968049CD},
1240 {0x404BF5EA, 0x8B4C6BBC, 0xC0DAB4D9, 0x98F27B68, 0xE6BE2BF5, 0x2307146A, 0x4EBB7C81, 0x92C81AB9} } } ,
1241 { { {0xF1E0923A, 0xFB9892A8, 0xD46E8E19, 0xD6951AB8, 0xD580EC90, 0x0BBA39E9, 0xFA0D8D94, 0x186A1AE7},
1242 {0x18372B29, 0xDE2C4D63, 0x604EDCA4, 0x10EDE16B, 0x7EE21D9D, 0xA7ABA808, 0xA461B736, 0x10726209} } ,
1243 { {0xBFB96FE9, 0xE0AEFADB, 0xF13D8DE5, 0xB9281BB2, 0xC6E0A3EF, 0xF91AB5F0, 0x346BB75E, 0x8F65E1D9},
1244 {0x772723E8, 0x558D15A4, 0xD4863E35, 0xD56ECB1C, 0x2F2272FA, 0x7BAADE18, 0x87646CD6, 0x1357AB8F} } } } ;
1245 static const fp12_t var_b = { { { {0xAE93BACB, 0xB29A0007, 0xD6E761CD, 0x374C373B, 0x9FAC76D0, 0x7E72002B, 0x6E5FC695, 0x44AACCDB},
1246 {0xE2F2EE59, 0x145A0040, 0xD1D8A271, 0x921540F3, 0xE8C5938F, 0xC09419FC, 0xAD746A6B, 0x1C9D5449} } ,
1247 { {0x0ADFB270, 0xB5148789, 0x51C4FFD0, 0x551A2E97, 0xEBDD8E19, 0xD184E062, 0xBC1A8FCA, 0x06BF7BB6},
1248 {0xCEC45EAC, 0x794AF073, 0x19EAA1BC, 0xBA299B58, 0x220EAD8C, 0xB8C4E556, 0xC8F5B0C2, 0x03A3B3E4} } } ,
1249 { { {0x8616B89B, 0x66F4FAF2, 0xF3C61015, 0x92D77B0A, 0x6DC64260, 0x58E7F6AA, 0x35AAF1A9, 0x135E5D9E},
1250 {0xC62CC845, 0x26AAFCA7, 0x32584EA9, 0xC583F042, 0x98318E62, 0xF7ADE814, 0x121136BC, 0xB1CB6522} } ,
1251 { {0x4CB17547, 0x88955A28, 0xDF72C632, 0x87322241, 0x83747C82, 0xC72B3CF6, 0xABAB2A24, 0x7298F9BC},
1252 {0x70F8C771, 0xFE5E326A, 0x61FE77BD, 0x3412881E, 0x4D22BC83, 0x59E42E0D, 0x3D100995, 0x2004D7B3} } } ,
1253 { { {0xA4C76378, 0x1DF9C92B, 0xFDBCAC87, 0xD5B7F7F4, 0xCEA08924, 0x1A900ECE, 0x767EC99B, 0x3F5C3D16},
1254 {0x65B544CE, 0x1E4FAB52, 0x00FEAC66, 0x4D234658, 0xCD43CAA9, 0xDFF591B8, 0xFDD6AD06, 0xA22704A0} } ,
1255 { {0x626CFF4F, 0x643CE890, 0x6F889216, 0xCC096B2D, 0x2772AB6E, 0x7573065F, 0xA9AC7386, 0x31B07AA5},
1256 {0xC9188C33, 0xEB679552, 0xD47B351D, 0x0DF73B43, 0x99CB8B42, 0xE7353DE0, 0x888C98CE, 0xB16C57B2} } } } ;
1257 static const fp12_t var_expected = { { { {0x976B02E7, 0x12F5B9AC, 0x0175FAFB, 0x403E223B, 0xF29075E6, 0xAE54D290, 0x587383A8, 0x3EADE053},
1258 {0xE8261128, 0x00C61F86, 0xF987D447, 0x5D351C5F, 0xC62B187C, 0x87E153F7, 0xF5B7D365, 0x5E2157F5} } ,
1259 { {0x5DDD1A39, 0xCB68F121, 0xC53B2F20, 0xE567EBDF, 0x82828D3E, 0x7754F635, 0x7465B189, 0x945AF119},
1260 {0x914881EB, 0x8D7C349A, 0xCE7DFDC1, 0xF51895E1, 0x81AF0C67, 0xE1394CF9, 0x3DFDD670, 0x3E317B33} } } ,
1261 { { {0xCE91A89B, 0x9E82E734, 0x8E084315, 0x4DC60408, 0xE7F217CB, 0xCB36577D, 0xA72218D0, 0x13A55149},
1262 {0x61A43F6D, 0xA574C4C4, 0x112BA8D5, 0x2B76C8F8, 0xB587FA4A, 0x24EA768D, 0x225FBDA9, 0x3B790940} } ,
1263 { {0xC2A6DE6D, 0x8D9BC297, 0x2389D11F, 0x28F088BF, 0x602468C3, 0x8F92F189, 0x15B3F056, 0x4F05A4C8},
1264 {0xB144BD5B, 0x89AA9E26, 0x22D92C97, 0xCD050387, 0x33E0E878, 0x7CEB4278, 0x8BCB8616, 0xB2CCF26C} } } ,
1265 { { {0x96A7F5B2, 0x19925BD4, 0xD22B3AA1, 0xAC4D12AD, 0xA42175B5, 0x264A48B8, 0x708C572F, 0x57C657FE},
1266 {0x7DEC6FF7, 0xFC7BF8B5, 0x614D890A, 0x5E1127C3, 0x4C25E846, 0x87A139C1, 0xA238643D, 0xB29966AA} } ,
1267 { {0xBFFA3A9D, 0x45FD59BA, 0x8C4E40B5, 0x721FDA3F, 0x9A70C5A9, 0x732D5FE4, 0x9DF94EBC, 0x0702BDBC},
1268 {0xDE137B80, 0x42062145, 0xD489940C, 0xD05459BF, 0x750B7487, 0x677FBF8D, 0xCFD2297C, 0x0AB0647F} } } } ;
1270 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1329 a000");
1271 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1330 a001");
1272 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1331 a010");
1273 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1332 a011");
1274 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1333 a100");
1275 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1334 a101");
1276 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1335 a110");
1277 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1336 a111");
1278 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1337 a200");
1279 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1338 a201");
1280 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1339 a210");
1281 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1340 a211");
1284 static const fp12_t var_a = { { { {0x71FCCD6C, 0xDE41E55A, 0x1BC5471B, 0xC8CCE793, 0xAA5D5165, 0x4802613D, 0xDA2162BC, 0x1198CCB5},
1285 {0x298A6EE5, 0x06FB0CF2, 0x639FF8A3, 0xF0049C76, 0x6F730CBA, 0x018D647A, 0x1419FABF, 0x36C472D8} } ,
1286 { {0x3B0718F3, 0x4EB04A17, 0x7C367F6B, 0x3949CBA1, 0x0DCFF72C, 0x4FA73EFE, 0x5E9AABE3, 0x75AE2184},
1287 {0x79F3695C, 0x4BCE776A, 0xF0E294E0, 0xE6863FAE, 0x4744F9D1, 0xF18D13EC, 0xD57AA85D, 0x8969C77A} } } ,
1288 { { {0x900BF904, 0xB4AD5F90, 0xCC1A9E79, 0x0D56BE5D, 0x426E91B4, 0x76FB6796, 0x8A8F3337, 0x5E215660},
1289 {0x3CD4CFD4, 0xE1DF605E, 0x2CB5C170, 0x9E5EA7C5, 0x0F8F7B39, 0xDABAFF60, 0x80DD20FA, 0x2BA3FAD9} } ,
1290 { {0x1B9033B8, 0x50331116, 0xB09B2D26, 0x5CA0CC38, 0x24616599, 0xED55FDEF, 0xB20A100B, 0x56EE33B7},
1291 {0x4BB02B42, 0x2568B075, 0xB1CE5D12, 0x9BAA289E, 0x920459F7, 0xFC43FFD0, 0x0BBAC2E5, 0xAC89D732} } } ,
1292 { { {0xCB209DFE, 0xA50CF11E, 0x0E961845, 0x7F4D9BCD, 0xD1FEF360, 0x263C17A0, 0x6C1470FF, 0x268713FE},
1293 {0xA8105C75, 0xBC091448, 0xB0048002, 0x0A3A68E3, 0x405644BE, 0xF908037D, 0xA93D081E, 0x0E4D01D6} } ,
1294 { {0x68F2B596, 0x73F884CF, 0x35729F2B, 0xFC7A0B55, 0x51BD1B94, 0xD710D21F, 0x4BE5FEB8, 0x1E4DC2DE},
1295 {0xA81E5171, 0x80C188CE, 0x401651A9, 0xF23CBC91, 0x63352AE7, 0x8FB32C9D, 0xD17E0A36, 0x610B8CA9} } } } ;
1296 static const fp12_t var_b = { { { {0x8A900D6A, 0xBA63358D, 0x06CBFC02, 0xE61EA955, 0x3F6DCD2A, 0xE108A86D, 0x28D29D9A, 0xB388A799},
1297 {0xD0B34871, 0x9A158BA5, 0x167EF9FF, 0xFEB42FAC, 0xEAF92527, 0xE3C20C3C, 0x36E826E5, 0x271FB7A0} } ,
1298 { {0xB4F12C6B, 0xBC238B02, 0xAC0F66D4, 0x1CF7C803, 0x7A32004C, 0x8571852E, 0x95637B9B, 0x412A1BE5},
1299 {0x95B5892A, 0x661BDFF5, 0xF0CC9386, 0xA10ABF85, 0x4DB0F13E, 0x383BA88E, 0x90530695, 0x36DCEF3B} } } ,
1300 { { {0x36032838, 0xFADB97D8, 0xDF81F503, 0x0ABADB65, 0x742BBF93, 0x2E8A38EA, 0x68DE7C84, 0x4C29AE2B},
1301 {0x8138FD09, 0x8536C444, 0x59412CEE, 0x54FCF190, 0x4921BDB5, 0x1EFB2C69, 0x1221D830, 0x7855491C} } ,
1302 { {0xDB6F7FFB, 0x367523B1, 0xEFB71187, 0x3744C3BA, 0x36F2ECB2, 0x944F3EBE, 0x35D828CB, 0x21990597},
1303 {0xA071332D, 0xDB16FACD, 0x68997153, 0xA92C29A7, 0x3470C07A, 0x70212E91, 0xB0AFB68A, 0xA100DDC2} } } ,
1304 { { {0x36750E12, 0x6EC2B45F, 0xC0B6BC22, 0xB3920243, 0x59BFD10E, 0x96CC0DC1, 0xD24211B7, 0x38B0AE04},
1305 {0xFD3D086A, 0x88854771, 0x253CD4F7, 0x9B05385B, 0x4A833BD8, 0x3EA6A8FE, 0x21205401, 0x1B99F870} } ,
1306 { {0x6BD506AE, 0xE655D618, 0xA4258F5A, 0x4E8D34EA, 0x6A75D5DB, 0x7C0A55C4, 0x9464D4A5, 0x337EE709},
1307 {0xA8ED9693, 0xEC6FBD84, 0x7C8F36EE, 0x874188CB, 0xB1CE2A96, 0xD26A343D, 0xD9AAEA3A, 0x02B0E326} } } } ;
1308 static const fp12_t var_expected = { { { {0x9A60A63B, 0x99B69136, 0x4E1963D7, 0x9BD9E447, 0x95E894DB, 0x2DAAAD3F, 0xC2D5242E, 0x0B0DD58C},
1309 {0xFA3DB756, 0xA1109897, 0x7A1EF2A2, 0xEEB8CC22, 0x5A6C31E2, 0xE54F70B7, 0x4B0221A4, 0x5DE42A78} } ,
1310 { {0xEFF8455E, 0x0AD3D519, 0x2845E640, 0x564193A5, 0x8801F778, 0xD518C42C, 0xF3FE277E, 0xB6D83D69},
1311 {0xAD7CBDEB, 0xB2FBCDAE, 0x0D37491F, 0x747F5294, 0x4113615B, 0x2E68600F, 0x25AED2CA, 0x063317F4} } } ,
1312 { { {0xC60F213C, 0xAF88F768, 0xAB9C937D, 0x181199C3, 0xB69A5147, 0xA585A080, 0xF36DAFBB, 0xAA4B048B},
1313 {0xBE0DCCDD, 0x671624A2, 0x85F6EE5F, 0xF35B9955, 0x58B138EE, 0xF9B62BC9, 0x92FEF92A, 0xA3F943F5} } ,
1314 { {0xF6FFB3B3, 0x86A834C7, 0xA0523EAD, 0x93E58FF3, 0x5B54524B, 0x81A53CAD, 0xE7E238D7, 0x7887394E},
1315 {0x89F529D4, 0x01912191, 0x45EFEF1F, 0x31C4A5A5, 0x729290BD, 0x7104D1F6, 0x7C4B9D47, 0x93771632} } } ,
1316 { { {0x0195AC10, 0x13CFA57E, 0xCF4CD468, 0x32DF9E10, 0x2BBEC46F, 0xBD082562, 0x3E5682B6, 0x5F37C203},
1317 {0xA54D64DF, 0x448E5BBA, 0xD54154FA, 0xA53FA13E, 0x8AD98096, 0x37AEAC7B, 0xCA5D5C20, 0x29E6FA46} } ,
1318 { {0xD4C7BC44, 0x5A4E5AE7, 0xD9982E86, 0x4B07403F, 0xBC32F170, 0x531B27E3, 0xE04AD35E, 0x51CCA9E7},
1319 {0x510BE804, 0x6D314653, 0xBCA58898, 0x797E455C, 0x1503557E, 0x621D60DB, 0xAB28F471, 0x63BC6FD0} } } } ;
1321 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1341 a000");
1322 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1342 a001");
1323 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1343 a010");
1324 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1344 a011");
1325 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1345 a100");
1326 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1346 a101");
1327 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1347 a110");
1328 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1348 a111");
1329 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1349 a200");
1330 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1350 a201");
1331 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1351 a210");
1332 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1352 a211");
1335 static const fp12_t var_a = { { { {0x900AACFA, 0x1E9A31F4, 0xFC21E5D8, 0x978F2E2D, 0x81E00490, 0xA6607923, 0xD0DED0D6, 0x07946E55},
1336 {0x326761A9, 0xA745B6A2, 0xF45EFD5F, 0xE63CDC0C, 0x2497A30D, 0xBBC0681E, 0x0D6D705F, 0x40E92051} } ,
1337 { {0x6E3380BD, 0xD79CA468, 0x1B6DC19A, 0x1537FB06, 0xA8BD73ED, 0xCB6417F7, 0x1AA18EB8, 0x05B65D2A},
1338 {0xA1F76FB7, 0x9CFEE0AA, 0xA735A786, 0x4D7CF58B, 0xFBCB2CFE, 0xD3835659, 0xB3C2EFA6, 0x898B3FE5} } } ,
1339 { { {0xD3EC7878, 0x10C2D06E, 0x388FE619, 0xB55F20C1, 0xD1E31AF2, 0xD63AE9DB, 0xC8FEF9A0, 0x2EE2FEA7},
1340 {0x64FB7A2F, 0xECDAE144, 0x7000A6C5, 0xC69BEF9F, 0xC4389D36, 0x28057478, 0xBE28E03A, 0x0178B8DB} } ,
1341 { {0xA9438EE0, 0x0E1F2FF1, 0x52C6DE72, 0x695434E2, 0x2EA31DF9, 0x03C5B95F, 0xAE585DED, 0x98826DE1},
1342 {0xC90059AB, 0xF7B5FD44, 0x947F5769, 0x8B95C35C, 0xFED0F4C0, 0x099CEDEF, 0x25157643, 0x50674696} } } ,
1343 { { {0xDE62EB71, 0x503AE703, 0x4BB7245D, 0x8BBDF530, 0xE001C619, 0xC39330F3, 0x630E2899, 0x0D5BD910},
1344 {0x5DC38442, 0x5F055BE2, 0x970E4E90, 0x15647188, 0x6561BB5B, 0x09166888, 0x1C65F3B1, 0x608E5767} } ,
1345 { {0x6263AB4F, 0x961B5408, 0xF4B86313, 0xD82FC9CB, 0xE88C239E, 0xBBF4EA6D, 0x3ACD9BDB, 0x081F3D28},
1346 {0xECFB82BC, 0x04E99C17, 0x3EF4AD7A, 0x1D92C047, 0xF65FA91C, 0xF8C60A03, 0x18ADCF67, 0x592EE572} } } } ;
1347 static const fp12_t var_b = { { { {0x3F3E1B11, 0xE2AC4547, 0xDBCDD7B0, 0x1862A3B2, 0x91B74C62, 0xE526DBA1, 0x08446701, 0x1A9480BD},
1348 {0x83305C68, 0x073B62A0, 0x8FB27EAB, 0x9BCA44BC, 0xEFBB244F, 0xE7982D14, 0xCF8894B8, 0xA5244FB4} } ,
1349 { {0x867AAC3E, 0x747AFE50, 0x7C4BD1EF, 0x761767EE, 0x0D215799, 0x6A458F35, 0x640FFF5B, 0x849351B8},
1350 {0x0F57F56B, 0xCBB11EE3, 0xF9DF10F9, 0xB756F9CB, 0x78CB0776, 0x2CBC4F3A, 0xF4CC9132, 0x33669CAF} } } ,
1351 { { {0x5F1F638E, 0xCF173C64, 0x10D3FBC4, 0x265553C0, 0xCFEE4029, 0xC577CE64, 0x616DA5CA, 0x9D28452E},
1352 {0x4088BB6F, 0xED9513E3, 0x81C99428, 0x21082F90, 0x4A877744, 0x4A97D691, 0x7E6E6E21, 0x18F779A9} } ,
1353 { {0x598E1BD3, 0xB2C485CD, 0x9270A8EC, 0xD35E9F40, 0x89EF1AEA, 0xA3467BB9, 0x15490C2C, 0x26A25BD5},
1354 {0xC00946ED, 0x5186172B, 0x6C1E8D14, 0x59149A96, 0x678379C6, 0x20171648, 0x21A48705, 0x52ABEB37} } } ,
1355 { { {0xE1A15977, 0x20C5854F, 0x670BDB1E, 0x56FE18B7, 0xD7E023A8, 0xF427E89A, 0x940D9893, 0x6ACECC28},
1356 {0xFCE33363, 0x18D408B8, 0x94E4AA56, 0x6D592985, 0x5F9623E8, 0xB97E200C, 0xD264366B, 0x02866ED0} } ,
1357 { {0x427D7BCC, 0x5970EA2B, 0x60B6458F, 0xB5143C2F, 0x443F5FD2, 0xEF8EC850, 0xF3F645F3, 0x378BD5F7},
1358 {0xDFA3CB2A, 0xA3FD84EC, 0x6AFEA5BF, 0x81825060, 0x5C5B0171, 0x6D378355, 0x47020777, 0x17CE2D3E} } } } ;
1359 static const fp12_t var_expected = { { { {0xCF48C80B, 0x0146773B, 0xD7EFBD89, 0xAFF1D1E0, 0x139750F2, 0x8B8754C5, 0xD92337D8, 0x2228EF12},
1360 {0x536B8976, 0xAF928F91, 0xAF999CC3, 0x6EF57428, 0xC0703DA8, 0xA7F838C7, 0x9CD728EF, 0x2BF9D143} } ,
1361 { {0xF4AE2CFB, 0x4C17A2B8, 0x97B9938A, 0x8B4F62F4, 0xB5DECB86, 0x35A9A72C, 0x7EB18E14, 0x8A49AEE2},
1362 {0x4F233087, 0x69C175DC, 0xCC9CD939, 0xF1C242B6, 0x20B3AABF, 0x04DF4929, 0x6870A4B0, 0x02DE3DD3} } } ,
1363 { { {0xD0DFA76B, 0xE0EB8321, 0x74EC0296, 0xC8A2C7E0, 0x4DEED166, 0xA0525BD5, 0xEA4DC342, 0x11F7A513},
1364 {0xA584359E, 0xDA6FF527, 0xF1CA3AEE, 0xE7A41F2F, 0x0EC0147A, 0x729D4B0A, 0x3C974E5B, 0x1A703285} } ,
1365 { {0xA0A57618, 0xC1F52C0D, 0x10BFA817, 0x29A12782, 0x64AFAF2F, 0xABABD8AD, 0x83828DF0, 0x05112AF4},
1366 {0x8909A098, 0x493C1470, 0x009DE47E, 0xE4AA5DF3, 0x66546E86, 0x29B40438, 0x46B9FD48, 0xA31331CD} } } ,
1367 { { {0xC00444E8, 0x71006C53, 0xB2C2FF7B, 0xE2BC0DE7, 0xB7E1E9C1, 0xB7BB198E, 0xF71BC12D, 0x782AA538},
1368 {0x5AA6B7A5, 0x77D9649B, 0x2BF2F8E6, 0x82BD9B0E, 0xC4F7DF43, 0xC2948894, 0xEECA2A1C, 0x6314C637} } ,
1369 { {0xA4E1271B, 0xEF8C3E33, 0x556EA8A2, 0x8D4405FB, 0x2CCB8371, 0xAB83B2BE, 0x2EC3E1CF, 0x3FAB1320},
1370 {0xCC9F4DE6, 0xA8E72104, 0xA9F35339, 0x9F1510A7, 0x52BAAA8D, 0x65FD8D59, 0x5FAFD6DF, 0x70FD12B0} } } } ;
1372 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1353 a000");
1373 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1354 a001");
1374 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1355 a010");
1375 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1356 a011");
1376 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1357 a100");
1377 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1358 a101");
1378 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1359 a110");
1379 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1360 a111");
1380 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1361 a200");
1381 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1362 a201");
1382 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1363 a210");
1383 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1364 a211");
1386 static const fp12_t var_a = { { { {0x8F3A8BD6, 0xDDEB5798, 0xDF561005, 0x827F69E8, 0xE78131C8, 0xF6E012F6, 0x8AF91218, 0x83BD2491},
1387 {0x1D312781, 0x9157FB39, 0xF2488317, 0x48FFB226, 0x1550C42B, 0xBD20F66F, 0x732EF6FA, 0xA915B1D2} } ,
1388 { {0xCFFE86C1, 0x6EE5B736, 0x8B460B46, 0x1EFECC38, 0x23133C14, 0xC9BB9C5D, 0x6BE3B0BC, 0x2B127AFE},
1389 {0x5DEC2FBE, 0xC5C60495, 0x713DD743, 0x42E94173, 0x8DCD297C, 0x89E0E9FE, 0x0D1DA01C, 0xB3049DD0} } } ,
1390 { { {0xD18564C5, 0x0DF99F54, 0x9E51B70A, 0x746C7876, 0xE7F75223, 0x53CF1204, 0xEBDAA17D, 0x305D36D5},
1391 {0x0D31C2B8, 0x6026666D, 0xC1EF71F1, 0x7A3E237A, 0x55AF7A47, 0xDDB2F1C2, 0x09025643, 0x57AEE577} } ,
1392 { {0x43148B0D, 0xFB1516B0, 0xBDAFB88F, 0x9DFD2D85, 0x1134B2A2, 0xC508AB55, 0x6017A28D, 0x1DC21D29},
1393 {0x7B4CD68C, 0xC1ACE1E4, 0x2807E775, 0x2B1CB91E, 0xE8B7CAFA, 0x0B9A67E4, 0x5CCA01AA, 0x3EBEB260} } } ,
1394 { { {0xAE47EBD1, 0xBA8F64AB, 0xF9541552, 0xE0CB49A3, 0x699A38F1, 0x96A2C8A7, 0x1F309210, 0x0044B93F},
1395 {0x3379F62B, 0x8CEA2716, 0x2A86465E, 0xCC5FFB7E, 0x05434770, 0xA2CEDEC2, 0x3C8AE658, 0x521C02A5} } ,
1396 { {0x67C4B4E7, 0x08D4045F, 0xF3934542, 0x0EBED1AE, 0x4A08A820, 0x69199237, 0xBC08E211, 0x0FBD57A6},
1397 {0xA1835FCB, 0xA0EB9860, 0xB8A30B58, 0x0425BC40, 0x55334724, 0x7A6F815F, 0xDDAE5CCE, 0x0269108C} } } } ;
1398 static const fp12_t var_b = { { { {0xB349824B, 0xE82ED935, 0x93C9A054, 0xC76C25BA, 0x535E2515, 0x3B72416F, 0x8DE8491A, 0x679F4074},
1399 {0x96463F9B, 0x1F039A55, 0x80F55790, 0xF19E8B9F, 0xBB4BDB0D, 0x9910E002, 0x73C68E4A, 0x2ADBE11A} } ,
1400 { {0xA33D4187, 0x9C26915D, 0x5451B307, 0x375DF7C3, 0xB627D291, 0x3B14D0CD, 0x2703EA6F, 0x4A54D85A},
1401 {0x5EA728B7, 0x6730FC8B, 0xC87250F9, 0xCE48D94A, 0xB69362CA, 0x50F02530, 0xF53D2D97, 0x74723112} } } ,
1402 { { {0x239F8FEB, 0xA4E55CC3, 0x1A83F011, 0xB83BE670, 0x90FEA59D, 0xD8F35CF7, 0x1F2CB81F, 0x8064F673},
1403 {0xC25BA579, 0x1D2FE964, 0x6ABAC61D, 0xEC7FA6F6, 0x5B279FE6, 0x3AFDBEF5, 0x18A722DC, 0x547D8EBF} } ,
1404 { {0x6002ED8F, 0xC03840A3, 0x0A7A1561, 0xE27CE842, 0x3E3ED7A1, 0xC303E1F8, 0x49464A1F, 0x141D7A59},
1405 {0xF39CE51F, 0x20327A20, 0x00BF2E45, 0x1864EDF7, 0xF9724B62, 0x23D06F0C, 0x8FA94816, 0xAD958524} } } ,
1406 { { {0xC7604A6F, 0xF29E3F69, 0x886420F9, 0x8EEDCE5B, 0x5DD30D08, 0xEE44AB67, 0xBB93F89D, 0x4E1FC423},
1407 {0x991870D2, 0x9248C0BF, 0xBBBED6FA, 0x3712841B, 0x7B972A28, 0x21D7762B, 0xD1B637A0, 0x2FC8A54D} } ,
1408 { {0x05E92D08, 0x7B59F177, 0x3BD4BBBF, 0xD5428B25, 0xCA0BEA0A, 0x8AD60098, 0xCA053423, 0xB7F0B339},
1409 {0x2ACB2E3B, 0xD207A429, 0x5F62A826, 0xBD9FAEBE, 0x5A88CEFB, 0x77A64351, 0x9210403C, 0xB1A059FD} } } } ;
1410 static const fp12_t var_expected = { { { {0xE057D986, 0xC72BA71C, 0x9EA7D113, 0x36D9E302, 0xE6FCCD29, 0x36F1F7FA, 0xD8C27F0A, 0x3148C643},
1411 {0x514B3281, 0xB16D0BDD, 0x9EC5FB60, 0x278C9125, 0x7CBA1584, 0x5AD17A06, 0xA6D6A91C, 0x19DDF42A} } ,
1412 { {0x733BC848, 0x0B0C4894, 0xDF97BE4E, 0x565CC3FB, 0xD93B0EA5, 0x04D06D2A, 0x92E79B2C, 0x75675358},
1413 {0x5A6723DA, 0x2E08776F, 0x653848F6, 0xFE206E1D, 0xF07E0291, 0xDF70B2C3, 0xC23BF18A, 0x6D633020} } } ,
1414 { { {0xF524F4B0, 0xB2DEFC17, 0xB8D5A71B, 0x2CA85EE6, 0x78F5F7C1, 0x2CC26EFC, 0x0B07599D, 0xB0C22D49},
1415 {0xCF8D6831, 0x7D564FD1, 0x2CAA380E, 0x66BDCA71, 0xB0D71A2E, 0x18B0B0B7, 0x21A97920, 0xAC2C7436} } ,
1416 { {0xA317789C, 0xBB4D5753, 0xC829CDF1, 0x807A15C7, 0x4F738A44, 0x880C8D4D, 0xA95DECAD, 0x31DF9782},
1417 {0x0CBD8710, 0xE2F0D254, 0x544F3673, 0x306FFA74, 0x8E478CA7, 0x340A7A86, 0xAC546D97, 0x324098C2} } } ,
1418 { { {0x75A83640, 0xAD2DA415, 0x81B8364C, 0x6FB917FF, 0xC76D45FA, 0x84E7740E, 0xDAC48AAE, 0x4E647D62},
1419 {0xCC9266FD, 0x1F32E7D5, 0xE6451D59, 0x03727F99, 0x80DA7199, 0xC4A654ED, 0x0E411DF8, 0x81E4A7F3} } ,
1420 { {0x0B81AD54, 0x853F6C25, 0x5AF021BA, 0xD0EFB033, 0xC0320875, 0xF88F3664, 0x45EF3A0B, 0x0D9A6C1E},
1421 {0xCC4E8E06, 0x72F33C89, 0x1805B37F, 0xC1C56AFF, 0xAFBC161F, 0xF215C4B0, 0x6FBE9D0A, 0xB4096A8A} } } } ;
1423 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1365 a000");
1424 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1366 a001");
1425 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1367 a010");
1426 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1368 a011");
1427 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1369 a100");
1428 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1370 a101");
1429 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1371 a110");
1430 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1372 a111");
1431 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1373 a200");
1432 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1374 a201");
1433 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1375 a210");
1434 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1376 a211");
1437 static const fp12_t var_a = { { { {0x07CF6A8D, 0xDC7B72F5, 0x060E1E39, 0x11AA3AD9, 0xA166DFF5, 0x0806E1FB, 0x0A8D102F, 0x188B295B},
1438 {0xA8E8095C, 0x85567F84, 0x1CE7089C, 0xD5E385B0, 0x01221ADF, 0xC8E7BF74, 0x07CB787C, 0x33D734F2} } ,
1439 { {0xFA1B6DF4, 0xD6FBBFFF, 0x105A5C7B, 0xDA58F41D, 0x40646351, 0x185FEDFA, 0x51690352, 0x79EC0A8F},
1440 {0x0915BD09, 0x878F1442, 0x36FC7AAB, 0x7204758A, 0x6B59FAD5, 0xD8AE27A6, 0x65C901D1, 0x0CFDCF7F} } } ,
1441 { { {0x4B7E196E, 0x6AC173E9, 0xBC5332DD, 0x091D5C38, 0x445670B8, 0xACBB75D4, 0xB479D5F0, 0x25A7CDDD},
1442 {0x5982DC82, 0xFC3675C6, 0xB3644A36, 0x8D51D06C, 0xD439159F, 0xB8BFFAD8, 0x62D55646, 0xA747B83B} } ,
1443 { {0xA7194117, 0xD9B6E55F, 0xB1393D25, 0xB8ECF883, 0x8A2F5C54, 0xF453A85C, 0x878CC929, 0xA4718401},
1444 {0x1FE31DC8, 0x4403C9DB, 0x2DBFC07C, 0x38E719CD, 0x128D33E5, 0xC10870D2, 0x7117CC89, 0x372B48B8} } } ,
1445 { { {0x9A2A7552, 0xA4EA26EA, 0xFDC5CBF7, 0x2C64A28E, 0xDB717987, 0x676E8939, 0x20911A66, 0x05A2D1B2},
1446 {0x4D1D9424, 0x018E0C60, 0xFF2CC738, 0x00983F2D, 0x3521A7AC, 0x808D0EA1, 0x09F92E8E, 0x5F57EC60} } ,
1447 { {0x75B4A756, 0x8B459CFC, 0x45D55EB8, 0x37B0C073, 0x8F694733, 0xA74F39E7, 0x147FD6B1, 0x7F251887},
1448 {0xAE6723F1, 0x13ADE9A8, 0xEDC2A965, 0x9E3407D7, 0x3A0AAC04, 0xC6F7A485, 0x9EFC5D2F, 0x49F3E381} } } } ;
1449 static const fp12_t var_b = { { { {0x819551C4, 0x904EE8B1, 0x70088693, 0x79692CC2, 0x4826E287, 0xB38AF430, 0xB87707A0, 0x2D41DE66},
1450 {0x4F460F3D, 0x9C701F14, 0xFD5027B3, 0x0B2E2005, 0x5F554F32, 0xA507B4E4, 0xE52BE1FA, 0x5D421A14} } ,
1451 { {0xCC124046, 0xF586FF4F, 0xF6C2A526, 0x1ED9579D, 0x37228C08, 0xB8D06FC0, 0xA04443E9, 0x51F1213E},
1452 {0x7E5A6825, 0xFC32459C, 0x73B29660, 0x8025CC8D, 0x20D99FB7, 0x6CA320AC, 0xD4675A36, 0x4534660D} } } ,
1453 { { {0x42CAE712, 0x39D48B74, 0xBD23191A, 0x802E181B, 0x79A67753, 0x2721EE03, 0x621089C0, 0xB611DFD6},
1454 {0x66065988, 0xD6B9E7B3, 0xFFA52125, 0x626B1F27, 0xE6232A13, 0xB3872D5D, 0x5F99CD79, 0x2FE12EBD} } ,
1455 { {0x12AF8456, 0x1E7EEFD9, 0xEACC04C3, 0x37214145, 0x6B7D1FF9, 0xB039A59F, 0xD3D47B42, 0x6402D468},
1456 {0xF91AC53F, 0x07F1C5BB, 0xE6742AFA, 0xA4E48D09, 0xABB27D4B, 0x3B374322, 0xBB9DC590, 0x737CCE50} } } ,
1457 { { {0xA8D999D4, 0xA53E227B, 0xE233BE61, 0x1D8157D3, 0xAAC26930, 0x45A6E904, 0x07ABF40E, 0xA4372B7C},
1458 {0x1FECDF54, 0xB3A4DC59, 0xAE949C1C, 0x06F0A646, 0xAFF380BF, 0x244BF2BD, 0xDD5D471D, 0x4B1FA791} } ,
1459 { {0x4F2AD08E, 0x106468F7, 0x7679C6C1, 0x36B45B55, 0xBED09464, 0x1B712200, 0x13FCED82, 0x45B60947},
1460 {0x86DCFDD1, 0x3AE71CD5, 0x6FA5925A, 0xD4A086C7, 0xC3E34AAA, 0xBB42D114, 0xFA56ABA7, 0x1B1EA9C1} } } } ;
1461 static const fp12_t var_expected = { { { {0x8964BC51, 0x6CCA5BA6, 0x7616A4CD, 0x8B13679B, 0xE98DC27C, 0xBB91D62B, 0xC30417CF, 0x45CD07C1},
1462 {0xF82E1899, 0x21C69E98, 0x1A373050, 0xE111A5B6, 0x60776A11, 0x6DEF7458, 0xECF75A77, 0x91194F06} } ,
1463 { {0x6401799F, 0xCD94359E, 0x32A5225B, 0xE6209F1A, 0x23A465A4, 0xD5D0014F, 0xB18E6B12, 0x11C98D0B},
1464 {0x8770252E, 0x83C159DE, 0xAAAF110C, 0xF22A4217, 0x8C339A8C, 0x45514852, 0x3A305C08, 0x5232358D} } } ,
1465 { { {0x2C1CCBE5, 0xA5A775AC, 0xA4FE6CB0, 0x7639C7B3, 0x6A1A5E56, 0xD87D076C, 0xD66B8387, 0x21A60EF1},
1466 {0x5D5D016F, 0xD401D3C8, 0xDE918C15, 0xDCAB42F3, 0x6679B5FD, 0x70E6CBCB, 0x82504797, 0x1D154836} } ,
1467 { {0x579C90D2, 0xF9474B87, 0xC78D62A1, 0xDCFC8D28, 0xA1C9F298, 0xA92CF190, 0x1B426843, 0x4E60B9A8},
1468 {0x18FDE307, 0x4BF58F97, 0x1433EB76, 0xDDCBA6D7, 0xBE3FB130, 0xFC3FB3F4, 0x2CB59219, 0xAAA81709} } } ,
1469 { { {0x43040F26, 0x4A284966, 0xDFF98A59, 0x49E5FA62, 0x8633E2B7, 0xAD15723E, 0x283D0E74, 0xA9D9FD2E},
1470 {0x6D0A7378, 0xB532E8B9, 0xADC16354, 0x0788E574, 0xE515286B, 0xA4D9015E, 0xE75675AB, 0xAA7793F1} } ,
1471 { {0x62B34349, 0x9CBB7C42, 0xE7D74632, 0x5B536F27, 0xFA5751E2, 0xC75FFF7C, 0xE85DE80A, 0x0AC7830B},
1472 {0x354421C2, 0x4E95067E, 0x5D683BBF, 0x72D48E9F, 0xFDEDF6AF, 0x823A7599, 0x995308D7, 0x65128D43} } } } ;
1474 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1377 a000");
1475 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1378 a001");
1476 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1379 a010");
1477 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1380 a011");
1478 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1381 a100");
1479 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1382 a101");
1480 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1383 a110");
1481 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1384 a111");
1482 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1385 a200");
1483 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1386 a201");
1484 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1387 a210");
1485 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1388 a211");
1488 static const fp12_t var_a = { { { {0x1AFCA7B5, 0xDC86A931, 0x07117C30, 0x16A1602D, 0xC27CB3C9, 0x95120B45, 0x4F6DC565, 0x3E065C41},
1489 {0x5A23280C, 0x408867E2, 0xDCF3085A, 0x73E7C950, 0x509541B0, 0x94533847, 0x072F69B1, 0x1121ECC1} } ,
1490 { {0x102FA189, 0xCF4D16FC, 0x3E62193F, 0x1C8AD162, 0x150F69A5, 0x73C1AF66, 0xCCF7DAA4, 0x6AFDD4A0},
1491 {0x8EA63C4B, 0xA0B9E3B9, 0x3793F184, 0xD68CD78C, 0x504D7D6D, 0x72B9F59E, 0x3AC0E8D7, 0x852FC18E} } } ,
1492 { { {0x9E91EA34, 0xE9DB6F04, 0x804FD13E, 0x2241411E, 0x56083502, 0xA5E26931, 0xA251A6BF, 0x12013F7F},
1493 {0x080FDE03, 0x80D39AD1, 0x060955EA, 0xBD0DAC1B, 0x047C6287, 0x7606E03C, 0x87304564, 0xB270D7E5} } ,
1494 { {0x357F8BF1, 0x68F249CC, 0x1A0D9634, 0x65A1445A, 0x070EAF5D, 0x53B95EEB, 0xA31E76B8, 0x33821AC8},
1495 {0x15285748, 0x40C23483, 0x8FC9E94C, 0x61CDAD79, 0xE7824BB0, 0xF091E725, 0xE35C19F2, 0x407733D7} } } ,
1496 { { {0xC3FF90C7, 0xCE482294, 0xF196BB39, 0x40DC0C12, 0x47367F69, 0xEEF61B91, 0x67C3C85C, 0x963EE3A8},
1497 {0x6AAFBC23, 0x7F16BF72, 0xD58CCD20, 0x73A5BE43, 0xB47F2D9F, 0x628D8C22, 0x441F4911, 0x46CC92AA} } ,
1498 { {0x4D6B5AB7, 0xDFAE65E6, 0xAE7EAB37, 0x11F7CA0D, 0x77EB38B9, 0x366B58DC, 0x01966ECF, 0x16BCB6BD},
1499 {0x49691931, 0x21C8F486, 0x49EF812B, 0x61C1C890, 0x174EAE63, 0xB14A5D76, 0x1D7AD639, 0x06BA9CF6} } } } ;
1500 static const fp12_t var_b = { { { {0x68C99D3D, 0x997A4C1B, 0x317CC773, 0xEDF98A07, 0x31BB00EC, 0x0C748896, 0x474779A7, 0x2A8EB62F},
1501 {0xE85E9238, 0x444F58C0, 0x714FB74D, 0x5D2BCB50, 0x4AB2FB89, 0xDF94C163, 0xE58B2176, 0x15F501EE} } ,
1502 { {0xBF1137EF, 0x3D3A5C60, 0x218209F0, 0xECDBC263, 0x502CC59D, 0xA1AD084A, 0x8E19E5A0, 0x5B2FB9B2},
1503 {0x92EDBA25, 0x4A5E43C2, 0x8F6F3693, 0xA0A7EA69, 0xC95189AF, 0x3D00C144, 0x90A62A13, 0x205DB0A5} } } ,
1504 { { {0x1AFC7A9F, 0x4FC43717, 0xE60EF31E, 0x2C1CAC61, 0xF68FAA59, 0x7701B1B5, 0xAA3032E3, 0x44912544},
1505 {0x10CD3A3C, 0xD5E9C75C, 0x803D3EDE, 0x7D5645A4, 0xA9648F29, 0x6751652C, 0xD3D00342, 0x99AAEF55} } ,
1506 { {0xCE5FE35D, 0x8DA492ED, 0x1FB2CC2F, 0x80EA6DFE, 0x7BC5A32E, 0x2E1AD654, 0x31FBF5D2, 0x1C62D654},
1507 {0x92B35839, 0xC6D99C03, 0xDD796323, 0xBF9EAA58, 0x3BF684E3, 0x2777326F, 0x639E653D, 0x635CEA4B} } } ,
1508 { { {0x4474AA72, 0xF8D2F395, 0x362B9DFE, 0xC119F20A, 0x7E1AA767, 0xB70ED832, 0x38691154, 0x2DEC60C7},
1509 {0xC34D8F12, 0x3E738C05, 0xD7B0A47A, 0x4D63E3B1, 0x69450BF3, 0x94B4A708, 0xB5ED5F6A, 0x2DE612B9} } ,
1510 { {0x68CD0236, 0xD2A7256D, 0x23275E2D, 0xE3C036D5, 0x32F3A846, 0x4ED289AE, 0x945BD769, 0x8AB0103C},
1511 {0xB2E73FDE, 0x9C13247F, 0x5CE127F4, 0x86EDFAE6, 0x58010F9F, 0xF795FA16, 0x3FD251CF, 0x15A2BDFA} } } } ;
1512 static const fp12_t var_expected = { { { {0x83C644F2, 0x7600F54C, 0x388E43A4, 0x049AEA34, 0xF437B4B6, 0xA18693DB, 0x96B53F0C, 0x68951270},
1513 {0x4281BA44, 0x84D7C0A3, 0x4E42BFA7, 0xD11394A1, 0x9B483D39, 0x73E7F9AA, 0xECBA8B28, 0x2716EEAF} } ,
1514 { {0x6D14A4DD, 0x0D98E9AB, 0x8B6C43E9, 0xF654E724, 0x1159A58D, 0x1A0E5B45, 0x1AF2E41C, 0x0C19EF91},
1515 {0x2193F670, 0xEB18277C, 0xC7032817, 0x7734C1F5, 0x199F071D, 0xAFBAB6E3, 0xCB6712EA, 0xA58D7233} } } ,
1516 { { {0xB98E64D3, 0x399FA61B, 0x665EC45D, 0x4E5DED80, 0x4C97DF5B, 0x1CE41AE7, 0x4C81D9A3, 0x569264C4},
1517 {0xB6B0E3A4, 0x57CED87B, 0xB1CEB582, 0x2752451E, 0x59FE67FC, 0xE1F7E8FD, 0x1AE16C7D, 0x92082879} } ,
1518 { {0x03DF6F4E, 0xF696DCBA, 0x39C06263, 0xE68BB258, 0x82D4528B, 0x81D4353F, 0xD51A6C8A, 0x4FE4F11C},
1519 {0xA7DBAF81, 0x079BD086, 0x6D434C70, 0x216C57D2, 0x2378D094, 0x18091995, 0x46FA7F30, 0xA3D41E23} } } ,
1520 { { {0xA648069E, 0xC82C8C78, 0x534A79F1, 0xEEE4517C, 0x716E9D1B, 0xAAA49758, 0x600DFD88, 0x0A17A5AD},
1521 {0x2DFD4B35, 0xBD8A4B78, 0xAD3D719A, 0xC109A1F5, 0x1DC43992, 0xF742332B, 0xFA0CA87B, 0x74B2A563} } ,
1522 { {0xB6385CED, 0xB2558B53, 0xD1A60965, 0xF5B800E2, 0xAADEE0FF, 0x853DE28A, 0x95F24638, 0xA16CC6F9},
1523 {0xFC50590F, 0xBDDC1905, 0xA6D0A91F, 0xE8AFC376, 0x6F4FBE02, 0xA8E0578C, 0x5D4D2809, 0x1C5D5AF0} } } } ;
1525 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1389 a000");
1526 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1390 a001");
1527 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1391 a010");
1528 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1392 a011");
1529 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1393 a100");
1530 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1394 a101");
1531 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1395 a110");
1532 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1396 a111");
1533 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1397 a200");
1534 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1398 a201");
1535 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1399 a210");
1536 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1400 a211");
1539 static const fp12_t var_a = { { { {0x8809B408, 0x9D9B4104, 0xA2F10EC2, 0x51251A77, 0x0A10FEB6, 0x5F291E97, 0x1990B4F4, 0xB763E466},
1540 {0xF0636F73, 0x8290F369, 0xF275404C, 0xE2220AFA, 0xC3AD608E, 0xDE1BE94F, 0x35480BFE, 0x0403899F} } ,
1541 { {0x6FC34161, 0x19ABB73B, 0x02688FAE, 0x91F1295D, 0x0DECBD96, 0x9FD5A337, 0x5D558746, 0x0315D896},
1542 {0x830B9CC5, 0xD2514E9C, 0xB394B28A, 0xF614A8BE, 0x0173C3DC, 0x25CBE91A, 0x8D84DB6B, 0xAE1AE570} } } ,
1543 { { {0x4E40AF85, 0x46131868, 0x50A6A450, 0xA31AEDF6, 0x81FDD56E, 0xF7863A30, 0xF577BCF3, 0x2B26EA6F},
1544 {0xDA36AC29, 0xAC02B19D, 0x7AC656B2, 0xCCEBFFC0, 0xA2599573, 0xD9A1DC01, 0x3AE1AE0C, 0x3696BA66} } ,
1545 { {0xD361D3A5, 0x65B1EC97, 0x35F6B125, 0x9F1F4DC3, 0x42150F7C, 0x960BDF91, 0x35F10D25, 0xB8736DE8},
1546 {0x42701B74, 0x72EA2B78, 0x8B67D005, 0x9E2D151D, 0x23916355, 0x49A31A98, 0x32B01D0A, 0x46FA7D4C} } } ,
1547 { { {0x2576367A, 0xF91C945F, 0xE92852DE, 0xB88FFC1A, 0xC72E18DA, 0xF75F1597, 0x3341B383, 0x00E5FA35},
1548 {0xE8430B7F, 0xC5FBD9E0, 0x97F7B71F, 0xD14F0087, 0xEE3F80F2, 0x0CE99C6D, 0x6B8B9FFE, 0x0D33C36E} } ,
1549 { {0x72B96819, 0xC369B7FE, 0x92C1CECF, 0x88E77451, 0x6BCE0C98, 0xCC3E36DF, 0xC4324A8C, 0x0A4F63B3},
1550 {0x5ABC3E05, 0x85A16431, 0x0D4830C3, 0x468B23E4, 0xA7DB929D, 0xEB32338C, 0xD922E949, 0x27785219} } } } ;
1551 static const fp12_t var_b = { { { {0x4E524152, 0xC12B8089, 0x14BE7B58, 0x1F329F40, 0xC8AFB18A, 0xF790CBCD, 0xBC4A505F, 0x4E194841},
1552 {0x46321082, 0xD330033F, 0x1B01CAA9, 0xE104E230, 0x38AF999E, 0xF7B5D23B, 0xF1CC5517, 0x445C0464} } ,
1553 { {0x3E92AD19, 0x361FD037, 0x95B0C60B, 0x5FF68E93, 0xBFA1A2D4, 0xB71D67EF, 0xB1073D66, 0x271301FF},
1554 {0xF7C49DA3, 0x11BACAEE, 0x07CBF33C, 0xDCA55836, 0x1D2F229B, 0x86B10B7E, 0xA958B25C, 0x0CB5E79B} } } ,
1555 { { {0x9381F2AD, 0xA48E19F4, 0xCFBD50B2, 0xB37BC5FC, 0xC12D10F8, 0x795A8C9E, 0x78602523, 0x19D3D4CF},
1556 {0x5C2A217F, 0xDE18B512, 0x2DA3FDFF, 0xC2A6AF4A, 0x67C92D58, 0x2475C984, 0x745D3CEA, 0x232BDB56} } ,
1557 { {0x78D1731F, 0xCAB78619, 0xE79564F9, 0xB5FF233A, 0x2BFCBCD1, 0xEE9A45F7, 0xE67CADB2, 0x2BDF627C},
1558 {0x7FD69574, 0x1D435F10, 0xA6478C8F, 0x28DBF67B, 0x6B31C3DD, 0xA8FA3987, 0x4909EB20, 0x3D72BDFA} } } ,
1559 { { {0x5CD84787, 0xABCAC07D, 0x423C1D27, 0x3D58AA8D, 0x99868A1E, 0x06810D79, 0x0F24578F, 0xA7514C50},
1560 {0xCFCB806B, 0xEEF617C8, 0x4C5CAE3B, 0x18AD0381, 0xBB79B65B, 0x2031F1A0, 0x1C300460, 0x7E59D23B} } ,
1561 { {0xEB612B7A, 0x86F990D3, 0x855721A8, 0x64834DFF, 0xEAE7CF91, 0xF30C7F38, 0x490C28ED, 0x1769C10A},
1562 {0x98BEB9B5, 0xB40D6ADE, 0x65D73818, 0xCC64D9CA, 0xD35BE22E, 0xDE8D1D35, 0xE21DCC0D, 0x8E07F6D6} } } } ;
1563 static const fp12_t var_expected = { { { {0x742FC0BF, 0x5FD837DC, 0xE337AAD4, 0x5D460D16, 0x7EDE268B, 0x5B598DF9, 0x95BC292B, 0x4B698DE5},
1564 {0x36957FF5, 0x55C0F6A9, 0x0D770AF6, 0xC326ED2B, 0xFC5CFA2D, 0xD5D1BB8A, 0x27146116, 0x485F8E04} } ,
1565 { {0xAE55EE7A, 0x4FCB8772, 0x981955B9, 0xF1E7B7F0, 0xCD8E606A, 0x56F30B26, 0x0E5CC4AD, 0x2A28DA96},
1566 {0x18A405CD, 0xE51D8FDA, 0xE6E8C67F, 0xBFA85453, 0xCAC05CC3, 0xB11C982C, 0xF6BEB19E, 0x00BD2E49} } } ,
1567 { { {0xE1C2A232, 0xEAA1325C, 0x2063F502, 0x5696B3F3, 0x432AE667, 0x70E0C6CF, 0x6DD7E217, 0x44FABF3F},
1568 {0x3660CDA8, 0x8A1B66B0, 0xA86A54B2, 0x8F92AF0A, 0x0A22C2CC, 0xFE17A586, 0xAF3EEAF6, 0x59C295BC} } ,
1569 { {0xEA071229, 0x317AE8FF, 0x491436D8, 0x420CC45D, 0x1A2F4299, 0x8945C91D, 0xDC4EDEAF, 0x2A3F31A2},
1570 {0xC246B0E8, 0x902D8A88, 0x31AF5C94, 0xC7090B99, 0x8EC32732, 0xF29D541F, 0x7BBA082A, 0x846D3B46} } } ,
1571 { { {0x824E7E01, 0xA4E754DC, 0x2B647006, 0xF5E8A6A8, 0x60B4A2F8, 0xFDE02311, 0x42660B12, 0xA8374685},
1572 {0xB80E8BEA, 0xB4F1F1A9, 0xE454655B, 0xE9FC0408, 0xA9B9374D, 0x2D1B8E0E, 0x87BBA45E, 0x8B8D95A9} } ,
1573 { {0x5E1A9393, 0x4A6348D2, 0x1818F078, 0xED6AC251, 0x56B5DC29, 0xBF4AB618, 0x0D3E737A, 0x21B924BE},
1574 {0xF37AF7BA, 0x39AECF0F, 0x731F68DC, 0x12EFFDAE, 0x7B3774CC, 0xC9BF50C2, 0xBB40B557, 0xB58048F0} } } } ;
1576 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1401 a000");
1577 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1402 a001");
1578 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1403 a010");
1579 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1404 a011");
1580 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1405 a100");
1581 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1406 a101");
1582 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1407 a110");
1583 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1408 a111");
1584 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1409 a200");
1585 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1410 a201");
1586 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1411 a210");
1587 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1412 a211");
1590 static const fp12_t var_a = { { { {0x127F0960, 0xDD88E537, 0x9581D2C2, 0x83379201, 0x39AC046F, 0x25AD291D, 0x292B848B, 0x4218934D},
1591 {0x6810525D, 0x0D7B3D10, 0x75CA6E4F, 0xBDCAB12B, 0x71EAE68C, 0x727C2958, 0xD10536F5, 0x569FEF5C} } ,
1592 { {0xFE5517FD, 0x71DF3A4A, 0x9797F0B4, 0x3373EBB1, 0xE4A0BF23, 0x4F4E897C, 0x83053CF2, 0x3296C833},
1593 {0x0BA05A27, 0xDC5C52E9, 0x42B2BEF2, 0xA3B79DAE, 0x906132B1, 0xAD6EA52B, 0x5C526C98, 0x01D02850} } } ,
1594 { { {0x1CF283B9, 0x43966871, 0xF009B1C0, 0x4E0DDD2D, 0x88A4099F, 0x606B22A3, 0x6DFFCE4E, 0x31EEB8F8},
1595 {0x2D6D8878, 0x421D169E, 0xFC4E946E, 0x6692BD37, 0x1C1453E8, 0xA58C78DD, 0xFAD6304D, 0x3B50CA9C} } ,
1596 { {0xB6E887D9, 0x959A487B, 0x6FB46BA7, 0xD9333614, 0xAD947AAE, 0x8DBD65B0, 0xFC8E053D, 0x0C7C0A15},
1597 {0xDF19F82C, 0x9F3A0F32, 0x8FD37CAF, 0x63291989, 0x37C4D458, 0xA14488BF, 0x1F983D2D, 0x24C1F744} } } ,
1598 { { {0x7FD50E56, 0xE5F573E8, 0xA60E133F, 0x533F6BF6, 0x1AA75BD8, 0x40CC8661, 0x44000C2B, 0x01CB4BD1},
1599 {0xADDC208C, 0x93B14D7D, 0x84DE5DBD, 0x14E3B402, 0xA00C0A72, 0x327BBBC9, 0x00899CF3, 0xA3D6771E} } ,
1600 { {0xA5561926, 0xF6378A7A, 0xB61F548E, 0x56F2AC14, 0x2ACE4457, 0x2A1D3128, 0x1B380404, 0x1AC3873D},
1601 {0xA150F4D7, 0x010D8032, 0xF5C90C92, 0x0B58382B, 0xAB266F20, 0x339B74D6, 0x93D1FF97, 0x6DE77B24} } } } ;
1602 static const fp12_t var_b = { { { {0xCDD2C602, 0xC9868E7E, 0x5CD873BF, 0x94FF10CA, 0xD388BFBE, 0x43443E20, 0x16FA17A0, 0x2A39653E},
1603 {0x29230881, 0x0A1C8AC9, 0xBB522350, 0x563349BD, 0xE92F8301, 0xB185824A, 0xCBBF1A7D, 0xA6E48643} } ,
1604 { {0x082CE472, 0xA0545A91, 0x13B00CD2, 0x39F9EE3E, 0x461EEF68, 0xB9D34992, 0xCAD40B6F, 0x76E1F4B5},
1605 {0x3105CF78, 0x0F5BABC6, 0x46921D17, 0x196D6185, 0x848918B4, 0x00C110CF, 0x5F7B14E2, 0x3C8321A4} } } ,
1606 { { {0xE2B11313, 0xFBC910AC, 0xE9A27FC6, 0x8B863904, 0x4D022A32, 0x028ADBDF, 0x8BD86CA0, 0x0B7CC6DF},
1607 {0x6B8A28EE, 0xAE9C703D, 0x9B18FAF0, 0x07465A6C, 0x34F764F1, 0xA5CD381D, 0x430C2A46, 0x474368DF} } ,
1608 { {0xACF6C022, 0x9969E369, 0x844F746D, 0x5D5B06FF, 0x3EF3D3EA, 0xBFABADEA, 0xEFA1671F, 0x22E05872},
1609 {0x1D077E83, 0xCDD561B3, 0x2B2006E8, 0x8C10BD6E, 0xA6B4BDB8, 0x820C148E, 0xEC5D56DB, 0x07270DA3} } } ,
1610 { { {0x4DC131E9, 0x7FE611A9, 0xF420F698, 0x3B0B6B76, 0x69106360, 0xF5DEE6E0, 0x0B52352E, 0x1AA87E3C},
1611 {0x79D7257E, 0x8A3B0D22, 0x79616234, 0xDCBE3E6F, 0x14AA9EAC, 0x9A1876BD, 0xD0364791, 0x1456E6C1} } ,
1612 { {0xF96C7DD1, 0xEA25505D, 0x31A4B75C, 0x8A9E9D1C, 0xF8ECBF78, 0xC4F3ED1D, 0x33B317D1, 0x66F868EE},
1613 {0xCE6ED8C9, 0x44020241, 0xC9B9881D, 0x2EB94518, 0xFA5F988C, 0x3E12A8A3, 0xE25945FB, 0x16ED96A4} } } } ;
1614 static const fp12_t var_expected = { { { {0xE051CF62, 0xA70F73B5, 0xF25A4682, 0x1836A2CB, 0x0D34C42E, 0x68F1673E, 0x40259C2B, 0x6C51F88B},
1615 {0x2F072643, 0x18A93E28, 0x5CA4B258, 0x00EC4E48, 0x0737DFD9, 0x28A14F38, 0x5CA5754A, 0x4370D6DE} } ,
1616 { {0x0681FC6F, 0x123394DC, 0xAB47FD87, 0x6D6DD9EF, 0x2ABFAE8B, 0x0921D30F, 0x4DD94862, 0xA978BCE9},
1617 {0x3CA6299F, 0xEBB7FEAF, 0x8944DC09, 0xBD24FF33, 0x14EA4B65, 0xAE2FB5FB, 0xBBCD817A, 0x3E5349F4} } } ,
1618 { { {0xFFA396CC, 0x3F5F791D, 0xD9AC3187, 0xD9941632, 0xD5A633D1, 0x62F5FE82, 0xF9D83AEE, 0x3D6B7FD7},
1619 {0x98F7B166, 0xF0B986DB, 0x97678F5E, 0x6DD917A4, 0x510BB8D9, 0x4B59B0FA, 0x3DE25A94, 0x8294337C} } ,
1620 { {0x63DF47FB, 0x2F042BE5, 0xF403E015, 0x368E3D13, 0xEC884E99, 0x4D69139A, 0xEC2F6C5D, 0x2F5C6288},
1621 {0xFC2176AF, 0x6D0F70E5, 0xBAF38398, 0xEF39D6F7, 0xDE799210, 0x23509D4D, 0x0BF59409, 0x2BE904E8} } } ,
1622 { { {0xCD96403F, 0x65DB8591, 0x9A2F09D8, 0x8E4AD76D, 0x83B7BF38, 0x36AB6D41, 0x4F52415A, 0x1C73CA0D},
1623 {0x27B3460A, 0x1DEC5AA0, 0xFE3FBFF2, 0xF1A1F271, 0xB4B6A91E, 0xCC943286, 0xD0BFE484, 0xB82D5DDF} } ,
1624 { {0x9EC296F7, 0xE05CDAD8, 0xE7C40BEB, 0xE1914930, 0x23BB03CF, 0xEF111E46, 0x4EEB1BD5, 0x81BBF02B},
1625 {0x6FBFCDA0, 0x450F8274, 0xBF8294AF, 0x3A117D44, 0xA58607AC, 0x71AE1D7A, 0x762B4592, 0x84D511C9} } } } ;
1627 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1413 a000");
1628 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1414 a001");
1629 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1415 a010");
1630 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1416 a011");
1631 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1417 a100");
1632 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1418 a101");
1633 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1419 a110");
1634 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1420 a111");
1635 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1421 a200");
1636 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1422 a201");
1637 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1423 a210");
1638 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1424 a211");
1641 static const fp12_t var_a = { { { {0x7724EC56, 0x5E5D66BB, 0xA2D299E1, 0x6B18A0C3, 0x0F1DC2E6, 0xA8407FEC, 0x3DB4BDF0, 0x9FD8A01C},
1642 {0xE35491A0, 0xA15CAB89, 0xF9F16D1D, 0xD68923A5, 0x6EB1FE6C, 0x0910B104, 0xD9F45FFC, 0x83971162} } ,
1643 { {0x56994A02, 0x9B5C370A, 0x41885992, 0x88CC3D31, 0x5EBF15AB, 0x4FDE4DBF, 0x3E103704, 0x8AA79880},
1644 {0xE7D3448C, 0x7E3123A2, 0xA1650710, 0x9FBD46CD, 0xBF0C93D2, 0xC80EC8B6, 0x6987ACB0, 0x3E8C9BD3} } } ,
1645 { { {0x03F67F8E, 0xA1F78B92, 0x737CB985, 0xBC94FC27, 0x82E1C755, 0xA9D201FE, 0x4B025ACA, 0x6E43DF9B},
1646 {0xE816DA0C, 0xFE731EEB, 0xC773EF10, 0x84309B09, 0x2CB629E5, 0x8B811BFD, 0x47BA8355, 0xAFC93BE0} } ,
1647 { {0xC9AEC1BC, 0xB415F51F, 0x08917DBB, 0x0C62338D, 0x044FDEEA, 0xED2127F0, 0x7895A8E0, 0x1C9AECC8},
1648 {0x32263DCC, 0x812169E7, 0xAF465A45, 0xBCAE8FF2, 0x327BD435, 0xA3C110C7, 0x69CDBD81, 0x7FBA49E6} } } ,
1649 { { {0xBB2A65E5, 0x506CBD33, 0x657E3731, 0x0B2246A5, 0xFCD1F39F, 0x7DBE14DE, 0x1B91BCEC, 0x8AA08E22},
1650 {0x54B7506A, 0xA951BD94, 0xDE231F8F, 0xC184B203, 0x8C8257BA, 0xA11ECA80, 0x02E8C60D, 0x98C5603D} } ,
1651 { {0xE0E12772, 0x3A39396C, 0x2E6B6F8A, 0x18A48111, 0xCC2114D6, 0x19D97E54, 0x4890F21B, 0x921388CA},
1652 {0x18FDF368, 0x56467EE8, 0x1ABCB554, 0x4C0F92BF, 0x391C72CF, 0x56EE5051, 0x89686769, 0x23DE575C} } } } ;
1653 static const fp12_t var_b = { { { {0x07DF3207, 0x72A82C07, 0x9EF4B581, 0x1FD44000, 0x6594B1BB, 0xACB078C9, 0x568A8FC4, 0x39D720F1},
1654 {0x8D771C65, 0xA97B5731, 0x677B2783, 0x554BE1CC, 0x7691FB9E, 0xD39C6377, 0xB2344034, 0x88133DAC} } ,
1655 { {0xDEB694EF, 0x3939901A, 0x5A221237, 0x39F5B150, 0xA47DDAE4, 0x67C221C6, 0x98862507, 0x061FE84D},
1656 {0x00C4030A, 0x04B8BF5E, 0x0BD9F42E, 0x1766E0E5, 0xBEF4D386, 0x69BCE7B5, 0x7309FB2D, 0x70215551} } } ,
1657 { { {0xEE5759FA, 0x11CF6482, 0x72B740EA, 0xAD30C230, 0x53007430, 0xC1D94B09, 0x62EC7F56, 0x09FF1692},
1658 {0x9C4034D0, 0x082DD6BE, 0xB6300F31, 0xF63B5D12, 0x7D0F1EA7, 0xAEB4A396, 0xBFAB52AA, 0x0BEB7FB1} } ,
1659 { {0x8CB33F15, 0xB8679EEB, 0x89D9C465, 0x4B80286E, 0xC8497A7E, 0x5D000CF4, 0x4E6F09DB, 0x7B5E8C84},
1660 {0x53BAE8B3, 0x94325F87, 0xAA64039C, 0xE53D00EA, 0xA99D8EB2, 0x66B7C6DC, 0xCDD4F73B, 0xB0725BCC} } } ,
1661 { { {0xFDDBE511, 0x32DF5DA9, 0x87B25416, 0xB6891F66, 0xA68A80C4, 0x38CE146E, 0xAC268FB5, 0x73C2097B},
1662 {0x0C816254, 0xCB00906F, 0x6F890049, 0xA356C849, 0x84466C64, 0xAD06AB1E, 0x90494411, 0x999A188C} } ,
1663 { {0x5286B09A, 0xBE4B559E, 0xE56E2F44, 0x17E35444, 0x1E9E4A4F, 0x813958C0, 0x1316562C, 0x37A34DF5},
1664 {0x77F37A21, 0x0E16857E, 0x1FDA47B5, 0x7E253C4D, 0xE0433D2E, 0xD2CE7302, 0x4063D4AD, 0x2984C1D0} } } } ;
1665 static const fp12_t var_expected = { { { {0x1CD7E9C2, 0xD2170911, 0x6D4F701B, 0x77DB3423, 0x20CFEAEC, 0x59909C4A, 0x5420718C, 0x1F9C224B},
1666 {0x0E9F796A, 0x4BE9790A, 0x8CF4B55A, 0x18C358D1, 0x91617056, 0xE14CB810, 0x4C09C407, 0x5196B04D} } ,
1667 { {0x354FDEF1, 0xD495C725, 0x9BAA6BC9, 0xC2C1EE81, 0x033CF08F, 0xB7A06F86, 0xD6965C0B, 0x90C780CD},
1668 {0xE8974796, 0x82E9E300, 0xAD3EFB3E, 0xB72427B2, 0x7E016758, 0x31CBB06C, 0xDC91A7DE, 0xAEADF124} } } ,
1669 { { {0xF24DD988, 0xB3C6F014, 0xE633FA6F, 0x69C5BE57, 0xD5E23B86, 0x6BAB4D07, 0xADEEDA21, 0x7842F62D},
1670 {0x222ADA41, 0x07B26BF9, 0xA92C1EFB, 0x675A4B7B, 0x55E2BED8, 0x3ED56328, 0xC746F9D7, 0x01A11CCF} } ,
1671 { {0x566200D1, 0x6C7D940B, 0x926B4221, 0x57E25BFB, 0xCC995968, 0x4A2134E4, 0xC704B2BC, 0x97F9794C},
1672 {0x23B4F1E4, 0x16653FBD, 0x85327E9B, 0x8ED9E43C, 0x8836D933, 0x0F187B38, 0xF783D894, 0x761906F0} } } ,
1673 { { {0x56DA165B, 0x845D912C, 0x18B8AC00, 0xAE99B96B, 0x4F79EAAE, 0xBB2BCCE2, 0x87997078, 0x444EF8DB},
1674 {0xFF0C7E23, 0x7563C451, 0x79344092, 0x51C9CDAC, 0xBCE63A6A, 0x52C51933, 0x53132DF6, 0x784BDA07} } ,
1675 { {0xD13BA371, 0xF9960559, 0x3F61BF87, 0x1D7628B5, 0x96DCD570, 0x9FB27AA9, 0x1B886C1E, 0x0FA337FD},
1676 {0x90F16D89, 0x645D0466, 0x3A96FD09, 0xCA34CF0C, 0x195FAFFD, 0x29BCC354, 0xC9CC3C17, 0x4D63192C} } } } ;
1678 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1425 a000");
1679 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1426 a001");
1680 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1427 a010");
1681 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1428 a011");
1682 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1429 a100");
1683 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1430 a101");
1684 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1431 a110");
1685 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1432 a111");
1686 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1433 a200");
1687 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1434 a201");
1688 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1435 a210");
1689 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1436 a211");
1692 static const fp12_t var_a = { { { {0x7701292C, 0xDF677BF2, 0x8836CFC2, 0xC9488792, 0x4D6EA69C, 0xA7C672C9, 0x17E18DE1, 0x8F996E27},
1693 {0x21712B0C, 0xFC9B872C, 0x3EB67801, 0xED38CAAC, 0x7AC62505, 0x6651E5C3, 0x0FC3EEBF, 0x4BB83146} } ,
1694 { {0x99312E1B, 0x54905E9B, 0x94F44B2C, 0x633FF17F, 0x90A6D42E, 0x5BF85EAB, 0x8F3A1A62, 0x84026F13},
1695 {0xD6566862, 0x796672D3, 0x92680DDD, 0xAAAF7508, 0x4DA85B65, 0x38560B2E, 0x73C1C800, 0x25CCCCAF} } } ,
1696 { { {0x256084F6, 0x1FD45176, 0x70A7523D, 0xC1A3CBF4, 0x8483BB1F, 0x8F5FF193, 0x8D34B523, 0x5E8FB6C8},
1697 {0xA4CEDAC4, 0xA303715B, 0x1F77EC8B, 0xADC81A53, 0x983CE3EA, 0x5A3B27D1, 0x22BEA2D6, 0x22F19967} } ,
1698 { {0xC80BF9AB, 0x8204FE87, 0xC0B0905D, 0xF93A94CB, 0x05A36D26, 0x74AB78DC, 0x69904590, 0xA8D50FB5},
1699 {0x757379A3, 0xDEDD1924, 0x567C0E6B, 0x1E624B36, 0x843C971E, 0x22A4E665, 0xD051BCCD, 0x3170C458} } } ,
1700 { { {0x6FB81A7E, 0xFCC45682, 0x68259359, 0x66421829, 0x32D4044C, 0x7BB98191, 0xB60E69D3, 0x2ADF2970},
1701 {0xFDFE732C, 0xC7F1A145, 0x39C95490, 0xADDE77F3, 0xC8073A44, 0x136E6277, 0x7235255B, 0x68A1DA50} } ,
1702 { {0xE5934F7C, 0x50AD6A3F, 0xBAA53B4C, 0x8DED958B, 0x13054717, 0x59456348, 0x0BA05636, 0x33A5FEE8},
1703 {0x8130E144, 0x44A46469, 0x3B995D3E, 0xC7F89B37, 0x13B0CBC2, 0x119709A0, 0x7D447FFB, 0x09991FB7} } } } ;
1704 static const fp12_t var_b = { { { {0xBD1EBF48, 0x7BFFCCB3, 0x9804E02C, 0x8050B06E, 0x3F7EDAE2, 0xF1D817C3, 0x3A511D5D, 0x39087829},
1705 {0x953BE127, 0x71C43D1B, 0xB55DF814, 0xB457A3F9, 0xF21AA122, 0x19F78384, 0xA797D536, 0x64E908A1} } ,
1706 { {0x7E4AB23D, 0xC36B5D94, 0x2AE9D4F6, 0x1F3B030F, 0x9ADBB976, 0x821CD264, 0xDB623180, 0x999046F7},
1707 {0xFFC8729F, 0xB4BB230C, 0x97958E78, 0x5D044B52, 0x909CAC0B, 0x904B08B9, 0xE2E67185, 0x3AF17E37} } } ,
1708 { { {0x16CF799C, 0xA87D9C88, 0x5455EDD8, 0xC46B539D, 0x3FD1383E, 0x7E468FCA, 0x81B283C4, 0x1BBA0A71},
1709 {0xD391ED92, 0xA97DD73E, 0xBB99555B, 0x8914B50C, 0xFCFCCA8E, 0xF347F618, 0x68C7F778, 0x5EADF7DA} } ,
1710 { {0x74D2D47E, 0xE8C21004, 0xE47DC8AA, 0x2D0DC0E6, 0x3618F407, 0x8BCB37AF, 0x81EB3406, 0x3C6ACB68},
1711 {0x576DFB2E, 0x35B84B28, 0x926FA38E, 0xA523CD01, 0xE313B7B4, 0x27A66C30, 0xAA11B087, 0x0F02D228} } } ,
1712 { { {0x070B4C4F, 0x8619666C, 0x403BE01C, 0x33FEB04F, 0x17BA86FC, 0x9CEEBF9B, 0xF259E268, 0x4537139B},
1713 {0x1FE33E85, 0x76C3130A, 0x73960C7A, 0xF6F96C26, 0xD0C8FFD1, 0x2A362346, 0x5F1BFE85, 0x9E95698B} } ,
1714 { {0xB785F5E8, 0xC3C9281E, 0x63599E58, 0xCA613D3F, 0x1BD7A6D4, 0xEAD0F123, 0xA83AA640, 0x4BEE0D5A},
1715 {0x545CADFA, 0xCFBF20B4, 0x2652762C, 0x7C12F077, 0x469B1FCF, 0x5B4EB875, 0xBA37EFD4, 0x872918CE} } } } ;
1716 static const fp12_t var_expected = { { { {0xD1F3B3D9, 0x5C78BEF4, 0x4BC3D0A8, 0x36878B60, 0x390AF7CA, 0x9E3E2E21, 0x1213CF16, 0x0E8E478E},
1717 {0xB6AD0C33, 0x6E5FC447, 0xF4147016, 0xA1906EA5, 0x6CE0C628, 0x80496948, 0xB75BC3F5, 0xB0A139E7} } ,
1718 { {0xB54FABBD, 0x190D327E, 0xEB6640DC, 0x6F6947ED, 0xD7A003EF, 0xE2B4D4A4, 0x2A7D6FB9, 0x637F1749},
1719 {0xD61EDB01, 0x2E2195E0, 0x29FD9C56, 0x07B3C05B, 0xDE450771, 0xC8A113E7, 0x56A83985, 0x60BE4AE7} } } ,
1720 { { {0x3C2FFE92, 0xC851EDFE, 0xC4FD4015, 0x860F1F91, 0xC454F35E, 0x0DA6815D, 0x0EE738E8, 0x7A49C13A},
1721 {0x7860C856, 0x4C81489A, 0xDB1141E7, 0x36DCCF5F, 0x9539AE79, 0x4D831DEA, 0x8B869A4F, 0x819F9141} } ,
1722 { {0xDAB2998E, 0x6BD884DA, 0xD0B679C1, 0x1336A911, 0xE7D9D779, 0x0516541F, 0xAB5C9D6E, 0x2B2C3C5B},
1723 {0xCCE174D1, 0x1495644C, 0xE8EBB1FA, 0xC3861837, 0x67504ED2, 0x4A4B5296, 0x7A636D54, 0x40739681} } } ,
1724 { { {0x76C366CD, 0x82DDBCEE, 0xA8617376, 0x9A40C878, 0x4A8E8B48, 0x18A8412C, 0xA8684C3C, 0x70163D0C},
1725 {0xBBB57D16, 0x3FC62A9E, 0xD8E781C4, 0x91C63778, 0x44EDB061, 0x42442953, 0x913247B7, 0x4D23A519} } ,
1726 { {0x9D194564, 0x1476925E, 0x1DFED9A5, 0x584ED2CB, 0x2EDCEDEC, 0x4416546B, 0xB3DAFC77, 0x7F940C42},
1727 {0xD58D8F3E, 0x1463851D, 0x61EBD36B, 0x440B8BAE, 0x5A4BEB92, 0x6CE5C215, 0x377C6FCF, 0x90C23886} } } } ;
1729 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1437 a000");
1730 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1438 a001");
1731 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1439 a010");
1732 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1440 a011");
1733 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1441 a100");
1734 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1442 a101");
1735 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1443 a110");
1736 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1444 a111");
1737 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1445 a200");
1738 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1446 a201");
1739 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1447 a210");
1740 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1448 a211");
1743 static const fp12_t var_a = { { { {0x7031A248, 0x2148F895, 0x32C75515, 0x4A780AF3, 0x5F08CC69, 0xE700BDC1, 0x3788A808, 0x177BA6F2},
1744 {0xE2E44F9C, 0xE0DF4A8B, 0x0521C933, 0xC2F084BB, 0x552D7774, 0x46FBF515, 0x325ED3B3, 0x6C0E4370} } ,
1745 { {0x25AAC465, 0x5F4B0577, 0x7CE63230, 0x722B3AF5, 0xE530028E, 0x398F443D, 0xF44B8215, 0x2677AC7B},
1746 {0x9818D4F3, 0x8BD22F2E, 0xD3B4A07F, 0x82560106, 0xFBA76F38, 0xBC2F031C, 0x3BDEC895, 0x774C8CB5} } } ,
1747 { { {0xE02BF210, 0x7F2C3C79, 0xD2844A05, 0x0849BCFE, 0xF9D45132, 0xD73432E2, 0xB64C820F, 0x07526336},
1748 {0x83206ACA, 0xF1C02ABC, 0x98BA2C8B, 0xB5E50275, 0x746DB270, 0xCE345D7B, 0x8ACE24D3, 0x1048BC20} } ,
1749 { {0x4E14BD21, 0xC2B7ADB9, 0xD70AF32E, 0x265B79D6, 0x768263AA, 0xF0EC8701, 0xCFE6E3E5, 0x4235282A},
1750 {0x8E564D74, 0x72701E33, 0xC2B246FC, 0x819EFAEC, 0xEA071FDE, 0xD258BD11, 0xD43ED784, 0x273D7294} } } ,
1751 { { {0xBEB26633, 0xA83C3491, 0x45CC0E17, 0x37338DFD, 0xCE9B4F34, 0xF4FFFF8D, 0x174DC9DC, 0x5C8F28C0},
1752 {0x08C76A8F, 0xB009CF00, 0x8120D94C, 0x84B7DE59, 0xC07E4C66, 0x4F84703F, 0xCF00CFFC, 0x1822F4F3} } ,
1753 { {0x373A107F, 0xF4EDCAC4, 0xC5007658, 0x9B23E4B2, 0x62B80277, 0xA033EBA4, 0xA24C1D81, 0x2F467CF9},
1754 {0xC1223DA5, 0x8987558C, 0x98825F83, 0x78D30402, 0xF5BFF629, 0x176013C5, 0xEE605A34, 0x0DD06A68} } } } ;
1755 static const fp12_t var_b = { { { {0x4C4D99A3, 0xA64C5F49, 0x37C2E7FE, 0x6443C062, 0xCB5018EA, 0xD79F7DE8, 0x44C58DEF, 0x320D11A3},
1756 {0x9E6391BE, 0x23CE8A91, 0x902BD8B8, 0x1D8003AC, 0xC98D7B8E, 0x490F63F5, 0x28579D18, 0x417E9F36} } ,
1757 { {0x4811F4DB, 0xFEDC3982, 0x6EAEFAB9, 0x99497E3D, 0x92B13D51, 0xCDF413F8, 0x13D08D38, 0x3426B5F1},
1758 {0x7553A894, 0xDA155307, 0xFF3F44C1, 0xF87533DC, 0x092109C7, 0x21FAAF45, 0x710A45E8, 0x43218DB9} } } ,
1759 { { {0x7B0D5B84, 0x7DD578D3, 0x230679FF, 0xA589E987, 0x2823880F, 0xF1D460F2, 0xE4BF3E78, 0xB876923F},
1760 {0x4ACC3B39, 0x53FA4EFD, 0x190049A4, 0x35239D96, 0x23BA3048, 0x463EE01D, 0xFF506138, 0x17C47BC1} } ,
1761 { {0x4C13D3F0, 0xE783ED5A, 0xD0A596E8, 0xFB28F3EB, 0x414432AA, 0xFDFFCB46, 0x0BDA2B25, 0x54A6583D},
1762 {0x1117CD7B, 0x6D869C02, 0x2021F504, 0xC7406CA0, 0x0FB36F20, 0x7962FC9B, 0x05CFC2FC, 0x124FB0CE} } } ,
1763 { { {0x8C228A55, 0x3AF2599C, 0xB1243566, 0x881B8911, 0xCF2C9AD1, 0xDCA3E468, 0xDE60A062, 0x0930C102},
1764 {0xD609E5D9, 0x49F8FDB1, 0x186AA763, 0xA7B2C13F, 0x0B781EB5, 0xCCA151CF, 0x3A1893A1, 0x9D48A67C} } ,
1765 { {0xE682B6F5, 0xB83EA978, 0x6A45E1C0, 0x636B7D0A, 0xB0B33009, 0xBFEC6084, 0xB2669E6A, 0x619E605A},
1766 {0xC1CD67B4, 0x4AC856BD, 0xCA03A44F, 0xD5168D51, 0x9756923E, 0x9CFACB12, 0xD1F62AE1, 0x34657F02} } } } ;
1767 static const fp12_t var_expected = { { { {0xBC7F3BEB, 0xC79557DE, 0x6A8A3D13, 0xAEBBCB55, 0x2A58E553, 0xBEA03BAA, 0x7C4E35F8, 0x4988B895},
1768 {0x8147E15A, 0x04ADD51D, 0x954DA1EC, 0xE0708867, 0x1EBAF302, 0x900B590B, 0x5AB670CB, 0xAD8CE2A6} } ,
1769 { {0x6DBCB940, 0x5E273EF9, 0xEB952CEA, 0x0B74B932, 0x77E13FE0, 0x07835836, 0x081C0F4E, 0x5A9E626D},
1770 {0xAB4048EC, 0x66F8F884, 0xFE7C05FA, 0x67B98842, 0xB0E5EF4B, 0xE2C955F6, 0x6CCA3254, 0x005A7BAC} } } ,
1771 { { {0xF90D18F9, 0xFE132B9B, 0x2112E4BD, 0x9AC1F9E5, 0xCE154F8C, 0xCDA83769, 0x5AECE45F, 0x05B556B4},
1772 {0xCDECA603, 0x45BA79B9, 0xB1BA7630, 0xEB08A00B, 0x9827E2B8, 0x14733D98, 0x8A1E860C, 0x280D37E2} } ,
1773 { {0x9A289111, 0xAA3B9B13, 0xA7B08A17, 0x21846DC2, 0xB7C69655, 0xEEEC5247, 0xDBC10F0B, 0x96DB8067},
1774 {0x9F6E1AEF, 0xDFF6BA35, 0xE2D43C00, 0x48DF678C, 0xF9BA8EFF, 0x4BBBB9AC, 0xDA0E9A81, 0x398D2362} } } ,
1775 { { {0x4AD4F088, 0xE32E8E2E, 0xF6F0437D, 0xBF4F170E, 0x9DC7EA05, 0xD1A3E3F6, 0xF5AE6A3F, 0x65BFE9C2},
1776 {0xDED15068, 0xFA02CCB1, 0x998B80AF, 0x2C6A9F98, 0xCBF66B1C, 0x1C25C20E, 0x0919639E, 0xB56B9B70} } ,
1777 { {0x1DBCC774, 0xAD2C743D, 0x2F465819, 0xFE8F61BD, 0x136B3280, 0x60204C29, 0x54B2BBEC, 0x90E4DD54},
1778 {0x82EFA559, 0xD44FAC4A, 0x628603D2, 0x4DE99154, 0x8D168868, 0xB45ADED8, 0xC0568515, 0x4235E96B} } } } ;
1780 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1449 a000");
1781 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1450 a001");
1782 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1451 a010");
1783 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1452 a011");
1784 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1453 a100");
1785 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1454 a101");
1786 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1455 a110");
1787 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1456 a111");
1788 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1457 a200");
1789 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1458 a201");
1790 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1459 a210");
1791 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1460 a211");
1794 static const fp12_t var_a = { { { {0x49C113A9, 0xE2993EF7, 0xDFBDA190, 0xE7DA8CF4, 0xFE206ECE, 0x19750E85, 0x1B3D552A, 0x25301703},
1795 {0xE76F1F54, 0x0D0F5C9D, 0x0C7C582D, 0x160A67C7, 0xC0296BE0, 0x6A089DA9, 0x02F449AB, 0xA8E6A835} } ,
1796 { {0xE17FBE68, 0x78561E19, 0x37875AC8, 0xAD747D46, 0x19FE907A, 0x99558A40, 0xEFC4EF10, 0x5E686607},
1797 {0x8C1C2395, 0x779DC02F, 0x530CC0C5, 0xD6A8D7FD, 0x34DD55BD, 0x19668185, 0x3FDC731C, 0x38F60B5E} } } ,
1798 { { {0x1A46A40A, 0x7DF97A08, 0xD62DA4A0, 0x8C1B01E2, 0x9DE5B051, 0x30351DBE, 0x43BE966E, 0x559E4AD5},
1799 {0x46ACC344, 0xA6F2ECE1, 0xF267D144, 0x5B40C29B, 0x7E6C3CF6, 0xA6C8CB32, 0x3FF9AF4A, 0x387B6B62} } ,
1800 { {0xA35087F8, 0x304AA685, 0x60211727, 0x9F1A5CA3, 0x665325BC, 0x1059BB6D, 0x6B18A7D8, 0x938D983F},
1801 {0x3BDF1B0F, 0xFE4FF762, 0xB506C2E1, 0xA5CF2EF0, 0x226BA75D, 0x716AF203, 0x36925317, 0x217EA07A} } } ,
1802 { { {0x06356254, 0x1573DD01, 0xE68C2C30, 0x2BA422C6, 0x3E91B732, 0xAF53CBF4, 0xBE22401F, 0x27D2400F},
1803 {0x5B141B37, 0x1D0D6E96, 0xF39A039E, 0x3F5EE5AC, 0x2E8FEE12, 0x063C1C7F, 0x9992DB73, 0x9792E844} } ,
1804 { {0x968F9815, 0xE8BCAE9C, 0x0DFEC9E0, 0x02B7C8C3, 0x7EF75D4A, 0xAFF940CA, 0xCF782EE7, 0x48DBCB1F},
1805 {0x100F1CF4, 0xE80DEB93, 0x9C925018, 0xD11FD159, 0x4D3316AB, 0x3AB4317D, 0x9D1EDCD1, 0x07F0B857} } } } ;
1806 static const fp12_t var_b = { { { {0x9A17ADF0, 0xAE48BD29, 0xB9063884, 0xC503D2E1, 0xC7DB45CD, 0x0FA86379, 0xF31925C3, 0x12B616F9},
1807 {0x8ED10D37, 0x7A6C0276, 0x353626A0, 0x8B70BE4D, 0xB774F7D3, 0x1220E0D3, 0xB79EF533, 0x0B7DFE5D} } ,
1808 { {0xBFFF6A73, 0xA8871190, 0x90C40EDC, 0x8C159EA2, 0xF66059D7, 0x00BCA87B, 0x81D280AF, 0x0C4F4EE8},
1809 {0xFCB05D4A, 0x393368AA, 0x834A492E, 0x6EB09A72, 0xEE2B9E33, 0xECF289BD, 0x1DD7BB7C, 0x1C9080D2} } } ,
1810 { { {0x19C1CD68, 0x54460363, 0xF72BCA35, 0xE9E6E25B, 0x243D4F7B, 0xE6A75D1F, 0xCC8B8226, 0x2E02E6B7},
1811 {0xE6B4E832, 0xC5D44B25, 0x0B96C197, 0xF276BCE6, 0xADB1B732, 0x5836A1DC, 0x0251A6E6, 0x243B025C} } ,
1812 { {0xAD65A7D1, 0x765FA8EB, 0x922BF175, 0x3CCED540, 0xB19F2F58, 0x7F904BB7, 0xE98200D7, 0x537974AF},
1813 {0x40671CBE, 0xFD36A9B7, 0x1236F71F, 0x0B1E693A, 0xF0AEF6F3, 0x1A9A7B94, 0x9DAAFDC1, 0x79D6DE6C} } } ,
1814 { { {0x4C0ABAF8, 0x0E18E5D8, 0x9CA04781, 0x72C2F0E4, 0x8FCE69BE, 0xB8304569, 0x2FD1A187, 0x7F01E40D},
1815 {0xF0145C7F, 0x0466B91F, 0x1EAEF18E, 0x77B982F7, 0xF5F780D5, 0x51247653, 0xE2CDB04D, 0x57E00C1A} } ,
1816 { {0xA1D556D2, 0x5D89CBBE, 0xBA545C3C, 0xA390579A, 0x9B8F2944, 0xC1FF7D29, 0xF11F6851, 0x39B8D44D},
1817 {0xA6595800, 0x3AF06E69, 0x48F00DF1, 0x835153BC, 0x8F3359F4, 0x4901ADA0, 0x07794838, 0x2052F4C2} } } } ;
1818 static const fp12_t var_expected = { { { {0xE3D8C199, 0x90E1FC20, 0x98C3DA15, 0xACDE5FD6, 0xC5FBB49C, 0x291D71FF, 0x0E567AED, 0x37E62DFD},
1819 {0x76402C8B, 0x877B5F14, 0x41B27ECD, 0xA17B2614, 0x779E63B3, 0x7C297E7D, 0xBA933EDE, 0xB464A692} } ,
1820 { {0xA17F28DB, 0x20DD2FAA, 0xC84B69A5, 0x398A1BE8, 0x105EEA52, 0x9A1232BC, 0x71976FBF, 0x6AB7B4F0},
1821 {0x88CC80DF, 0xB0D128DA, 0xD65709F3, 0x4559726F, 0x2308F3F1, 0x06590B43, 0x5DB42E99, 0x55868C30} } } ,
1822 { { {0x34087172, 0xD23F7D6B, 0xCD596ED5, 0x7601E43E, 0xC222FFCD, 0x16DC7ADD, 0x104A1895, 0x83A1318D},
1823 {0x2D61AB76, 0x6CC73807, 0xFDFE92DC, 0x4DB77F81, 0x2C1DF429, 0xFEFF6D0F, 0x424B5630, 0x5CB66DBE} } ,
1824 { {0xEE89FB2E, 0xA7BBC5BF, 0x1DD52955, 0xC8D78543, 0xC40FCB5F, 0x9489AAB9, 0x147BCC86, 0x2CF36E2D},
1825 {0x7C4637CD, 0xFB86A119, 0xC73DBA01, 0xB0ED982A, 0x131A9E50, 0x8C056D98, 0xD43D50D8, 0x9B557EE6} } } ,
1826 { { {0x52401D4C, 0x238CC2D9, 0x832C73B1, 0x9E6713AB, 0xCE6020F0, 0x6784115D, 0xEDF3E1A7, 0xA6D4241C},
1827 {0xE8FC431B, 0x22859E04, 0x3DD115E5, 0xA406BC03, 0xD0A4E532, 0x5C003667, 0x3C41AF97, 0x355F559D} } ,
1828 { {0x3864EEE7, 0x46467A5B, 0xC853261D, 0xA648205D, 0x1A86868E, 0x71F8BDF4, 0xC0979739, 0x82949F6D},
1829 {0xB66874F4, 0x22FE59FC, 0xE5825E0A, 0x54712515, 0xDC6670A0, 0x83B5DF1D, 0xA4982509, 0x2843AD19} } } } ;
1831 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1461 a000");
1832 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1462 a001");
1833 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1463 a010");
1834 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1464 a011");
1835 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1465 a100");
1836 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1466 a101");
1837 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1467 a110");
1838 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1468 a111");
1839 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1469 a200");
1840 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1470 a201");
1841 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1471 a210");
1842 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1472 a211");
1845 static const fp12_t var_a = { { { {0x9BF3C96F, 0xE39E9A2B, 0xD1C4C70B, 0x287E0FD3, 0xF2D93BEA, 0x0CA329C2, 0xC517962B, 0x4B2F3D94},
1846 {0x8CE537BC, 0x42624676, 0x40D9BFF4, 0x950BCC2D, 0x265D0DBD, 0x9853824D, 0xFFD3BD87, 0x04BA5775} } ,
1847 { {0x0338F1FA, 0x64380E20, 0x31FA1FDB, 0x88C6A0B8, 0x9DC333A2, 0x4F9E86DD, 0x3F92117D, 0x04E950DD},
1848 {0x975746B7, 0xFAEA6BAD, 0x4B50BB8B, 0x9E251F98, 0xB3E2A981, 0x0084230F, 0x01775CF5, 0x5941B626} } } ,
1849 { { {0x0CA570FE, 0xDDF0BE68, 0xE9B4BE27, 0xC073DDD7, 0xE0DA94EA, 0x6FE2E192, 0xF662460C, 0x22370722},
1850 {0xAB5174ED, 0x841F2723, 0xEEE81A34, 0x5FD1DB4A, 0x789DE396, 0xA291EB6B, 0x018C951A, 0x5A77C06D} } ,
1851 { {0x62539C5F, 0x908D1BFD, 0x9E6E1ADF, 0xEB9356D0, 0x998A7889, 0xA1026A68, 0x3D108071, 0x2C688801},
1852 {0x7A04FFD6, 0x4257F130, 0x44E1EF45, 0x2479BF20, 0x4579DB1C, 0xC8E1A007, 0x344DB942, 0x6CA63E86} } } ,
1853 { { {0x2E4C0071, 0x0004644F, 0x8BA0FF18, 0x3BC9F6C9, 0x3EEA38A5, 0x5D3A17BA, 0x2923C41F, 0x785749E7},
1854 {0x8E211D78, 0xD5155B79, 0xD11AAE39, 0x66F5B554, 0xD8D8A17E, 0x0570EDD1, 0xD0BD7EA0, 0x7501A969} } ,
1855 { {0x9D0551F2, 0xEE4B401A, 0xD5F7A888, 0x4A231648, 0x2B1696E0, 0x5407066B, 0x90EF51AD, 0x104C13B7},
1856 {0xB7D7F8A3, 0x1D091169, 0x5BE2C89C, 0xDE2E262B, 0x2D48C9A9, 0x293EA556, 0x481868D6, 0xA1477ED1} } } } ;
1857 static const fp12_t var_b = { { { {0x42605037, 0x58581195, 0x601CB64E, 0x29BC4475, 0xF6E6975C, 0x6994F582, 0x4807BC87, 0x699CC172},
1858 {0x00A38961, 0x3B193B1B, 0xE63F64E9, 0x84AED6A3, 0x814C4364, 0x456454F1, 0x531EFF88, 0x5654FFD2} } ,
1859 { {0x42BAFD70, 0x83DBC84F, 0x7D5305B2, 0xA59D7886, 0x31DFC7F1, 0xE009EB2E, 0xA350CF3A, 0x2578A803},
1860 {0xB61C827A, 0x9078BF53, 0xB846FAEC, 0x922D16AE, 0x51341113, 0xAA207140, 0xE568C538, 0x40AFEE20} } } ,
1861 { { {0xB0325756, 0xED5F001C, 0x9058E17C, 0x50452648, 0xF36AC08D, 0x1BE2A2DB, 0xF90C3D96, 0x3C90651E},
1862 {0x67CB51E1, 0xBEB369D0, 0x5565F462, 0x812528F8, 0x5BE7C8CE, 0xEAE73109, 0x33B8D8B8, 0x451C547C} } ,
1863 { {0xB9AEAC74, 0x56028F35, 0xBD08BFE4, 0xC47FECD1, 0x98C91358, 0xCE2F7DB5, 0x1DEBE4FD, 0xB5DC5382},
1864 {0xE0F23ADB, 0xA6C1F571, 0x82B538A8, 0x0960F5B2, 0x9BB6EDE2, 0xD47407FD, 0xB3434BD7, 0x912B441D} } } ,
1865 { { {0x07EADEC9, 0xC3797959, 0xC0200355, 0xB3137DD1, 0x16CB790A, 0xF0178694, 0xA580C2AF, 0x674054F6},
1866 {0x2D647C1B, 0x6713FFFD, 0x454CABAC, 0x258700E3, 0x4E2C1D15, 0x7BD8BA11, 0x180A300C, 0x8BC9AB1C} } ,
1867 { {0xA715F359, 0x72C85A17, 0x14E9BACE, 0x49A2EADC, 0x9E067889, 0xAFBC137C, 0x252C8056, 0x938091FC},
1868 {0x3A215AA1, 0x66B649C9, 0x0E11C440, 0xF9A3F177, 0x9EF8859B, 0x3329D2F2, 0x19027F1B, 0x22BA8066} } } } ;
1869 static const fp12_t var_expected = { { { {0xDE5419A6, 0x3BF6ABC0, 0x31E17D5A, 0x523A5449, 0xE9BFD346, 0x76381F45, 0x0D1F52B2, 0xB4CBFF07},
1870 {0x8D88C11D, 0x7D7B8191, 0x271924DD, 0x19BAA2D1, 0xA7A95122, 0xDDB7D73E, 0x52F2BD0F, 0x5B0F5748} } ,
1871 { {0x45F3EF6A, 0xE813D66F, 0xAF4D258D, 0x2E64193E, 0xCFA2FB94, 0x2FA8720B, 0xE2E2E0B8, 0x2A61F8E0},
1872 {0x4D73C931, 0x8B632B01, 0x0397B678, 0x30523647, 0x0516BA95, 0xAAA49450, 0xE6E0222D, 0x99F1A446} } } ,
1873 { { {0xBCD7C854, 0xCB4FBE84, 0x7A0D9FA4, 0x10B90420, 0xD4455578, 0x8BC5846E, 0xEF6E83A2, 0x5EC76C41},
1874 {0x131CC6CE, 0x42D290F4, 0x444E0E97, 0xE0F70443, 0xD485AC64, 0x8D791C74, 0x35456DD3, 0x9F9414E9} } ,
1875 { {0xB9D61438, 0xE7A12181, 0x86FEFB7C, 0x9D019701, 0xDE71022D, 0x73D18BB2, 0x1ADD8946, 0x28313CC1},
1876 {0xF8CB0616, 0xEA2B5CF0, 0xF31F48A6, 0x1AC90831, 0x8D4E3F49, 0xA1F54B99, 0xA77228F1, 0x43BDE3E1} } } ,
1877 { { {0xD40AAA9F, 0xC48F53F6, 0x77492326, 0xDBCBC7FA, 0x01D327FA, 0x51F141E3, 0x8E85AAA6, 0x2584001B},
1878 {0x595964F8, 0x3D3AD1C5, 0x41EF7A9F, 0x796B0997, 0xD32234DE, 0x85E94B77, 0xA8A8D283, 0x46B7B5C3} } ,
1879 { {0x441B454B, 0x61139A32, 0xEAE16357, 0x93C60124, 0xC91D0F69, 0x03C319E7, 0xB61BD204, 0xA3CCA5B3},
1880 {0x8FCD1EA9, 0x84D0D181, 0x957CAD95, 0xC4C06B01, 0x785EC590, 0x61081BDD, 0x20FC0BC8, 0x09EE6075} } } } ;
1882 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 1473 a000");
1883 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 1474 a001");
1884 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 1475 a010");
1885 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 1476 a011");
1886 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 1477 a100");
1887 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 1478 a101");
1888 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 1479 a110");
1889 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 1480 a111");
1890 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 1481 a200");
1891 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 1482 a201");
1892 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 1483 a210");
1893 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 1484 a211");
1896 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1897 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1898 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1899 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1900 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1901 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1902 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1903 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1904 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1905 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1906 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1907 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1908 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1909 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1910 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1911 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1912 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1913 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1914 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1915 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1916 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1917 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1918 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1919 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1920 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1921 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1922 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1923 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1924 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1925 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1926 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1927 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1928 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1929 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1930 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1931 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1933 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1485 a000");
1934 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1486 a001");
1935 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1487 a010");
1936 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1488 a011");
1937 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1489 a100");
1938 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1490 a101");
1939 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1491 a110");
1940 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1492 a111");
1941 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1493 a200");
1942 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1494 a201");
1943 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1495 a210");
1944 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1496 a211");
1947 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1948 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1949 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1950 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1951 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1952 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1953 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1954 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1955 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1956 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1957 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1958 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1959 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1960 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1961 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1962 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1963 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1964 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1965 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1966 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1967 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1968 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1969 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1970 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1971 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1972 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1973 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1974 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1975 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1976 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1977 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1978 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
1979 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1980 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
1981 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1982 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
1984 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1497 a000");
1985 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1498 a001");
1986 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1499 a010");
1987 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1500 a011");
1988 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1501 a100");
1989 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1502 a101");
1990 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1503 a110");
1991 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1504 a111");
1992 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1505 a200");
1993 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1506 a201");
1994 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1507 a210");
1995 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1508 a211");
1998 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1999 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2000 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2001 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2002 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2003 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2004 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2005 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2006 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2007 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2008 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2009 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2010 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2011 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2012 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2013 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2014 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2015 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2016 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2017 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2018 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2019 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2020 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2021 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2022 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2023 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2024 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2025 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2026 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2027 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2028 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2029 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2030 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2031 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2032 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
2033 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2035 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1509 a000");
2036 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1510 a001");
2037 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1511 a010");
2038 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1512 a011");
2039 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1513 a100");
2040 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1514 a101");
2041 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1515 a110");
2042 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1516 a111");
2043 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1517 a200");
2044 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1518 a201");
2045 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1519 a210");
2046 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1520 a211");
2049 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2050 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
2051 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2052 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2053 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2054 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2055 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
2056 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2057 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2058 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2059 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
2060 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2061 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2062 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2063 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2064 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2065 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2066 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2067 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2068 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2069 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2070 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
2071 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2072 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } } } ;
2073 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2074 {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
2075 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2076 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2077 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2078 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2079 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
2080 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2081 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2082 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2083 { {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
2084 {0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2086 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1521 a000");
2087 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1522 a001");
2088 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1523 a010");
2089 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1524 a011");
2090 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1525 a100");
2091 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1526 a101");
2092 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1527 a110");
2093 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1528 a111");
2094 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1529 a200");
2095 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1530 a201");
2096 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1531 a210");
2097 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1532 a211");
2100 static const fp12_t var_a = { { { {0x88FC6AD6, 0xE5946642, 0x9CA5ED5D, 0xDFF3B37A, 0x4D2285CF, 0x7CCE4813, 0x34ED808A, 0x048239AF},
2101 {0xBA0A7944, 0x3E0A2B66, 0xDF695554, 0x380474A1, 0x43326E96, 0x8077C9A5, 0xAA06D61C, 0x6E90B008} } ,
2102 { {0x73D1FF8D, 0xDE38F203, 0xAAE5E07B, 0xFC884255, 0x2BA2A7D1, 0x0C9C2BF7, 0x65B38E49, 0x07DA3158},
2103 {0x53F43021, 0xD584C147, 0x01D32E3B, 0x611F34A1, 0x3F457945, 0x41147718, 0x80EE0724, 0x696FC1C5} } } ,
2104 { { {0xFDE1FBC4, 0x5B7C0ED3, 0x202B282B, 0xB17A89B3, 0xD3281AD6, 0x4202B5DA, 0x8D4A09C3, 0x15C16C6E},
2105 {0x74301A4A, 0x4A0ED760, 0x4BE728CD, 0x82D1A687, 0x21A48727, 0x826A5FD5, 0x911492F5, 0x3769E46C} } ,
2106 { {0xACA00A38, 0xA04F7F69, 0x258C1F09, 0xDE69534E, 0x24662F0A, 0x5EBC8AE3, 0x437263BC, 0x87DD6FED},
2107 {0x6B8291F3, 0xFF6A9279, 0x05540D16, 0xD295F0DF, 0x682756D0, 0x952A3444, 0xD00BE045, 0x80A7B9C7} } } ,
2108 { { {0x6D0E9050, 0x2E434148, 0xA0395BC3, 0xDC9E18F4, 0x3CE5C5B1, 0xCFD2CC97, 0x1A472AB0, 0x28852D49},
2109 {0xC51A8F81, 0x9439480D, 0xB1A1AF0A, 0xCB271F7D, 0xD1C02C35, 0x09BB2761, 0x740E6C32, 0x2E10D388} } ,
2110 { {0x9385AF80, 0xC392A2E4, 0x30CFC475, 0x7E9E9285, 0x74DC368B, 0x3BB0B8E8, 0xA8928324, 0x2D4DCA5D},
2111 {0x4F675C26, 0xEB02A656, 0x16841A38, 0x2613FA63, 0x574BD796, 0xB1488773, 0xF14DB76B, 0x6AD59BB8} } } } ;
2112 static const fp12_t var_b = { { { {0x65FB163F, 0x62D8EF09, 0xBF6C3C76, 0x631FF8C3, 0x6DFFBF39, 0x9EC73600, 0x4102236E, 0xB3E84E44},
2113 {0x14E35DDA, 0x244AC1FC, 0x392AB1D8, 0xDB43170A, 0x3A5B721B, 0x9CD6F8DE, 0xFC42F60D, 0x9C05446B} } ,
2114 { {0x905F07D5, 0x4E7A2511, 0xF23C78CC, 0xA43329B7, 0x034DF3B6, 0x2B0E09D2, 0x3B90EDA3, 0x416A0DBC},
2115 {0x64E6F019, 0xA09C0A62, 0x5E8E44B4, 0x249633C3, 0xF40D0CB5, 0x1D4E5D00, 0x8BFD703D, 0x6D1BB008} } } ,
2116 { { {0xC53FED11, 0x04CCAAA3, 0x564D949A, 0xC1C6DCF6, 0xFDFD1849, 0x48A687E5, 0xABB43700, 0x16C05348},
2117 {0x684A287B, 0x02B39B25, 0x364E3D29, 0x675522D4, 0xF0F78E7D, 0xC92DF9DB, 0x9155BBB2, 0x0D79CDED} } ,
2118 { {0x31E6E168, 0x466BDC44, 0x10FF6EAB, 0x51EE8A74, 0xB6BD4172, 0xA9705D8A, 0x6638A3C2, 0x3AF5C4FD},
2119 {0xB1EBA7AB, 0x283E1579, 0x2EDB16EC, 0x830F634F, 0xD27E32DF, 0x671E1591, 0x05B8EDC0, 0x194C06B9} } } ,
2120 { { {0x7D29A558, 0x18460F1E, 0xDD560A9C, 0x0970CFBF, 0x248EE36F, 0x451CEEEA, 0x0085A1E5, 0x81C1B23A},
2121 {0xEC6B7AEB, 0x34590CC0, 0x79F71481, 0x5EC332D4, 0x83565C58, 0x0CB99800, 0x5BBBF845, 0x3F9C82F9} } ,
2122 { {0xB91A2163, 0xB85AB89F, 0x36A4AFAB, 0x15B1F1FC, 0x78F4671F, 0x49169F5A, 0x0F917645, 0x307C1636},
2123 {0x64B81D92, 0x885AAC28, 0x59EAA250, 0x30AAB2C0, 0x81E3B884, 0x0D20F2E6, 0x88EC46CB, 0x2838A495} } } } ;
2124 static const fp12_t var_expected = { { { {0x852D8932, 0x81AA00EA, 0xB1B1902E, 0x8FE56757, 0x3305504B, 0xD9676E7E, 0x340A3944, 0x0AAD8A2D},
2125 {0x07535005, 0x18ADF31C, 0x7AB682C3, 0x6FD30A38, 0x5CB9862F, 0xDF012D32, 0xEDE2BC37, 0x8C9F0A5E} } ,
2126 { {0x459F2C53, 0x8EAD56A3, 0x8D2146F6, 0x6B66C53E, 0x7C373DD0, 0xDCEE7E90, 0x6A417CCE, 0x8083C25E},
2127 {0x513974A3, 0x33D74096, 0x77BCC8CE, 0x4F9AAD7E, 0x9F1AF645, 0x1F267682, 0x350F7310, 0xB667B07F} } } ,
2128 { { {0x9ACE434E, 0x559DEDE1, 0x9E5572D8, 0x02C5595D, 0x290D8C42, 0xF4BC8A60, 0x21B4AEEB, 0xB914B7E8},
2129 {0x0BE5F1CF, 0x475B3C3B, 0x1598EBA4, 0x1B7C83B3, 0x30ACF8AA, 0xB93C65F9, 0xFFBED742, 0x29F0167E} } ,
2130 { {0x7AB928D0, 0x59E3A325, 0x148CB05E, 0x8C7AC8DA, 0x6DA8ED98, 0xB54C2D58, 0xDD39BFF9, 0x4CE7AAEF},
2131 {0xB996EA48, 0xD72C7CFF, 0xD678F62A, 0x4F868D8F, 0x95A923F1, 0x2E0C1EB2, 0xCA52F285, 0x675BB30E} } } ,
2132 { { {0x52111F93, 0x14EBBBDB, 0x975B306E, 0xE63EF5D5, 0x6C396BF7, 0x86163A18, 0x59E064F4, 0x60D719D1},
2133 {0x3ADB4931, 0x5ECEC4FE, 0x0C2279D0, 0x7F75994A, 0xA24C5992, 0xF861EBCC, 0x58715015, 0xA887EF51} } ,
2134 { {0x3C97C2B8, 0x0A2673F6, 0xCEA2F411, 0x7BFE4D29, 0x4FCA5921, 0xEDFA75F9, 0xD91FE907, 0xB6E552E9},
2135 {0xEAAF3E94, 0x62A7FA2D, 0xBC9977E8, 0xF56947A2, 0xD5681F11, 0xA427948C, 0x686170A0, 0x429CF723} } } } ;
2137 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1533 a000");
2138 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1534 a001");
2139 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1535 a010");
2140 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1536 a011");
2141 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1537 a100");
2142 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1538 a101");
2143 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1539 a110");
2144 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1540 a111");
2145 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1541 a200");
2146 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1542 a201");
2147 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1543 a210");
2148 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1544 a211");
2151 static const fp12_t var_a = { { { {0xD023B247, 0xA80A1963, 0x00F2B157, 0xCCFC1AD2, 0xCF454482, 0x281A0BEF, 0x28B3B2B1, 0x0E5D7629},
2152 {0x08DABACD, 0xC3E31DF3, 0x2BD03129, 0x86D68AEE, 0xDC050077, 0xF10E36D7, 0x021F9CEF, 0x783B0AFE} } ,
2153 { {0xF1030735, 0xA8190263, 0x60CE00E8, 0xC926B246, 0x85581153, 0x91A126A9, 0x1F112D1A, 0x26206A63},
2154 {0x7FE277EE, 0xCA422A37, 0x328EA8CC, 0xE05E7EEA, 0x9577DCCB, 0x9B00F90F, 0x7D206B86, 0x2A3C7E11} } } ,
2155 { { {0x25732C48, 0xBCCEE652, 0xE7227081, 0xD10921A9, 0xE571E471, 0x7A93CEC8, 0xCBD178EE, 0x068165D9},
2156 {0x60A82426, 0xB9C5484F, 0xCA4CBA70, 0x82B90E44, 0x3A644594, 0x076EB494, 0xAE608D9B, 0x8EBDD0B1} } ,
2157 { {0x41D065FE, 0x21AF8F7A, 0xB6DBB0B9, 0x376D6C40, 0xC68137CA, 0x0739AB77, 0x3E04BD6B, 0x6532C176},
2158 {0xD128DA4D, 0xF4C135AB, 0xB638674B, 0x6E4E7D28, 0x4BC934D8, 0x958FB57B, 0xCA8B3EE5, 0x1F9E3F49} } } ,
2159 { { {0xA9095750, 0x5B49930A, 0x6211C69A, 0x06D8BEDE, 0xF638876B, 0xBB2361A1, 0x10A2EF0A, 0x238B56D8},
2160 {0xBF3FCBAE, 0x1CDFCBDC, 0x52F93EA2, 0x2ECEF7BC, 0xD90AA9CB, 0xD197BC62, 0x463245F4, 0x818B559B} } ,
2161 { {0x12020F3A, 0x28462F48, 0x5F5EA0FB, 0x25264B0D, 0x221C46F0, 0x33E761EE, 0x14AAB3B8, 0x3348C70B},
2162 {0x986DB144, 0x1292A948, 0x8F31C1A1, 0x69558B35, 0x8E705334, 0x917E1C08, 0x575D3203, 0x23174CE5} } } } ;
2163 static const fp12_t var_b = { { { {0xC3D08849, 0x8D776A7E, 0x9829FD31, 0x330EAB01, 0xEA10FB71, 0x7084EFE0, 0xA0A0901B, 0xAFEFA4A8},
2164 {0x8CB1BF3B, 0xF5C52550, 0xED9E2B29, 0x51697275, 0xA2448BD7, 0xD851D3CC, 0x739AA6DA, 0x9BBDE04C} } ,
2165 { {0x6942D959, 0xC93EFFA5, 0xB0A48D1C, 0x4A65E8AF, 0x2E052AD0, 0xA33A6319, 0x0917E324, 0x2026A63D},
2166 {0xC59D661D, 0x2896999F, 0x35BB442F, 0xE5D2E47E, 0x96CC85B9, 0x04868059, 0xCE128967, 0x65B13DA4} } } ,
2167 { { {0x17B3E648, 0x5B9C559F, 0x0A1CD1D9, 0xFAAE87F3, 0x02BF33DF, 0x2E97EC01, 0xA3FB660B, 0x7C4323D8},
2168 {0x30E33F2C, 0x4BB440B6, 0xC1BA8F5C, 0xB2E39C63, 0x7CF01391, 0xA3C536AF, 0xDD132517, 0x23305469} } ,
2169 { {0xD443DFA4, 0x07D90125, 0x4E1097B7, 0xA50A41AA, 0xCBB7A19B, 0xD0253BB3, 0x84D038CD, 0xA0278E26},
2170 {0x3817CB08, 0x41DF6D54, 0x820D7CC8, 0x5E99DE76, 0xFCBCA506, 0x89C12BFB, 0xD5A439CF, 0x459C496A} } } ,
2171 { { {0x6F7022B5, 0xCDEBE45F, 0xB43477A0, 0x377855CC, 0x79C31501, 0x7640265A, 0x013461E6, 0x8E992845},
2172 {0x128EB0C5, 0x278814E7, 0xF77D08BF, 0x1B9AD9EC, 0x4F818CEF, 0xBB8060A3, 0x2C8D0ECF, 0x61835D68} } ,
2173 { {0x33D07A96, 0xEEF011DB, 0x0DEFD51B, 0xB3FBD844, 0x9591E0AF, 0x54DEB343, 0x2E75D21A, 0x155C5CE5},
2174 {0x8042A143, 0x63A80EDC, 0x185A73EC, 0xD4FDD28D, 0xA2E4F8A7, 0x9B4FCB3F, 0xD5579EED, 0x395543E0} } } } ;
2175 static const fp12_t var_expected = { { { {0x6E7F5E99, 0x19813896, 0x3D40936D, 0xACFF1C71, 0x3916D2C6, 0xB2F5787A, 0xC831FEBE, 0x18817042},
2176 {0xDE55302D, 0xCD0C8253, 0x12A9E546, 0x487EC519, 0x8DA2FE55, 0x141CBF76, 0xCEA3D23E, 0x9690C973} } ,
2177 { {0x87C02DDC, 0xDEDA02BE, 0xB02973CB, 0x7EC0C996, 0x5752E683, 0xEE66C390, 0x15F949F5, 0x05F9C426},
2178 {0x1C71466C, 0xA09A1A49, 0xD14B43E4, 0x0D9D470C, 0x528DE0C7, 0x91DAD521, 0xEF2CBE48, 0x7E9EDF2E} } } ,
2179 { { {0x6FEB7A9B, 0x60211A64, 0xB17D7DEF, 0xE96C4657, 0x36953A46, 0x475C3F33, 0x67F4EF0C, 0x4451E0C3},
2180 {0x2FC4E4FA, 0x6E110799, 0x08922B14, 0xCFD571E1, 0xBD743202, 0x63A97DE4, 0xD14D6883, 0x6B8D7C47} } ,
2181 { {0xCFB8BAF5, 0x18C51805, 0x3D42F849, 0xA574D737, 0x4EAC1FE3, 0x3274CC2F, 0xF95360C6, 0x7F1ED211},
2182 {0xFB3D43E0, 0xB1D05208, 0x08A2C9CA, 0x22C64B53, 0xA2EF1987, 0x072EE5EA, 0x3505E13F, 0x941594A1} } } ,
2183 { { {0x9BC56936, 0x8C4C385C, 0x82552E40, 0xE27215B2, 0xD057FC1E, 0x404397B2, 0x4F8D694D, 0x4F05CD55},
2184 {0xACB11AE9, 0xF557B6F5, 0x5B7C35E2, 0x13341DCF, 0x89891CDC, 0x16175BBF, 0x19A53725, 0x2007F833} } ,
2185 { {0xDE3194A4, 0x39561D6C, 0x516ECBDF, 0x712A72C9, 0x8C8A6640, 0xDF08AEAA, 0xE634E19D, 0x1DEC6A25},
2186 {0x7A57449C, 0xADD9241D, 0x4B4F2CFB, 0xA7696549, 0x3F6DE441, 0xF18EAD34, 0xC2246F3E, 0xA3D5A7C6} } } } ;
2188 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1545 a000");
2189 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1546 a001");
2190 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1547 a010");
2191 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1548 a011");
2192 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1549 a100");
2193 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1550 a101");
2194 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1551 a110");
2195 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1552 a111");
2196 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1553 a200");
2197 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1554 a201");
2198 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1555 a210");
2199 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1556 a211");
2202 static const fp12_t var_a = { { { {0x34F1635C, 0xEACE8E4E, 0xBE7BCAA5, 0xB099D10E, 0x38D06872, 0xD0E89157, 0x619FEB80, 0x2C35066D},
2203 {0x9A3F9793, 0x91C348F1, 0xB7CDAA7B, 0x53ED208C, 0x03FEB9BC, 0xA77487D5, 0x0769D566, 0x9D1BA85B} } ,
2204 { {0x776C9291, 0x83FAD93D, 0x6B8591E3, 0x8A326752, 0xC21A4759, 0xA781FCA8, 0xAF916D49, 0xADB85474},
2205 {0x04D70C59, 0x9505A829, 0x2023638B, 0x132331C5, 0x73D7B683, 0xBF96D53A, 0x7688AADC, 0x89E2174A} } } ,
2206 { { {0xCD713777, 0xBBD29A01, 0x4F2DD530, 0x2EC73470, 0x26AB7B8F, 0xC5DCEBA4, 0x6D87D638, 0x9D9D98E8},
2207 {0x3059944C, 0x908CD6FE, 0x2943ED9F, 0x21425309, 0x8101377E, 0xF0F621C3, 0x187E5A51, 0x1F210F35} } ,
2208 { {0xE1B9BA97, 0xD10AA1D7, 0x10FF5F9A, 0xB6AE57DF, 0x3FB9E334, 0x5C6B0B24, 0xEFCB0BB1, 0x84EB4661},
2209 {0x690741D5, 0xE2D254B0, 0x19A9F9D5, 0xB80B050A, 0xACF26183, 0x8A9BE8A2, 0xE0CA867B, 0x09E71E80} } } ,
2210 { { {0xA2824775, 0x47A883AA, 0x91B97A1B, 0x793845F0, 0x2B2E3E4B, 0xDD4CF92A, 0xCB29605A, 0x2B9E3907},
2211 {0x3D105DBC, 0x2CADAA32, 0x752B9292, 0x4F018BC1, 0xB0BACD13, 0x1DC16762, 0x0517374C, 0x2F80CF0D} } ,
2212 { {0x3C5FB862, 0xDE121A17, 0xF89EDF72, 0x133CB94F, 0x4774FA42, 0xF85E4EC1, 0xD63AF242, 0x9B35D564},
2213 {0x1633CB0E, 0x516C68B3, 0x2CD4485E, 0x8DE273AE, 0x37EFCD4E, 0x818A3D7C, 0xBB62D4F4, 0x00F14976} } } } ;
2214 static const fp12_t var_b = { { { {0x1C0817AF, 0x97245902, 0xAAC4215B, 0x5AA96862, 0x2F475B99, 0x9F4DCADA, 0x24B83ED2, 0x1D46B2CA},
2215 {0x286EB532, 0x6E9347FF, 0xC2879147, 0xA4976E80, 0x79ECD18A, 0xB7F0D332, 0x77F20689, 0x15E9B9EE} } ,
2216 { {0xEF2AB0F0, 0xB33994A0, 0x4C6388EB, 0x68187832, 0xC283ED84, 0x02A3A323, 0x0BCAE605, 0x3A08CB71},
2217 {0x36E60D48, 0xE9AC908A, 0x2A2E271A, 0x80FA9441, 0xA3E0F8A9, 0x24B2AB54, 0x2E4777CE, 0x2D79D171} } } ,
2218 { { {0x400E86E1, 0xB451985E, 0xEEAE7EDF, 0x84480A46, 0xC815C938, 0x98779F54, 0xE039CE83, 0x01D48E01},
2219 {0x59506AF7, 0x5E516776, 0x390D03B1, 0xE875826A, 0xC3ED7AA6, 0x4607A7B6, 0x1643B243, 0x19D06499} } ,
2220 { {0x623F9658, 0x58CA66E1, 0x347EB4F9, 0x80059B03, 0x9833612B, 0x03627756, 0x38599694, 0xA9182E75},
2221 {0xD1FCB10D, 0xB24D46A0, 0x64914880, 0x4774D788, 0x85C53440, 0xFFA7D803, 0xA28609D9, 0x1B84D5B2} } } ,
2222 { { {0x9CA69531, 0xA2193F42, 0x04EC9A37, 0xFA0C09DA, 0xD656944E, 0x43C7F9E1, 0x672367E1, 0x4D1D2752},
2223 {0x39684B43, 0x039D9D11, 0x032508ED, 0xE3107B78, 0x76A93D9D, 0x51EA68D5, 0x89AFB745, 0x836D5ED2} } ,
2224 { {0xFD126828, 0xD333D38A, 0xD855CA4A, 0x2049D5FF, 0xB2E3D5E4, 0x83AA853E, 0x03BC1E00, 0x3060B0F4},
2225 {0x504EF5CF, 0xB693167C, 0x05FE171F, 0xA9869D01, 0xC4112442, 0x9CC2B164, 0xBFBE24C2, 0x13EB81BF} } } } ;
2226 static const fp12_t var_expected = { { { {0x18E94BAD, 0x53AA354C, 0x13B7A94A, 0x55F068AC, 0x09890CD9, 0x319AC67D, 0x3CE7ACAE, 0x0EEE53A3},
2227 {0x71D0E261, 0x233000F2, 0xF5461934, 0xAF55B20B, 0x8A11E831, 0xEF83B4A2, 0x8F77CEDC, 0x8731EE6C} } ,
2228 { {0x8841E1A1, 0xD0C1449C, 0x1F2208F7, 0x2219EF20, 0xFF9659D5, 0xA4DE5984, 0xA3C68744, 0x73AF8903},
2229 {0xCDF0FF11, 0xAB59179E, 0xF5F53C70, 0x92289D83, 0xCFF6BDD9, 0x9AE429E5, 0x4841330E, 0x5C6845D9} } } ,
2230 { { {0x8D62B096, 0x078101A3, 0x607F5651, 0xAA7F2A29, 0x5E95B256, 0x2D654C4F, 0x8D4E07B5, 0x9BC90AE6},
2231 {0xD7092955, 0x323B6F87, 0xF036E9EE, 0x38CCD09E, 0xBD13BCD7, 0xAAEE7A0C, 0x023AA80E, 0x0550AA9C} } ,
2232 { {0xE1A658DA, 0x772EC4A7, 0xB0F889E8, 0x49BA697C, 0xFB690BBE, 0x5468F038, 0xF7905146, 0x95E6B6AE},
2233 {0xF936C563, 0x2F7397C0, 0x8990909C, 0x83A7DA22, 0x7B0FB6F8, 0x86546D0A, 0x7E6358CA, 0xA875E790} } } ,
2234 { { {0x6807E6DF, 0xA47DCE19, 0x6144BF2A, 0x923DE8B7, 0xA8BA33B1, 0x94E55BB3, 0xA424D4A2, 0x9894B077},
2235 {0x65D44714, 0x27FE96D2, 0x467E68EC, 0x7F02BCEA, 0x8DF4192A, 0xC7375AF8, 0xBB865C2F, 0x66270EFC} } ,
2236 { {0x3F4D503A, 0x0ADE468C, 0x20491528, 0xF2F2E350, 0x9491245D, 0x74B3C982, 0xD27ED442, 0x6AD52470},
2237 {0x281109DA, 0x99C7DBE8, 0xFB4E1085, 0xF76D834D, 0xC7C132C0, 0xE027E882, 0x3BC38C5A, 0xA7196679} } } } ;
2239 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1557 a000");
2240 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1558 a001");
2241 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1559 a010");
2242 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1560 a011");
2243 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1561 a100");
2244 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1562 a101");
2245 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1563 a110");
2246 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1564 a111");
2247 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1565 a200");
2248 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1566 a201");
2249 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1567 a210");
2250 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1568 a211");
2253 static const fp12_t var_a = { { { {0x732C0E7D, 0x6DF0CA6F, 0x9554C4AC, 0x4A0B11A8, 0x488D9781, 0x34DD405F, 0xA027CFEC, 0x1BBF63BF},
2254 {0x2E3B253E, 0x66D0F973, 0x45ECB5B0, 0x5DE18E03, 0x7A9E268B, 0x61E36AA7, 0x7A5276D6, 0x9CBD5EAC} } ,
2255 { {0x29706668, 0x2F09E725, 0x5F846662, 0x11AD1829, 0xF7074281, 0x096F9C93, 0x15BA98BF, 0x171C22CE},
2256 {0x7ABC294E, 0xF959C51C, 0x09A42B9B, 0x817EF516, 0x9CAE9D1D, 0x7D1E6905, 0x6D261DA1, 0x1861C5DA} } } ,
2257 { { {0x8E004DB0, 0x1B2AFE1E, 0x9DD4F103, 0x4E206622, 0x5AD9F7C5, 0xF1BDA065, 0x7566DCB5, 0x6DEDDCC2},
2258 {0xA322BB81, 0x8FE9A8A4, 0x2A34FF6F, 0x1F64C8E2, 0xB8DF3319, 0xFD9F492A, 0x8FBA7798, 0xAA807954} } ,
2259 { {0x4D754FC3, 0x72015E40, 0xF3D78515, 0x1B7F27FC, 0x4F28AC6A, 0x1D865DE3, 0x150FA22C, 0xA6CDE397},
2260 {0x93411ACE, 0x8865BDB7, 0x1A865039, 0x5D651F23, 0xF994CC28, 0x36B8AEE2, 0x93E789F8, 0x420AE779} } } ,
2261 { { {0x55ABF468, 0xB54F90B3, 0x451410B5, 0xD09B99B9, 0xF38C8DA9, 0x00F27D64, 0x8CD53241, 0x8B0BB6E0},
2262 {0x9B1F8D06, 0x869C0D91, 0x0509BF7B, 0xDC07ABF9, 0xC3322624, 0xB2D112F2, 0x31CBDDAA, 0x3D26B21D} } ,
2263 { {0xD2949853, 0xA5F783B2, 0xBA52AFE2, 0x06912657, 0xA3E0C472, 0x49AA001D, 0xAD6AE70C, 0x253A5822},
2264 {0x27BBA09C, 0x68B695FE, 0xDC2DAA20, 0x40B21111, 0xC09C6CDA, 0x4537481E, 0x9B5CA3BA, 0x094B6F52} } } } ;
2265 static const fp12_t var_b = { { { {0xCDDDA785, 0x431F913E, 0xE177ABA1, 0x843F9B8C, 0xA72AFEBB, 0xEE84B6A3, 0x4E3F4E88, 0x03AC8E6A},
2266 {0x448CA19D, 0x520A8980, 0xA496213F, 0x83763974, 0x2C93FE24, 0xFFAD38E2, 0x883A1D83, 0x0F20A5D5} } ,
2267 { {0xBC6973FA, 0xD0FB8CCC, 0x08B23F60, 0x88268271, 0x86FDF6C0, 0x1719B8BB, 0x4351D27F, 0x2356B7D8},
2268 {0xA0543FDD, 0xA0245A00, 0x786B4548, 0xF1AB3FF8, 0xD887D40D, 0x2F80D7E7, 0x2CF65078, 0xB30D42CA} } } ,
2269 { { {0x884AC822, 0xCB367751, 0x1577F7CA, 0x6B992C2C, 0x5BD68792, 0x35EAB6A0, 0x22DFD812, 0x4CF88FEA},
2270 {0x053E7FFA, 0xF91F703D, 0x33C72B3C, 0xDD35E682, 0xD9D5ABE6, 0x6D0E467A, 0x3CF0FAC9, 0x6A7AA84B} } ,
2271 { {0x9B9011FF, 0xF8FD28C6, 0x84CAEB30, 0xA04FE1C2, 0xDCECB250, 0x037845F8, 0x40B85FEE, 0x14AD9BCC},
2272 {0xA2B4CFA8, 0x3B4E372D, 0x6ED760AC, 0x127B173B, 0x81ED4F3F, 0x861F3832, 0x6D5ACFD4, 0x16D7EF38} } } ,
2273 { { {0xC4F32664, 0x58BE28C3, 0x8DEEBDFD, 0x144F3065, 0xFA73B8CC, 0x6C3316F9, 0xF2281C78, 0x7EE12797},
2274 {0x83851D4A, 0x888CA33D, 0x2F4DAF27, 0x8AB1E5A7, 0x0C95640B, 0x8C706038, 0x740FD6E2, 0x20DCF320} } ,
2275 { {0xB1F5CABA, 0x2A780260, 0xD6CF392E, 0xDE33F53F, 0x92DCA5B0, 0xA20A16C8, 0x8CCD1023, 0x13923D0A},
2276 {0xF5DA065F, 0x40424ED4, 0xBA24349B, 0x7E7F300E, 0xF89BAF22, 0xCE244F53, 0x4701C7C9, 0x322E83F0} } } } ;
2277 static const fp12_t var_expected = { { { {0xA54E66F8, 0x2AD13930, 0xB3DD190B, 0xC5CB761B, 0xA16298C5, 0x465889BB, 0x51E88163, 0x1812D555},
2278 {0xE9AE83A1, 0x14C66FF2, 0xA1569471, 0xDA6B548E, 0x4E0A2866, 0x623631C5, 0xF2185952, 0x8D9CB8D6} } ,
2279 { {0xCF332709, 0x5CFCE409, 0x2B4A0648, 0x9C984259, 0xC3EBD575, 0xEDB64043, 0x1287A268, 0xADD909B8},
2280 {0x3C941E0C, 0x5823F4CD, 0x65B0C59A, 0xA2E561BE, 0x180952C4, 0x48FDED89, 0x804EA952, 0x1F6821D2} } } ,
2281 { { {0x05B5858E, 0x4FF486CD, 0x885CF938, 0xE28739F6, 0xFF037032, 0xBBD2E9C4, 0x528704A3, 0x20F54CD8},
2282 {0x9DE43B87, 0x96CA3867, 0xF66DD432, 0x422EE25F, 0xDF098732, 0x909102AF, 0x52C97CCF, 0x4005D109} } ,
2283 { {0xB1E53DC4, 0x79043579, 0x6F0C99E4, 0x7B2F463A, 0x723BFA19, 0x1A0E17EA, 0xD457423E, 0x922047CA},
2284 {0xF08C4B26, 0x4D178689, 0xABAEEF8D, 0x4AEA07E7, 0x77A77CE9, 0xB09976B0, 0x268CBA23, 0x2B32F841} } } ,
2285 { { {0x90B8CE04, 0x5C9167EF, 0xB72552B8, 0xBC4C6953, 0xF918D4DD, 0x94BF666A, 0x9AAD15C8, 0x0C2A8F48},
2286 {0x179A6FBC, 0xFE0F6A54, 0xD5BC1053, 0x5155C651, 0xB69CC219, 0x2660B2BA, 0xBDBC06C8, 0x1C49BEFC} } ,
2287 { {0x209ECD99, 0x7B7F8152, 0xE38376B4, 0x285D3117, 0x11041EC1, 0xA79FE955, 0x209DD6E8, 0x11A81B18},
2288 {0x940DCED8, 0x2762D0DA, 0xF68154CC, 0xD5448DA3, 0x1BE3476C, 0x72735536, 0x9479B819, 0x91308A24} } } } ;
2290 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1569 a000");
2291 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1570 a001");
2292 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1571 a010");
2293 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1572 a011");
2294 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1573 a100");
2295 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1574 a101");
2296 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1575 a110");
2297 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1576 a111");
2298 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1577 a200");
2299 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1578 a201");
2300 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1579 a210");
2301 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1580 a211");
2304 static const fp12_t var_a = { { { {0x4DDDC7C3, 0xF0BDB62C, 0x45CEC3A4, 0x5AD27E89, 0xC088EA48, 0x15DA7DED, 0xA401A4DE, 0x9CEF31C8},
2305 {0x870CEDD6, 0x0471ED27, 0x95F587A4, 0x678BE15B, 0x01ABADBE, 0xDFD5976E, 0x19893EC0, 0x35EEF261} } ,
2306 { {0xC6866B0A, 0x6BC4037D, 0xFD0C5CF9, 0x1EC7CD41, 0xE39BB631, 0x777CAAB4, 0x0F300EA0, 0x23EF1B2E},
2307 {0x036F1AC8, 0xB6C4AEA5, 0x8442DC00, 0xFD0B6D9B, 0x2414FBC6, 0x8FA39B77, 0x61B7A528, 0x5149B6B8} } } ,
2308 { { {0x28076292, 0x9C8388A7, 0x904A364A, 0xF1F5EB1E, 0x42E823A3, 0xBE79BC07, 0xA104203A, 0x35C62EB2},
2309 {0x16F8C821, 0x77B4ECF2, 0xB8512CF7, 0x2746E9E7, 0x4AC00694, 0xF2E39AD5, 0x9484F1FD, 0x35F55C0F} } ,
2310 { {0x445A63CC, 0xC37187ED, 0x1F8802C2, 0x276F0AC3, 0xB72AEE56, 0x0BFC8580, 0x7153651D, 0x8ADD5243},
2311 {0xD2C03A68, 0xA64E79AE, 0x1F5BC4CB, 0x4465CB7F, 0x99884B06, 0x53B338F2, 0x259E67EC, 0x000EA611} } } ,
2312 { { {0x814A2288, 0x644F6EFF, 0x3F33B1C1, 0xCA42B066, 0x0F20E196, 0xE3B4D69B, 0x111BBA1D, 0x03885159},
2313 {0xC1F225AB, 0xE59DF391, 0x3D86D801, 0xCDB0D23E, 0xCD9A7EE1, 0x43246324, 0x4A1A512F, 0x98481700} } ,
2314 { {0x92DA35A7, 0x3B33C47C, 0x657B6393, 0xC015198C, 0xF69C9BD5, 0xE69B4DD3, 0x599F6E09, 0x92BAAC4C},
2315 {0xEEA11620, 0x16B9B206, 0x30307230, 0x541C99B6, 0x3C495276, 0x994FAD4D, 0xF9C7B204, 0xB5789A7F} } } } ;
2316 static const fp12_t var_b = { { { {0xC07B5B2A, 0x4DA3515D, 0x7A9C90AA, 0xAAA72D0F, 0x0F117ECA, 0x10507BEA, 0x9CE9D333, 0x5074564C},
2317 {0xC8700C8E, 0x5A7E4612, 0xD19CB38F, 0xE631C95B, 0x7546AAF7, 0x63441BDB, 0x261B0B8C, 0x778D441B} } ,
2318 { {0x19C6B359, 0xDBDFAEE5, 0xF75465B7, 0xB328C870, 0x891AEEB5, 0x8F528A84, 0x706F576D, 0x812714AD},
2319 {0x9BB3417A, 0x11E702D1, 0x63622BC3, 0xBC5982FA, 0xF8EBD92A, 0xF397523B, 0xC6FFFDE8, 0x8ACD8B3F} } } ,
2320 { { {0x283E0C03, 0x655F0D7D, 0xED66B1AA, 0x215E4158, 0x2F02C5A9, 0xD8D0E935, 0x2AA7343A, 0x35D2D54B},
2321 {0x933EDDA5, 0xDD1797CB, 0x99BA9F1F, 0x3C6AB59E, 0x2C09D788, 0xDE74E06F, 0xCF2A2A12, 0x1A67FB04} } ,
2322 { {0x402F35B0, 0xAA72DCE0, 0xFDB6C8F6, 0xC799D8BE, 0x57DF8EC8, 0x8FFA6A6F, 0x5E13ACDE, 0xA10906B1},
2323 {0xA218C25D, 0x9D1B3A52, 0xB4292498, 0x589226F1, 0x0924F99B, 0xE68FF18E, 0x7401FE09, 0x8067015D} } } ,
2324 { { {0x469372CD, 0xAF19AA3B, 0x3B77008A, 0x308D70F5, 0x51A3E6C4, 0xB6E76EC6, 0x223BD0D4, 0x27A6CDE7},
2325 {0x4E592123, 0x75AF1D23, 0x67A83BA7, 0xBC22E272, 0x7E84E028, 0x300DE82D, 0x6C9B7DFC, 0x3D67DEB2} } ,
2326 { {0x6F7CD39E, 0xB00A64CB, 0x9E775236, 0xC3DE8F5D, 0x493B3BF1, 0x6D52864F, 0xCBCEE1FD, 0x398A03B9},
2327 {0x0A704BD2, 0xC46037A9, 0x7781A6F2, 0xDB1ADD2B, 0x0373B6A9, 0xFDDE9AAD, 0x6BBE40E2, 0x283D0E6E} } } } ;
2328 static const fp12_t var_expected = { { { {0x8D626C99, 0xA31A64CE, 0xCB3232FA, 0xB02B5179, 0xB1776B7D, 0x058A0203, 0x0717D1AB, 0x4C7ADB7C},
2329 {0x20C915E3, 0xA8E230C6, 0x98D0B35B, 0x946BC4A0, 0xE0478C7B, 0x77F1D7FD, 0x338D0F5D, 0x78754D08} } ,
2330 { {0x0EEBEC4C, 0x8ED2DE4A, 0xDA2FD688, 0x7EB0B171, 0xAE635130, 0xE38A7C9B, 0xDEDF935B, 0x5CDBA542},
2331 {0xC9E80DE9, 0xA3CC3584, 0xF5588F84, 0x53C39741, 0x7F0BAC51, 0x976CA5A6, 0xDAD68368, 0x808FCA3A} } } ,
2332 { { {0x61F58B2A, 0x361304DB, 0x775B63E7, 0xE3A95666, 0x67C7E7AF, 0xE1092F3D, 0xB67BC828, 0xBA06F829},
2333 {0x83B9EA7C, 0x9A9D5526, 0x1E968DD7, 0xEADC3449, 0x1EB62F0B, 0x146EBA66, 0xC55AC7EB, 0x1B8D610A} } ,
2334 { {0x665762B7, 0x17ED34BE, 0xF6491913, 0x72E6DEA4, 0xB32DE942, 0x7762777C, 0x535E9467, 0xA3E7EA54},
2335 {0x92D3ACA6, 0x0821C90D, 0x3FAA7F7A, 0xFEE5512E, 0xE445DB1F, 0x6883A3CF, 0xF1BB460B, 0x39BB4375} } } ,
2336 { { {0x9CE2E456, 0xB4244E75, 0xD834907D, 0xACC6EC11, 0x115F8487, 0x282DC440, 0x2EFEC572, 0x95F52234},
2337 {0x73990488, 0x6FEED66E, 0xD5DE9C5A, 0x118DEFCB, 0x4F159EB9, 0x13167AF7, 0xDD7ED333, 0x5AE0384D} } ,
2338 { {0x235D6209, 0x8B295FB1, 0xC704115C, 0xFC368A2E, 0xAD615FE3, 0x7948C784, 0x8DD08C0C, 0x5930A892},
2339 {0xE430CA4E, 0x52597A5D, 0xB8AECB3D, 0x7901BC8A, 0x38D59BCC, 0x9B7112A0, 0x8E097121, 0x8D3B8C11} } } } ;
2341 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1581 a000");
2342 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1582 a001");
2343 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1583 a010");
2344 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1584 a011");
2345 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1585 a100");
2346 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1586 a101");
2347 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1587 a110");
2348 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1588 a111");
2349 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1589 a200");
2350 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1590 a201");
2351 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1591 a210");
2352 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1592 a211");
2355 static const fp12_t var_a = { { { {0x824BF11D, 0x33C6E176, 0x8E7A44F5, 0xA0AFEC85, 0x5F0EB19E, 0x320271C3, 0x2D231454, 0x70FBFB57},
2356 {0x6233A862, 0x2A4C0E3C, 0x65F354BE, 0x2E049A24, 0x5627546A, 0xE1069044, 0xA6FA782B, 0x28BAD9B3} } ,
2357 { {0x0E68A300, 0xF7EAC066, 0x03A1F5F0, 0x71F1491E, 0x46925EC6, 0xB2FC9C26, 0x5FD9E001, 0x91160485},
2358 {0xFEB2C2B4, 0x8B2DBC60, 0x7B80DF7C, 0x3482E45A, 0x7798925C, 0xB9B07742, 0xD2FA4A75, 0x3B441DE6} } } ,
2359 { { {0x1F06C163, 0xFDAB8B94, 0x8FF0C8CC, 0xFE8A9C37, 0x45C7B365, 0xE254A883, 0x3373F136, 0x29E3D088},
2360 {0x72BE8BA2, 0x05C144D4, 0x0FEDD1A2, 0x349779CA, 0xF42DDF01, 0x84FDE067, 0xA507741E, 0xAF264B12} } ,
2361 { {0x23D4BAE0, 0x858C2A80, 0x7FFA1DC7, 0x853D5F1D, 0xE27A2250, 0xEA1EFF3F, 0x813FB2A7, 0x374C485E},
2362 {0xE651AE20, 0xFBC4DCCA, 0xEA01E2B7, 0x2C37D80B, 0x4C21B10C, 0xA1D4F8EA, 0x53AC0663, 0x020F8896} } } ,
2363 { { {0x0CEDBD5F, 0x11C057B8, 0xBACFC2E8, 0x60E4F092, 0x399DB7D5, 0x3B9B0162, 0xDC0D8012, 0x82439798},
2364 {0xE617F638, 0x0F6004EE, 0x8F8B1594, 0x968C75C2, 0x3E2FC170, 0xA0B38282, 0x11356EFD, 0x1B61B62E} } ,
2365 { {0x3EA86F0B, 0x624428DA, 0xB95A379A, 0x00FB1218, 0x0125BA5D, 0x8F461C41, 0x9A7E5624, 0xA15BE7F1},
2366 {0x663EB026, 0x1E2C220D, 0x42A51A4B, 0x638882DC, 0xC367B204, 0x46BEE2A4, 0x1404A174, 0x51CC482E} } } } ;
2367 static const fp12_t var_b = { { { {0x8B4742F3, 0x7992AACB, 0xB8FCC146, 0x538C88AD, 0x293C4FB2, 0xD3CED153, 0x10EFFEF1, 0x95B5B38E},
2368 {0xEB8A1BD7, 0x4DFA9F2C, 0xB664E7D5, 0x42BE2D3C, 0xC71E2D11, 0xB50E38AB, 0x12A857EC, 0x260BF21A} } ,
2369 { {0x3CE95411, 0x99088597, 0x858B3E88, 0x5E67BF68, 0x3CAA0F57, 0x3D3F4D8D, 0x522DDA15, 0x2F2E6BA3},
2370 {0x49BF0950, 0xFAD95D5D, 0x802512B3, 0xB6FE0AA2, 0x17043F20, 0x2B65137E, 0xFE009222, 0x2AAAC75B} } } ,
2371 { { {0x67621F7C, 0x3C93EB9A, 0x856FF5C5, 0xB41BA8FD, 0x51F1DD0B, 0x2E511031, 0xB6835381, 0x64696CDC},
2372 {0xE8D96874, 0xC82CEE55, 0xAAD8EDC5, 0x00E28557, 0x74B5750B, 0x4998FED6, 0x4FBBE627, 0x1961E2EE} } ,
2373 { {0x10537EB2, 0x2B674BC1, 0x5F45FE0A, 0xB4D48185, 0xCA4672D3, 0x67BCFF19, 0x51D0C5A7, 0x119394BE},
2374 {0x94970C57, 0x9A0C1988, 0xF8017BA8, 0xD9026B9A, 0xDC5D3051, 0xDE63BABB, 0x79D91F2E, 0x1C727187} } } ,
2375 { { {0x07B25262, 0x64673543, 0x4BDC7791, 0x4A9EEF93, 0x973A00C2, 0xD306CB1E, 0x780DC7F6, 0x37BEBF24},
2376 {0x1F1C3E7C, 0x8A686B75, 0x168FA596, 0x5F8154A8, 0x33A2E78E, 0xF31D1FA8, 0xB1E00589, 0x0F260CE2} } ,
2377 { {0xF9BEB53E, 0x278A88A6, 0xEF2E2B17, 0x8F9AAD5B, 0x971B1CBF, 0xA4B40EB7, 0x7F05C27A, 0x610D7B8A},
2378 {0xD50FCF4F, 0xFF5DF7D0, 0x4D4DD88F, 0xCC494D56, 0xF6F5A561, 0xD83C89C7, 0xEDB0502F, 0x9B0424AC} } } } ;
2379 static const fp12_t var_expected = { { { {0x5930E2C5, 0xB922C05C, 0xA9F562F5, 0x60351078, 0x89B4EBA1, 0x5993FCDB, 0x5C51F18B, 0x9559E68B},
2380 {0x76A98C8B, 0xDC516F0F, 0xAF8E6CE8, 0xEB466CE7, 0x8F092758, 0x2BF85798, 0x9452203F, 0x02AEE799} } ,
2381 { {0xD17F4EEF, 0x5EE23ACE, 0x7E16B768, 0x138989B5, 0x09E84F6F, 0x75BD4E99, 0x0DAC05EC, 0x61E798E2},
2382 {0xB4F3B964, 0x90545F03, 0xFB5BCCC8, 0x7D84D9B7, 0x6094533B, 0x8E4B63C4, 0xD4F9B853, 0x1099568A} } } ,
2383 { { {0x19D0D682, 0xC00629AB, 0xDEF8B24E, 0x5D809FDA, 0x47B8600F, 0xAF63F4BD, 0xBD0F79DE, 0x7F8E026D},
2384 {0x89E5232E, 0x3D94567E, 0x6514E3DC, 0x33B4F472, 0x7F7869F6, 0x3B64E191, 0x554B8DF7, 0x95C46824} } ,
2385 { {0x13813C2E, 0x5A24DEBF, 0x20B41FBD, 0xD068DD98, 0x1833AF7C, 0x82620026, 0x2F6EED00, 0x25B8B3A0},
2386 {0xB3E6D664, 0x60A74CF3, 0xC6784656, 0x66471911, 0xC3A70A6F, 0xBED19A99, 0x19F1C35D, 0x9FB0B5D1} } } ,
2387 { { {0x053B6AFD, 0xAD592275, 0x6EF34B56, 0x164600FF, 0xA263B713, 0x68943643, 0x63FFB81B, 0x4A84D874},
2388 {0xC6FBB7BC, 0x84F79979, 0x78FB6FFD, 0x370B211A, 0x0A8CD9E2, 0xAD9662DA, 0x5F556973, 0x0C3BA94B} } ,
2389 { {0x44E9B9CD, 0x3AB9A033, 0xCA2C0C83, 0x716064BC, 0x6A0A9D9D, 0xEA920D89, 0x1B7893A9, 0x404E6C67},
2390 {0xF35B1572, 0x1DBCB3ED, 0xC9CF2102, 0xAA50E226, 0x20549657, 0x69E2B548, 0x66732D6D, 0x70DBC243} } } } ;
2392 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1593 a000");
2393 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1594 a001");
2394 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1595 a010");
2395 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1596 a011");
2396 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1597 a100");
2397 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1598 a101");
2398 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1599 a110");
2399 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1600 a111");
2400 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1601 a200");
2401 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1602 a201");
2402 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1603 a210");
2403 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1604 a211");
2406 static const fp12_t var_a = { { { {0xD3FEF3AD, 0xF6D7419C, 0x302BD9D0, 0xDCA3180A, 0xE5A92F5C, 0x4BB8C4C0, 0xFCC1ECBE, 0x5657F56E},
2407 {0x806F01BB, 0x9848358A, 0x772F1044, 0x73A46DC0, 0x3B577C95, 0x28715F57, 0xE1D4BB3C, 0x366EF8BD} } ,
2408 { {0xC20BE95D, 0x937B2549, 0x33021E51, 0xCBDCCC2D, 0xE0E6B845, 0x79827CC7, 0xC4DB96BF, 0x21B7D42D},
2409 {0xED0E67C7, 0x3889E241, 0x59874DB1, 0x0D0E7148, 0xFEB6F29E, 0xB42FB2A4, 0x014A3F0A, 0x08760A92} } } ,
2410 { { {0x3365EFE6, 0xFDD1CB4A, 0x5D78C82E, 0x34400842, 0x23E5DCC1, 0x1E12B7C9, 0xEBCAAB4C, 0x0A1C90F8},
2411 {0x4E902F3D, 0xFD88260F, 0x74C869A6, 0xCCD9823A, 0x78A5AEE0, 0x7E276766, 0xC4F36785, 0xA986B79B} } ,
2412 { {0xD43F644A, 0x767A125A, 0x5335A52F, 0x3031D117, 0x8C984E39, 0x6B04674D, 0xC7366951, 0x99D94C19},
2413 {0xCBAE776B, 0x4A6146BB, 0x92A220A0, 0xAF1E9B77, 0x2B2E8B63, 0xE6E76275, 0x5FD1CACB, 0x9440A17A} } } ,
2414 { { {0x9055BF59, 0x7F66F1AB, 0xFA13BEFC, 0x190BE115, 0x37A68907, 0xD3A494D4, 0xED4549B6, 0x993740E8},
2415 {0x52C09E5C, 0xBF4165D1, 0x0B00A4AC, 0x43FCE378, 0x277FC052, 0x79BA443D, 0x458682FA, 0x6BCFE79E} } ,
2416 { {0x96B53E53, 0xD9E9B371, 0x77720DA5, 0x87B15288, 0x8334610F, 0x05FD2503, 0x31EE20D2, 0x1202951C},
2417 {0xB1AC92C6, 0x3ED5226F, 0xA5FE0BD1, 0x41D04DAD, 0x694DCB5E, 0x07CE4D14, 0xED0D7B5A, 0x5817164E} } } } ;
2418 static const fp12_t var_b = { { { {0x51942641, 0x84CA9519, 0x2F82A573, 0x53201579, 0x0BBBE2D0, 0xF2E4CA06, 0xA944729F, 0x4C19D561},
2419 {0x93BC3A04, 0xE851C976, 0x9040189E, 0x8FC6C357, 0xDBA4D97E, 0xA546C08E, 0xCB0CBDEF, 0x09452D45} } ,
2420 { {0x0DEF614D, 0xC4623A7F, 0xF31F6C97, 0x83E97529, 0x5AF00348, 0xD1B1B0A7, 0x6AAF1601, 0x17EE3898},
2421 {0x6A47FA84, 0x1B34121D, 0x8E8E4260, 0x9EC300C7, 0xF523BDAD, 0x9732AFBE, 0x94B7BF80, 0x55C0CF47} } } ,
2422 { { {0xDF39EA54, 0x1557C307, 0x237B8791, 0xAA1F788A, 0x8705DAC7, 0x052B84FB, 0xC8CC45F0, 0x6C742F7B},
2423 {0x3C9B03A4, 0x7E0A2F98, 0xD30BCEAA, 0x9C2DE6D1, 0x251212AF, 0x826FABC3, 0x7DD59D10, 0x3EE27F1A} } ,
2424 { {0xCB73C34C, 0x3D5A367A, 0x6AB726DF, 0x2731DABE, 0xF39E1F6B, 0x4BD02D52, 0xDA94EA19, 0x22EE2660},
2425 {0xFB39DCB0, 0xEB9334BC, 0xA0099D9F, 0x7B79E9AC, 0x628FB7EA, 0x26092046, 0xBBBB90EC, 0x1B9D65F9} } } ,
2426 { { {0xA1B28B3D, 0x3A890D7B, 0x00EB3314, 0xE62C5117, 0x917BC0A8, 0x91B3E977, 0xF3D75ED9, 0x3F403392},
2427 {0xB5ED079A, 0x877E6C74, 0xFBAD0765, 0x34069BF0, 0xEB911F18, 0x957A9A17, 0x046A734F, 0x54423D3F} } ,
2428 { {0x0E159F6A, 0x4ED51646, 0x8917627B, 0x00F8724A, 0x3DD9B337, 0x08A41993, 0x68F7744C, 0x4B20F5D7},
2429 {0xF2C40AF4, 0xB3668C36, 0x81BA40F4, 0xD9BEDAA1, 0x948E7328, 0x2B29C373, 0xCCF86546, 0x1F260C28} } } } ;
2430 static const fp12_t var_expected = { { { {0x826ACD6C, 0x720CAC83, 0x00A9345D, 0x89830291, 0xD9ED4C8C, 0x58D3FABA, 0x537D7A1E, 0x0A3E200D},
2431 {0xECB2C7B7, 0xAFF66C13, 0xE6EEF7A5, 0xE3DDAA68, 0x5FB2A316, 0x832A9EC8, 0x16C7FD4C, 0x2D29CB78} } ,
2432 { {0xB41C8810, 0xCF18EACA, 0x3FE2B1B9, 0x47F35703, 0x85F6B4FD, 0xA7D0CC20, 0x5A2C80BD, 0x09C99B95},
2433 {0xE4F2A1DE, 0x1C4459D5, 0x9F70EA98, 0x815D1D21, 0x5D75BEA5, 0x185D5F51, 0xACB15BB3, 0x6CC8DA0C} } } ,
2434 { { {0xB6583A2D, 0xE76891F3, 0x0E751FE4, 0x9D323C59, 0xF0C28BAE, 0x14478F38, 0x631D4185, 0x57BC003F},
2435 {0x11F52B99, 0x7F7DF677, 0xA1BC9AFC, 0x30AB9B68, 0x53939C31, 0xFBB7BBA3, 0x471DCA74, 0x6AA43881} } ,
2436 { {0x08CBA0FE, 0x391FDBE0, 0xE87E7E50, 0x08FFF658, 0x98FA2ECE, 0x1F3439FA, 0xECA17F38, 0x76EB25B8},
2437 {0xD0749ABB, 0x5ECE11FE, 0xF2988300, 0x33A4B1CA, 0xC89ED379, 0xC0DE422E, 0xA41639DF, 0x78A33B80} } } ,
2438 { { {0xEEA3341C, 0x44DDE42F, 0xF9288BE8, 0x32DF8FFE, 0xA62AC85E, 0x41F0AB5C, 0xF96DEADD, 0x59F70D55},
2439 {0x9CD396C2, 0x37C2F95C, 0x0F539D47, 0x0FF64787, 0x3BEEA13A, 0xE43FAA25, 0x411C0FAA, 0x178DAA5F} } ,
2440 { {0xEACBD384, 0x8A0326DC, 0xC2D28A71, 0x99CA8CDE, 0x993D378D, 0xF8B967DB, 0x091588AE, 0x80F53E07},
2441 {0xBEE887D2, 0x8B6E9638, 0x2443CADC, 0x6811730C, 0xD4BF5835, 0xDCA489A0, 0x20151613, 0x38F10A26} } } } ;
2443 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1605 a000");
2444 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1606 a001");
2445 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1607 a010");
2446 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1608 a011");
2447 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1609 a100");
2448 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1610 a101");
2449 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1611 a110");
2450 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1612 a111");
2451 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1613 a200");
2452 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1614 a201");
2453 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1615 a210");
2454 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1616 a211");
2457 static const fp12_t var_a = { { { {0xFFBE026D, 0xFA01F357, 0xECF1EB10, 0xCFEF6C0F, 0x13276063, 0x219F6568, 0xD053DEA4, 0x0FB8B983},
2458 {0xA2C054A8, 0x0F8DE9FF, 0x8A332CEE, 0xF70406F0, 0x6FBEA539, 0x724F5C46, 0x8885A80D, 0x1E9764DF} } ,
2459 { {0xA1A9B050, 0xFFB46E8D, 0x4C32E72C, 0xEB79D2EF, 0x71D5C956, 0x8CE0A36D, 0xFE9CE986, 0x93358064},
2460 {0x92F2627A, 0x7D2EBD35, 0xDBD04EC3, 0x47F853D9, 0x78608399, 0x3D8EAB5E, 0xAD055E67, 0x7B1B10D0} } } ,
2461 { { {0x617377DC, 0x5E863F0B, 0x10E40BA9, 0x2D942F6A, 0xF42516D1, 0x3BF2E4A6, 0x072275D4, 0x225B8343},
2462 {0xCE79FEF7, 0x1D82FDF3, 0x7AC50E34, 0xC218D717, 0xEC6C4B0E, 0x9C5C5427, 0xF1B555FD, 0x9E15DAD4} } ,
2463 { {0xEC2F6ED1, 0x581025CF, 0xDBB5EF46, 0xAF645F1E, 0x79FB6140, 0x5EBCA31E, 0x42211559, 0x440F4717},
2464 {0xA4525AA5, 0x50C9909B, 0xAB0F09E5, 0xA0D6156C, 0x49658FC7, 0xE0177A4E, 0x476AABED, 0x3054BF09} } } ,
2465 { { {0xCE0CC793, 0x6F10E359, 0xBFD1D614, 0xB5B7FA5B, 0xC9C862CA, 0x6C34BC9E, 0x01F991E3, 0x08D88A93},
2466 {0xA02645AC, 0xB85F6493, 0xF4C85AF3, 0x5C22E7FE, 0x4B24E888, 0x9A1386FA, 0xE6DD1B00, 0x1CA22188} } ,
2467 { {0x58FA74C8, 0x6022E1AD, 0x5E842F06, 0x13EA92B0, 0x3CC796B6, 0x0752B6EA, 0xDD13C3DF, 0xA5D27A0A},
2468 {0x901C6FFB, 0x36CB67BD, 0x1976DE6D, 0xADFC9233, 0xEFAD7E2B, 0x9CA991FC, 0x42030D19, 0x8856FFD6} } } } ;
2469 static const fp12_t var_b = { { { {0xD3C947B9, 0x307A0AB3, 0x9FDE7874, 0x69C49BC0, 0x74F9B412, 0x2E55BC3D, 0x2700B84B, 0x367412A6},
2470 {0x1E7C8E67, 0xEADCE1AF, 0x4BDF7E91, 0x79F48AE2, 0x1F1CDF1E, 0xF9E91846, 0xD1356E96, 0x26D08F55} } ,
2471 { {0xEA838EE9, 0x205C6274, 0x283C1FB6, 0xCEADDD7B, 0x4FE5ACAB, 0x133FA420, 0x37D96AEA, 0x44D4D1D9},
2472 {0x5C2FA2DE, 0x357E5BD6, 0x793FD4D6, 0x20FFC299, 0xFEFD50C0, 0xFD2A1916, 0x060299A0, 0x1058FF79} } } ,
2473 { { {0x500C3B53, 0xB0388B43, 0x871B20D0, 0xC329F86B, 0x908A9801, 0x1D827278, 0x207913C7, 0x0B28C086},
2474 {0xD7B469DD, 0xB810951A, 0x253DEF95, 0x1CAE4132, 0x4CAD2A8D, 0x3539A336, 0x18E32888, 0x324A97C1} } ,
2475 { {0x3149F4D7, 0x9F0A14E2, 0xDF8E8362, 0xE01F9BCF, 0x94A35EB8, 0xFC88F122, 0xB7460B23, 0x96FF14C6},
2476 {0x97EFFA90, 0x55881129, 0x6E3A5205, 0xFFBE50DD, 0x5B32AA17, 0x7D67CB85, 0xFB88D301, 0x3FA505D5} } } ,
2477 { { {0x36E99FB1, 0xF15C5F64, 0xEE8BB967, 0xD96B393D, 0x5275DF2A, 0xACD0DD7E, 0x938F690C, 0xB9D5E18E},
2478 {0x0CD575D1, 0x2C1C3735, 0x2DFC5EB9, 0xD3054E42, 0xBE70533E, 0xE17E1A9E, 0xA4C94115, 0x5A02C4C6} } ,
2479 { {0x6E16764A, 0xE50A8C1A, 0x2D93DCAF, 0xD8C7E049, 0xF90F13D3, 0x58D3033F, 0x476A115E, 0xB7075B21},
2480 {0x828BEDE5, 0x9F9F7A73, 0xA51AC828, 0xD4B4B3BC, 0xF1734940, 0xB24E5D8D, 0x0873DF97, 0x2DD2EA32} } } } ;
2481 static const fp12_t var_expected = { { { {0x8E20EF4F, 0xC8767255, 0x218B51E3, 0x793C7CF0, 0xF2103606, 0xEEAA0595, 0xE9720281, 0x9358459F},
2482 {0xE66FFADC, 0x239F9201, 0x12CB8DA3, 0x902128AF, 0xA4844FD0, 0x73C6A06B, 0xF76F159F, 0xB1DA744B} } ,
2483 { {0xB7262167, 0xDF580C18, 0x23F6C776, 0x1CCBF574, 0x21F01CAB, 0x79A0FF4D, 0xC6C37E9C, 0x4E60AE8B},
2484 {0x36C2BF9C, 0x47B0615F, 0x629079ED, 0x26F89140, 0x796332D9, 0x40649247, 0xA702C4C6, 0x6AC21157} } } ,
2485 { { {0x11673C89, 0xAE4DB3C8, 0x89C8EAD8, 0x6A6A36FE, 0x639A7ECF, 0x1E70722E, 0xE6A9620D, 0x1732C2BC},
2486 {0xF6C5951A, 0x657268D8, 0x55871E9E, 0xA56A95E5, 0x9FBF2081, 0x6722B0F1, 0xD8D22D75, 0x6BCB4313} } ,
2487 { {0x1D11AE95, 0xB7F49A9F, 0xD09F4B2A, 0xE2566FEF, 0x393A8C3C, 0x5D940E67, 0xCAF9E65E, 0x6723D112},
2488 {0x6E8E94B0, 0xFA300923, 0x114C9726, 0xB4297130, 0x42156F64, 0x5E100B34, 0x8C00B515, 0xAAC357F5} } } ,
2489 { { {0xF94F5C7D, 0x7CA30DA6, 0xA5BDFBF3, 0xEF5E6DBE, 0xCB350D54, 0xBAC43B8B, 0xAE8904FF, 0x091647C6},
2490 {0xF57D0476, 0x8B31B70F, 0x9B43DB81, 0x9C2F465D, 0xE0971EFE, 0xB3F5C8C6, 0x8232B613, 0x7CB2FB84} } ,
2491 { {0x4D103319, 0x7A06DF44, 0x0568319D, 0x4E345F08, 0x979B0C97, 0xA9E01015, 0xD5C88EA9, 0xA8DEBDAB},
2492 {0x0D908216, 0x972BED4A, 0x745C1644, 0xD947DE76, 0xFE3A34EA, 0xEA5B346E, 0x398F2D81, 0x5A8415A4} } } } ;
2494 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1617 a000");
2495 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1618 a001");
2496 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1619 a010");
2497 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1620 a011");
2498 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1621 a100");
2499 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1622 a101");
2500 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1623 a110");
2501 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1624 a111");
2502 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1625 a200");
2503 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1626 a201");
2504 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1627 a210");
2505 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1628 a211");
2508 static const fp12_t var_a = { { { {0xC693D90C, 0xFE92F722, 0x81207E51, 0x3814C04E, 0xA891B1E4, 0x729942A5, 0x698E3C7F, 0x59120D0A},
2509 {0x87666F3B, 0x4E802047, 0x5EC95ABB, 0x79FEC09C, 0xB2202D80, 0x811CE7BE, 0x5DBAABC4, 0xA0012459} } ,
2510 { {0x6BB9C7F4, 0xFC15D0A0, 0x0F734A2E, 0x91F9D256, 0xBAD9DA76, 0xAB29805C, 0xCDC28528, 0xA836B1FC},
2511 {0x868AB3BD, 0x1BE7CDC9, 0x46AFFD57, 0x6A940E5E, 0xA921BD1B, 0x2553BF94, 0xD66E0567, 0x237563AE} } } ,
2512 { { {0x68187431, 0xE077F765, 0x68656021, 0xAA66F847, 0x79760009, 0xF9380992, 0x490E6F3E, 0x32F64923},
2513 {0xB19A20D8, 0x257339F3, 0xE18DDACD, 0xD68C6F79, 0x0F287F5A, 0x9F779DB5, 0xEADB53BB, 0x4C005E03} } ,
2514 { {0x9028B17D, 0xEA1A8675, 0xAD145AD3, 0xD37AD505, 0xBEE0580B, 0x7D1A3F7A, 0xF2A3447E, 0xB105721E},
2515 {0x30CDC5D0, 0xCFF3AAE6, 0xF6E272AD, 0xC0470168, 0x66DA37C1, 0x4E6F1F47, 0xCDF47DAB, 0x9726B291} } } ,
2516 { { {0x4930A9E5, 0x9DAB1253, 0x720AD221, 0x1B4FBAB8, 0x5592180E, 0xBBAEA418, 0x5DDB712F, 0x03045C66},
2517 {0xF1769062, 0xBACE25CA, 0xDEE609E7, 0xB3A9F00A, 0xBE85E855, 0xC059DBCF, 0xF5C84775, 0xA77A8214} } ,
2518 { {0x46AE7DBD, 0xB72C607D, 0x2E920E00, 0x6695CACD, 0xED18E6DC, 0x55186B32, 0x5E556582, 0x1A3256A3},
2519 {0xC2FD774B, 0xC6646285, 0x5E85F962, 0x67566EB6, 0x147D9B82, 0xC5BBABA7, 0xD5417E96, 0xA4C6C119} } } } ;
2520 static const fp12_t var_b = { { { {0xD08F4E62, 0x3C104602, 0xC903F1D4, 0x5519B103, 0x25A3978D, 0x46225E95, 0x4B77DDE1, 0x11DB4B54},
2521 {0x4DA8C81B, 0x15235DF3, 0xA7AD5342, 0xC340431A, 0x51E9B00E, 0x74906CF5, 0xE4722319, 0x3D9C9EC9} } ,
2522 { {0xF4E83586, 0x6C82FECD, 0xBC390B9C, 0x1317A562, 0x2F8A2B35, 0xBC7942DD, 0xB912C49B, 0x2BBDE67E},
2523 {0x064C86B3, 0x06397B8E, 0x7DF9CF2C, 0x389005E1, 0xEF09ACCB, 0x0D393032, 0xD67B9B54, 0x4A4C0E6D} } } ,
2524 { { {0xA1E6859D, 0xC8D339BD, 0xEB89312E, 0xF97063BC, 0x28B686B7, 0x27D9A04E, 0x3C197CE2, 0x323745E4},
2525 {0x5461D4FA, 0x3C5C7EF8, 0xE54EA4C7, 0x08867C7D, 0xAE23CFB7, 0x31CD9FFE, 0x20B4A733, 0x85A70908} } ,
2526 { {0x02CBD910, 0x1177D113, 0x7D8DBD0D, 0xA051FABB, 0x6D50BCC8, 0x3979D93C, 0xAA0B8C9E, 0x2DECEE1C},
2527 {0x0363515F, 0x99359974, 0xA566D3A3, 0xEAA60CF8, 0x8C4EB3AD, 0xB289EDFE, 0x37006C24, 0x18499CAA} } } ,
2528 { { {0x86BD8582, 0x4711551E, 0xD570654B, 0xE1BBAB99, 0x9A9320E6, 0xE22000A4, 0x184AA027, 0x6653AE32},
2529 {0x479EB049, 0x3A768EA2, 0x3F1CA308, 0x114B61A6, 0xC145EA3E, 0x91E522A9, 0x912B6BEC, 0x9A266031} } ,
2530 { {0xD99A9A8F, 0xAD89FB90, 0x9A43878F, 0xD61A94CC, 0x8E9BAFF9, 0x5535DC31, 0xDB63C182, 0x6648EEA3},
2531 {0x467392F8, 0x837FDA90, 0x7B8725FF, 0x7D943EA6, 0xCE399556, 0x2E38CA0B, 0x621D7A8A, 0x856565D3} } } } ;
2532 static const fp12_t var_expected = { { { {0xF6048AAA, 0xC282B11F, 0xB81C8C7D, 0xE2FB0F4A, 0x82EE1A56, 0x2C76E410, 0x1E165E9E, 0x4736C1B6},
2533 {0x39BDA720, 0x395CC254, 0xB71C0779, 0xB6BE7D81, 0x60367D71, 0x0C8C7AC9, 0x794888AB, 0x6264858F} } ,
2534 { {0x76D1926E, 0x8F92D1D2, 0x533A3E92, 0x7EE22CF3, 0x8B4FAF41, 0xEEB03D7F, 0x14AFC08C, 0x7C78CB7E},
2535 {0xE26A61A5, 0x149CDBEC, 0x9D2E0D72, 0x4515B51D, 0x0DFA9A05, 0x137AEBCD, 0x4011463C, 0x933CF403} } } ,
2536 { { {0xC631EE94, 0x17A4BDA7, 0x7CDC2EF3, 0xB0F6948A, 0x50BF7951, 0xD15E6944, 0x0CF4F25C, 0x00BF033F},
2537 {0xBF648079, 0xE80544AC, 0xD0B7154C, 0xE1179F9C, 0xB4E73958, 0x690A5A21, 0x0A4588B1, 0x806CF3BE} } ,
2538 { {0x8D5CD86D, 0xD8A2B562, 0x2F869DC6, 0x3328DA4A, 0x518F9B43, 0x43A0663E, 0x4897B7E0, 0x83188402},
2539 {0x2D6A7471, 0x36BE1172, 0x517B9F0A, 0xD5A0F470, 0xDA8B8413, 0x9BE53148, 0x96F41186, 0x7EDD15E7} } } ,
2540 { { {0x249F58FE, 0x558846E6, 0x71124C1D, 0x4CA5BBBF, 0x0EE180DC, 0xD4EEFFDF, 0x85AFAD30, 0x56C44CF6},
2541 {0xA9D7E019, 0x80579728, 0x9FC966DF, 0xA25E8E64, 0xFD3FFE17, 0x2E74B925, 0x649CDB89, 0x0D5421E3} } ,
2542 { {0xCF4017C9, 0x0890EE9D, 0x68C665B8, 0xA38CE2A1, 0xB25FC097, 0xFB42EB6C, 0xC3108028, 0x6DFD06C1},
2543 {0x7C89E453, 0x42E487F5, 0xE2FED363, 0xE9C2300F, 0x4644062B, 0x9782E19B, 0x7324040C, 0x1F615B46} } } } ;
2545 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1629 a000");
2546 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1630 a001");
2547 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1631 a010");
2548 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1632 a011");
2549 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1633 a100");
2550 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1634 a101");
2551 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1635 a110");
2552 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1636 a111");
2553 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1637 a200");
2554 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1638 a201");
2555 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1639 a210");
2556 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1640 a211");
2559 static const fp12_t var_a = { { { {0x8698487E, 0xC32B6F13, 0xDAD10905, 0xC4BF6812, 0x10533F2F, 0x0569B064, 0x4748E2B1, 0x3C86FC77},
2560 {0xF0E04F67, 0x15C9FDAE, 0xB3FA4C04, 0xBAA970E3, 0xC4810C40, 0x15932A59, 0x1F61BDEC, 0x7CBAEC2C} } ,
2561 { {0xE0F21465, 0x495D3335, 0x3A46E861, 0x7ECC026B, 0x7AAF3A6F, 0x97B050F9, 0xF232CB27, 0x1F9F8A58},
2562 {0x1177CB90, 0xD04596AF, 0xABFBDBDC, 0x80F0DA88, 0xA1FA4634, 0x17EDAE88, 0x3DDA74A3, 0xAA91D3D9} } } ,
2563 { { {0x2E01869C, 0x416268DB, 0xA1D528AD, 0xA20E9952, 0x6DA9AB57, 0x0989F27F, 0x30C3523B, 0x2ABD60B7},
2564 {0xB7528FF6, 0xD6629896, 0x690B8680, 0xC9AED9B8, 0xA1BA509A, 0x45932179, 0x7133A4BF, 0x75B3BE8A} } ,
2565 { {0x7FC18A80, 0xECB8A54E, 0x87B3A85A, 0x5E442FEB, 0x19E44A82, 0x88D15873, 0x9884FDA4, 0xA10102A2},
2566 {0x2FEECA9A, 0x8617E220, 0x31F62491, 0xCE9A3AFA, 0x42E10BA8, 0xF1382E9C, 0xB12E93D4, 0x88D4A992} } } ,
2567 { { {0xC1CA5856, 0xCB8332C4, 0xD20F53EE, 0x0A52B416, 0x9D11DE82, 0x84F6B958, 0xBDA2EB25, 0x4BAD8233},
2568 {0xA3C5301A, 0x860727C4, 0xB4AC0302, 0xF559CC73, 0xEC853C3E, 0xAEA72C5A, 0xF0D62571, 0x1211DC74} } ,
2569 { {0x1F491D5F, 0x9F87D753, 0xA8DD0251, 0x40E4ECE8, 0x54A51FFF, 0xAF62F4F2, 0x755823A7, 0x32C59C2F},
2570 {0x07002111, 0xAE3802AA, 0x35E653CB, 0x2F6640B4, 0x98EE9D1A, 0x43AFB395, 0x656711C4, 0x69E49A8E} } } } ;
2571 static const fp12_t var_b = { { { {0x08CE0C66, 0x693B8C20, 0x6C23FA64, 0xD7FF7585, 0xDCA371A6, 0xFA8E8A31, 0xD43F33E8, 0x9FA2A964},
2572 {0xDF61A4A2, 0x29E93E0F, 0x6654AFA2, 0x2AE17FD0, 0x33B03D0E, 0xD11518B1, 0xC54F03BC, 0x0FD5F02B} } ,
2573 { {0x27200732, 0x69D88746, 0xC44ACDE6, 0xEA918BC3, 0x1273E4BB, 0x9512C316, 0x30A2085B, 0x1C831FBF},
2574 {0x01A8CD04, 0x50911553, 0xDEEE2AE1, 0x6B29D80D, 0x8BB791C0, 0x9647E3C6, 0x0345D773, 0x943B9A3E} } } ,
2575 { { {0x6B0BCFE7, 0x226AB6AF, 0x9570C29F, 0xD1FF9290, 0x13AA916F, 0xF2B2ECA5, 0x1EC8F9E1, 0x70189377},
2576 {0xD3CC02CC, 0xC90123E9, 0xA6423D98, 0x3260230B, 0x60DB5703, 0x32C71AA7, 0x96D5B53A, 0xB39B60AD} } ,
2577 { {0xFF30D6A9, 0x53DE912F, 0x04B5A42E, 0x26B7694A, 0x3CE14A84, 0xC273C62A, 0x72490465, 0xA5183D04},
2578 {0x86B5BAD5, 0x73AD37BD, 0x56E74450, 0x4ABFC8E7, 0x0465309F, 0x715D9B9B, 0x31FC41E0, 0x51188E97} } } ,
2579 { { {0x52D79C02, 0xFF145F87, 0x768B0BEC, 0xC1BD778A, 0x2A829CFE, 0xF5A60B6B, 0x435D3F73, 0x04CE03B7},
2580 {0xC1FDC8ED, 0x7124F0CD, 0x1EFF2DA7, 0x9BBC8305, 0x5F91F471, 0x69E8E795, 0x4BBEDC19, 0x1A87E3E5} } ,
2581 { {0x10BAA5E6, 0x65F0CE33, 0x900A16AF, 0xBB41861A, 0xB99724DA, 0xBDFC2393, 0xE4298265, 0x17A70831},
2582 {0x9A9F0095, 0x21CF1880, 0xEEE29FF5, 0x81F4D9C9, 0x96D0C751, 0x63509A6F, 0x581712A2, 0x2D6862B5} } } } ;
2583 static const fp12_t var_expected = { { { {0xDFF670B3, 0x58DE6CA4, 0x4324EDE8, 0xFFD19F2E, 0x8792573D, 0x063B829D, 0xB3288AF1, 0x56F7F1D4},
2584 {0x117EAAC5, 0xEBE0BF9F, 0x4DA59C61, 0x8FC7F113, 0x90D0CF32, 0x447E11A8, 0x5A12BA2F, 0x6CE4FC00} } ,
2585 { {0xB9D20D33, 0xDF84ABEF, 0x75FC1A7A, 0x943A76A7, 0x683B55B3, 0x029D8DE3, 0xC190C2CC, 0x031C6A99},
2586 {0x0FCEFE8C, 0x7FB4815C, 0xCD0DB0FB, 0x15C7027A, 0x1642B474, 0x81A5CAC2, 0x3A949D2F, 0x1656399B} } } ,
2587 { { {0x2521EB50, 0x1DE63BDD, 0xE0DC4555, 0xE320B362, 0xADE1A39C, 0x12376245, 0x52193482, 0x74B86C02},
2588 {0x45B2C1C5, 0x0C4FFE5E, 0x9741282F, 0xAA60634D, 0x94C1834C, 0x0E2C633D, 0x1A7CCBAE, 0x7C2BFC9F} } ,
2589 { {0xE2BCE872, 0x97C89DCF, 0x5775E373, 0x4A9E7342, 0x30E589B3, 0xC1BDEEB4, 0x665AD567, 0xB5FC6460},
2590 {0xA9390FC5, 0x126AAA62, 0xDB0EE041, 0x83DA7212, 0x3E7BDB09, 0x7FDA9301, 0x7F3251F4, 0x37BC1AFB} } } ,
2591 { { {0x6EF2BC54, 0xCC6ED33D, 0x5B844801, 0x48953C8C, 0x728F4183, 0x8F50ADED, 0x7A45ABB1, 0x46DF7E7C},
2592 {0x43F39BC8, 0x13D0C0A8, 0x6A24B4A2, 0x6CAEF60F, 0xE0D5D182, 0x401EA130, 0xE5362581, 0xB19D9751} } ,
2593 { {0x0E8E7779, 0x39970920, 0x18D2EBA2, 0x85A366CE, 0x9B0DFB24, 0xF166D15E, 0x912EA141, 0x1B1E93FD},
2594 {0x6C61207C, 0x8C68EA29, 0x4703B3D6, 0xAD7166EA, 0x021DD5C8, 0xE05F1926, 0x0D4FFF21, 0x3C7C37D9} } } } ;
2596 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1641 a000");
2597 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1642 a001");
2598 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1643 a010");
2599 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1644 a011");
2600 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1645 a100");
2601 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1646 a101");
2602 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1647 a110");
2603 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1648 a111");
2604 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1649 a200");
2605 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1650 a201");
2606 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1651 a210");
2607 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1652 a211");
2610 static const fp12_t var_a = { { { {0x26DAFD5A, 0x07650325, 0x373C9A77, 0x6D295A0C, 0x079E3D02, 0x8B93F7EE, 0xEA143EB7, 0xA5C6B914},
2611 {0x9BEFE5DA, 0x244E9354, 0x4A1173CF, 0x785F1B5F, 0x66259BBB, 0xECADDBB4, 0x8EA7200D, 0x730EE53B} } ,
2612 { {0xC14D580D, 0xA689F8C1, 0x8F6DC842, 0x70A3122D, 0x7152FD0A, 0x0F08E7BF, 0x2C138D8A, 0xB993679F},
2613 {0xCE626A4F, 0x5E94D1E9, 0x4E88646B, 0x12E20215, 0x25F535FF, 0xE2634E91, 0xE00D8238, 0xA02FD648} } } ,
2614 { { {0x4E10BE6A, 0x43A751D8, 0xFF7E428F, 0x9EB64B4D, 0x94838767, 0x3B85E7C0, 0xBDF8738C, 0x9A495E13},
2615 {0x3F15A09E, 0xEFA95C58, 0xFEEF49D0, 0x47264A7B, 0x0F663A90, 0x54AA0E48, 0x05AB9724, 0x1EC768A9} } ,
2616 { {0x18A69C66, 0x205B00A8, 0x56BCC80E, 0xFCC05776, 0xF8FF2A64, 0x447465BD, 0xB3A97C85, 0x1873E459},
2617 {0xFF99A669, 0x37BD175E, 0x49EBB5F5, 0x7726D6FB, 0x4A2AD67B, 0x8C9EDEB8, 0x70F69AE3, 0x09A757AB} } } ,
2618 { { {0x32CAA73D, 0xBA4C8B06, 0xF883917A, 0x1C5D4B6A, 0xB8CC0D1F, 0x8D6C7B42, 0x6206AD69, 0x2BE27791},
2619 {0x9C14D809, 0xD67A3FA0, 0xB588137D, 0x1B7F6EFF, 0x91CC1FCB, 0x19D89923, 0x5950D107, 0x4BB02C4E} } ,
2620 { {0xA38231C6, 0xD7F1A36A, 0x8AE80BFF, 0x5F47A979, 0x33281903, 0xD683D4D7, 0xE002CC82, 0xAC703C4F},
2621 {0x1F13DF04, 0xAF1D75FC, 0x5D92331F, 0xC6F46D1D, 0x3B766FB6, 0xD56E9B09, 0xB351E465, 0x986C08E4} } } } ;
2622 static const fp12_t var_b = { { { {0x3BAC3D13, 0x75EAE6C6, 0x48AF7774, 0xB098571F, 0x5B27FF76, 0x0A1EFE21, 0x822F0D80, 0xA05F5CF5},
2623 {0xF631EAF9, 0xE3245F7E, 0x1A352B3A, 0x8363186D, 0xD9343D98, 0xCEF4B826, 0x72B83A2A, 0x14FC880F} } ,
2624 { {0xA5EC0BFF, 0xD76AEBCE, 0xD548E878, 0x28013524, 0x0D1F80C8, 0x5B1D65EE, 0x9D6C0A4A, 0x8E7F9ACE},
2625 {0x6F3F15F8, 0xD2AB5422, 0x31714B04, 0x8C051F1D, 0xE73BFA71, 0x53018DB6, 0x8D3A481A, 0x68571DAE} } } ,
2626 { { {0xD0AE7465, 0x7C39F257, 0x1899F240, 0x20698071, 0x66553F8A, 0x3A52A71D, 0xC5591AAA, 0x40D5223A},
2627 {0x1737F067, 0x1E689E70, 0x28E269E9, 0x5A15CA2C, 0x22986FB8, 0xF7A13A01, 0x38F5DD92, 0x7BF377E3} } ,
2628 { {0x85C66F81, 0x27D0E4AA, 0x5FD0112C, 0x1F6FAAC5, 0x6FEED82E, 0x5C2B4F5B, 0x90872272, 0x0615A183},
2629 {0xBA11E5D1, 0xA7B91142, 0xC30E3E4E, 0xA65DB9DC, 0x87FF664A, 0x8A6A7723, 0xE8BC52E3, 0x7951667E} } } ,
2630 { { {0x591E6ED4, 0xD616F4ED, 0x900DB7DF, 0x3652F9C9, 0xC02C8144, 0xA4A5DD8F, 0xD35EC6A7, 0x559A955D},
2631 {0x03697CAE, 0x8FCC0570, 0x3441D2DE, 0x55B83B6F, 0x00BE9DEE, 0x2224DCC2, 0x134E82DA, 0x0F7B0DC0} } ,
2632 { {0xD2CB29A9, 0xCD1D860B, 0xCF09C4C8, 0x45CDCC13, 0x3B60F27E, 0x529C8E0F, 0x2242E4B8, 0x8A28DC44},
2633 {0x6625F5EB, 0x354F684B, 0x3B2E2BBD, 0xDAF3F87C, 0x05F6C6E5, 0x02C20988, 0x6D39AFB8, 0x14F5E420} } } } ;
2634 static const fp12_t var_expected = { { { {0xEB2EC047, 0x917A1C5E, 0xEE8D2302, 0xBC9102EC, 0xAC763D8B, 0x8174F9CC, 0x67E53137, 0x05675C1F},
2635 {0xA5BDFAE1, 0x412A33D5, 0x2FDC4894, 0xF4FC02F2, 0x8CF15E22, 0x1DB9238D, 0x1BEEE5E3, 0x5E125D2C} } ,
2636 { {0x1B614C0E, 0xCF1F0CF3, 0xBA24DFC9, 0x48A1DD08, 0x64337C42, 0xB3EB81D1, 0x8EA7833F, 0x2B13CCD0},
2637 {0x5F235457, 0x8BE97DC7, 0x1D171966, 0x86DCE2F8, 0x3EB93B8D, 0x8F61C0DA, 0x52D33A1E, 0x37D8B89A} } } ,
2638 { { {0x7D624A05, 0xC76D5F80, 0xE6E4504E, 0x7E4CCADC, 0x2E2E47DD, 0x013340A3, 0xF89F58E2, 0x59743BD8},
2639 {0x8A09E4D2, 0xD02F4799, 0xAA84BF2E, 0x00222CF0, 0x40B0548D, 0x586930B2, 0x0CD495BA, 0x5CE78F88} } ,
2640 { {0x92E02CE5, 0xF88A1BFD, 0xF6ECB6E1, 0xDD50ACB0, 0x89105236, 0xE8491662, 0x23225A12, 0x125E42D6},
2641 {0xA7B3F533, 0x8EF28FCD, 0x5B5556ED, 0xE3DAC9BF, 0x160DF9E5, 0xFD94C400, 0xC8592428, 0x4A698FEE} } } ,
2642 { { {0x3BD86D04, 0xE3241FCA, 0x3CEDB8E1, 0xF91BFE42, 0x4C82158F, 0xE426FA1E, 0xCEC6C2EA, 0x905B80F5},
2643 {0x98AB5B5B, 0x46AE3A30, 0x8146409F, 0xC5C73390, 0x910D81DC, 0xF7B3BC61, 0x46024E2C, 0x3C351E8E} } ,
2644 { {0xD0B7081D, 0x0AD41D5E, 0xBBDE4737, 0x1979DD65, 0xF7C72685, 0x83E746C7, 0xBDBFE7CA, 0x2247600B},
2645 {0xB8EDE919, 0x79CE0DB0, 0x22640762, 0xEC0074A1, 0x357FA8D0, 0xD2AC9181, 0x461834AD, 0x837624C4} } } } ;
2647 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1653 a000");
2648 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1654 a001");
2649 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1655 a010");
2650 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1656 a011");
2651 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1657 a100");
2652 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1658 a101");
2653 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1659 a110");
2654 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1660 a111");
2655 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1661 a200");
2656 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1662 a201");
2657 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1663 a210");
2658 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1664 a211");
2661 static const fp12_t var_a = { { { {0x3F9B3177, 0x8C834E5A, 0xD70CDBDB, 0xB85B2B02, 0x5297607B, 0xD1987844, 0x530C7927, 0x264A24AF},
2662 {0x4A92D21A, 0x3C36A18B, 0xE296BC64, 0x75B8BBB3, 0x578F4D9E, 0xC8A7F9D5, 0x6AFB2381, 0x448A63A5} } ,
2663 { {0xCD01EB3B, 0xD3D9B544, 0xCEEA1906, 0x296FEFB8, 0x5FFEBB0C, 0xD3026777, 0x3BC9D1E8, 0x34799B34},
2664 {0xDDE9A566, 0x8418217C, 0xC1465BD8, 0xF2C20473, 0x48E8AF55, 0x42833DBA, 0xC184CED6, 0x81A01D27} } } ,
2665 { { {0x86ED3276, 0xA6B6565A, 0x4353A071, 0x5D001B3F, 0xAEB0F2E7, 0x4D2FA5AB, 0xAE043DF3, 0x42B036BD},
2666 {0x2D47CE4F, 0x2F99BEE3, 0xDE0CFC8E, 0x491FBEC4, 0x14359B55, 0x7F776A3C, 0x27EE9AA2, 0x356695FF} } ,
2667 { {0x40739691, 0x416A90B3, 0x5878E85B, 0xA6744A80, 0x17F438AD, 0x6355C15E, 0xC3B64268, 0x065D9BE1},
2668 {0x87A28B4E, 0x9D653337, 0x7D83A954, 0xB5C940CE, 0x38331639, 0xD28D58B7, 0x8FE7B0F2, 0x0976C954} } } ,
2669 { { {0xBFE210AE, 0x2AC368E8, 0x76B07BFA, 0x2583D687, 0xBA319170, 0x92D4FAD9, 0x4C5B1BE0, 0x1D2B3AB3},
2670 {0x1575BC32, 0x715769CB, 0x4EE8AE8D, 0x9A2D44C5, 0x1F176B71, 0xD0654C19, 0xEFE9AC20, 0x2B52897B} } ,
2671 { {0x93527149, 0x1F6A9841, 0x96749063, 0x856F2B49, 0x499D6DED, 0x890E2014, 0x617AA161, 0x48595B30},
2672 {0x693AB36B, 0x893C5D63, 0xC24C0EB0, 0xD6F8742E, 0x6AE49D1E, 0x3FC5936A, 0x3CFFD3F1, 0x3847E98B} } } } ;
2673 static const fp12_t var_b = { { { {0xC7661084, 0x235E5CCC, 0x48E12508, 0x8C3322B2, 0x0DB707BE, 0x3C31BA9C, 0xD53DA67C, 0x18D2BDEE},
2674 {0x8F6250E8, 0x07410C25, 0xDA891E3F, 0x675B2E20, 0x59D7C8A3, 0x34C8806C, 0x2E804D4A, 0x9A942285} } ,
2675 { {0x2F2692C7, 0x749822A4, 0xB0D50645, 0x8C75346F, 0xDF698259, 0xCE8CBD18, 0xBE77D173, 0x43372F6F},
2676 {0x11222679, 0x4DFFF6AB, 0x359A6679, 0x5B8DF64E, 0xC12A2197, 0x05F1E520, 0x355A49C4, 0x86FC9203} } } ,
2677 { { {0x9018EAE2, 0x96D0FB12, 0x3495584F, 0xA66DA4AB, 0xE003C241, 0xBED987B8, 0xF1C3F2B2, 0x63A2B639},
2678 {0xDD1FC961, 0xFB353A7A, 0x2B37D980, 0x40BE78D9, 0xB25D5EC7, 0x4018F06A, 0xC8003680, 0x9EBBDBEE} } ,
2679 { {0x7BC81ABC, 0x49D83704, 0xCEC5FEB8, 0x8420EEC2, 0xC1DD5D64, 0xB9124EEE, 0x8306B945, 0x3D04B1C9},
2680 {0xC1935089, 0xF21FB293, 0x824E23DF, 0xCF5BCB78, 0x297531A9, 0xB7FC735B, 0x5D3FE786, 0x0BC66C67} } } ,
2681 { { {0x5BBA6BEC, 0x8E055101, 0xE3686A61, 0x029AD841, 0x1EBFD199, 0xAF9F356B, 0x8824B8ED, 0x194D1F97},
2682 {0xC942F5F3, 0x5472B3B9, 0x3EC94C80, 0x01B44F70, 0x64AF3A62, 0x7AB3A7B8, 0xA8A8BECE, 0x386C2F8C} } ,
2683 { {0xDF6772CF, 0xA530773F, 0x18A31368, 0x368E5933, 0xD5903E24, 0xD3C6C1ED, 0x5672CBA6, 0x7F11335D},
2684 {0xE2235AB4, 0x837D946D, 0xD1638E91, 0xFB737DB2, 0x8B70C11E, 0xDF56C7C3, 0x5EC7CEDA, 0x11D6F716} } } } ;
2685 static const fp12_t var_expected = { { { {0x783520F3, 0x6924F18D, 0x8E2BB6D3, 0x2C280850, 0x44E058BD, 0x9566BDA8, 0x7DCED2AB, 0x0D7766C0},
2686 {0x1D5CB5CD, 0x33E41F17, 0xDC857D6C, 0x216F3A33, 0x519A0EB0, 0x8F3FD5D4, 0x7C99B260, 0x6409DFE2} } ,
2687 { {0x00078D0F, 0x5E301C52, 0xF28CF208, 0xB00C67E9, 0xD477C267, 0xFFD606C9, 0xBD70DC9D, 0xAB560A86},
2688 {0x2EF3B388, 0x3506B483, 0x6023D4A6, 0xAA45BAC6, 0xDBA11773, 0x37F1B504, 0xCC49613B, 0xB4B729E6} } } ,
2689 { { {0x59007C2F, 0x0ED3E4F9, 0xE3362769, 0xC9A42334, 0x228FBA5A, 0x89B67A5E, 0xFC5F2769, 0x99211F45},
2690 {0xB2543989, 0x33530E19, 0x874D0254, 0x1B72F28C, 0xB5BAC643, 0x3ABED63C, 0xA00D404B, 0x50BE58D2} } ,
2691 { {0x26D7B070, 0xF680E360, 0x5E2AC8E9, 0x3565085E, 0xA9F964FE, 0xA5A3CEDA, 0x80CE654B, 0x836C88DA},
2692 {0x283B6F60, 0xAA340A55, 0xCFAD64BB, 0xF97F21F6, 0x62A06E44, 0x15F141C7, 0x72C6A595, 0xB7C3FBAF} } } ,
2693 { { {0x6427A4C2, 0x9CBE17E7, 0x93481198, 0x22E8FE45, 0x9B71BFD7, 0xE335C56E, 0xC43662F2, 0x03DE1B1B},
2694 {0xAE5EFADA, 0x1BD33FC2, 0xE4974154, 0xAB8AA1F5, 0x0E4ABAC4, 0x511200CC, 0x875FC97B, 0xACF9F8B1} } ,
2695 { {0x16173315, 0x7928AAB3, 0x52495C41, 0x61F27EB7, 0xC7EFB97E, 0xB0A7BA91, 0x4B26B1E3, 0x835BC695},
2696 {0x871758B7, 0x05BEC8F5, 0xF0E8801F, 0xDB84F67B, 0xDF73DBFF, 0x606ECBA6, 0xDE380516, 0x2670F274} } } } ;
2698 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1665 a000");
2699 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1666 a001");
2700 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1667 a010");
2701 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1668 a011");
2702 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1669 a100");
2703 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1670 a101");
2704 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1671 a110");
2705 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1672 a111");
2706 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1673 a200");
2707 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1674 a201");
2708 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1675 a210");
2709 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1676 a211");
2712 static const fp12_t var_a = { { { {0xF30F7AD3, 0x11C4F4FC, 0x510C8935, 0x7AE98F46, 0x032DF573, 0x94BC070A, 0x8103D030, 0x3A1AC0B4},
2713 {0xBC0828DB, 0x1CE85587, 0x3B555821, 0x708D0059, 0x5783753A, 0x68FB8DC1, 0x740AE18F, 0xAFFAAE65} } ,
2714 { {0xC4867FF3, 0x91CCF741, 0xB5FFF226, 0x686082A8, 0x052F5564, 0xA3B306A7, 0xDFFA92BC, 0x52F4316E},
2715 {0x00BC9F96, 0x03691A51, 0xC6F03495, 0xE01BF79A, 0xCA07FF74, 0xF5F5D9FC, 0x9FDC3A7A, 0x0D613DD7} } } ,
2716 { { {0xBE05C1E7, 0x2709BFA5, 0xA8EB0A61, 0xD9FFA10A, 0x78C3FFAD, 0xF2EC23C2, 0x85DAF3F0, 0x10810594},
2717 {0x1D8367E7, 0x582D492E, 0x4AA414CB, 0x579FF8D1, 0x74241461, 0x93B5407F, 0xD52C5DEF, 0x4D7FD3FD} } ,
2718 { {0x2FCFAD3E, 0x160CA148, 0xFA29A748, 0xD1AA63EE, 0xE495D4D6, 0xB7676DDD, 0x88B45E94, 0x4272277C},
2719 {0x60154F1F, 0x7D3D7F89, 0x0CF1759A, 0x0D373D6F, 0xD2655DD9, 0x91EECDE5, 0x0A22838A, 0x19E3F276} } } ,
2720 { { {0xC5B06E0E, 0xDB072945, 0x3A30184E, 0xD0F2FFF2, 0x1029F517, 0x5970D3B5, 0xFBF8C784, 0x2728F2E0},
2721 {0x55976692, 0x137CA0DA, 0x9233BE2A, 0x7C421728, 0xA271633C, 0x820B973C, 0x738A03B3, 0x59D62FD4} } ,
2722 { {0x4CC3F774, 0x384134AE, 0xB70B3F30, 0x5E3C2EF3, 0x035DB422, 0x8D74E12C, 0x77053D8E, 0x0DCF7844},
2723 {0xC96AF428, 0xF9B5426B, 0xA0F3A613, 0x5DF1034E, 0xE0D6C795, 0x363D9569, 0x852B89A3, 0x36EF5812} } } } ;
2724 static const fp12_t var_b = { { { {0x30FBBD8C, 0x30E0D662, 0xD79AD3B0, 0x51927600, 0x5BC3459B, 0x458E3B8B, 0x0DFC5186, 0x3D388DB5},
2725 {0xCAFE7E9A, 0x53B2FC4B, 0x3C349FB3, 0xA9D3FF8B, 0xC9DD51C7, 0xBE8A2342, 0xF611FFEF, 0x1BA0A269} } ,
2726 { {0x21B7EBA0, 0x0311F371, 0x405BBB7A, 0xC32DCC75, 0xF58D0AB8, 0xB1337770, 0x14EA5DBC, 0x3F5B2EC6},
2727 {0xA59FEABE, 0x7F42997B, 0xAAC32021, 0x99691FE2, 0xDB57CF4E, 0x6BE1203C, 0xBAE1309F, 0xAEC7D6BF} } } ,
2728 { { {0x6CD0ABC2, 0x31FE47DF, 0xA936A20C, 0x210E64A2, 0x41414124, 0x3EACC78C, 0x633CBB91, 0x98F4B860},
2729 {0x841A7707, 0x2163A4D0, 0x9C141A14, 0x92A1BF57, 0x7E8D3FD0, 0xD2C45A80, 0xC5074304, 0x212CE982} } ,
2730 { {0x177DB06A, 0x7D39A9AD, 0xBD7AB5CA, 0xCA34281C, 0xA21DD80C, 0xAC3BA90D, 0x0A7307E7, 0x22B8E210},
2731 {0xF93ED5B0, 0x18088E48, 0x7E68A95C, 0x74B05581, 0x579683C3, 0xBCDE6453, 0x0E822AE2, 0x0E5EAB45} } } ,
2732 { { {0x1913B1D2, 0xE50F3902, 0x2F4FDFCC, 0xE3F5C91D, 0x03A52698, 0xD7577597, 0x22C45A1D, 0x0EBB246A},
2733 {0xAFA54BBC, 0x84934E2A, 0x825B10CF, 0x2535D008, 0x50DF7FF9, 0x3FCF823B, 0x0A7E4549, 0x27CD4DB9} } ,
2734 { {0xF7654422, 0xAE878EF6, 0x29788ED5, 0x4D95BAD1, 0x460594CD, 0x006F1563, 0x3EC02E80, 0xB7E62F90},
2735 {0xF22CF052, 0xC89D4CBF, 0xEC045BBD, 0xDD10E59E, 0xE57F74D2, 0xABBBC737, 0xAC1B3275, 0x12A71B96} } } } ;
2736 static const fp12_t var_expected = { { { {0x243FF1E2, 0xDFD2A84C, 0x4DE994CB, 0x3C68C5E6, 0xFB4D398D, 0x4A8E27E9, 0xB3265AD3, 0xB6F5D1C1},
2737 {0xF109AA41, 0xC935593B, 0xFF20B86D, 0xC6B900CD, 0x8DA62372, 0xAA716A7E, 0x7DF8E19F, 0x945A0BFB} } ,
2738 { {0xA2CE9453, 0x8EBB03D0, 0x75A436AC, 0xA532B633, 0x0FA24AAB, 0xF27F8F36, 0xCB1034FF, 0x139902A8},
2739 {0xBD48E973, 0x83150A86, 0xF0A4F3BA, 0x59C48458, 0x4292B9DB, 0x8575162B, 0x2519E604, 0x18AD05DA} } } ,
2740 { { {0xB3614AC0, 0xF3FA0177, 0xD42C479B, 0xCC02E908, 0x8B65483E, 0xAF9FB8A1, 0x62BD1488, 0x319FEBF6},
2741 {0x9968F0E0, 0x36C9A45D, 0xAE8FFAB7, 0xC4FE3979, 0xF596D490, 0xC0F0E5FE, 0x10251AEA, 0x2C52EA7B} } ,
2742 { {0x1851FCD4, 0x98D2F79B, 0x3CAEF17D, 0x07763BD2, 0x4277FCCA, 0x0B2BC4D0, 0x7E4156AD, 0x1FB9456C},
2743 {0x66D6796F, 0x6534F140, 0x8E88CC3E, 0x9886E7ED, 0x7ACEDA15, 0xD5106992, 0xFBA058A7, 0x0B854730} } } ,
2744 { { {0xAC9CBC3C, 0xF5F7F043, 0x0AE03881, 0xECFD36D5, 0x0C84CE7E, 0x82195E1E, 0xD9346D66, 0x186DCE76},
2745 {0xA5F21AD6, 0x8EE952AF, 0x0FD8AD5A, 0x570C4720, 0x5191E343, 0x423C1501, 0x690BBE6A, 0x3208E21B} } ,
2746 { {0xB78AE7ED, 0x88A82F68, 0x620A8FA1, 0x23B820C3, 0x113AA90A, 0x88662834, 0x7863EB37, 0x0FFCE776},
2747 {0xD73E03D6, 0x3117F5AB, 0xB4EF4A56, 0x80E01DAF, 0xFB5752C2, 0x8A81CE31, 0xD910572D, 0x24483C7B} } } } ;
2749 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1677 a000");
2750 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1678 a001");
2751 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1679 a010");
2752 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1680 a011");
2753 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1681 a100");
2754 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1682 a101");
2755 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1683 a110");
2756 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1684 a111");
2757 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1685 a200");
2758 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1686 a201");
2759 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1687 a210");
2760 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1688 a211");
2763 static const fp12_t var_a = { { { {0x028081B6, 0x56B5B7B6, 0x64CCD94D, 0x7393BB08, 0xDCAAF47A, 0x9321DF79, 0x34F006EB, 0xA06B5A30},
2764 {0xB2D22999, 0x840A0E43, 0x1556748B, 0x2AF70CA5, 0x27050207, 0x8C636C5A, 0x6BC2FCC3, 0x756CBE34} } ,
2765 { {0x0468AD61, 0xA0317755, 0x31B631EB, 0xDBD5C415, 0xCEBE22EF, 0x450D71DE, 0x996EA1C8, 0x18D60FC9},
2766 {0xF7C87A17, 0x9A5C9183, 0x1B80B57A, 0x9DB5F4E8, 0x6BC7DA20, 0xBDA65B37, 0x3BF3825B, 0x022E09C4} } } ,
2767 { { {0x90FBF4C3, 0x8AC35CF7, 0x7252058B, 0x97A2BF90, 0xB5405BC2, 0xF91D0E50, 0x41F2B256, 0x9615341F},
2768 {0xCF292A8F, 0x2B6D73FD, 0x029F4A41, 0x301E5934, 0xF0182146, 0x4F7F984A, 0xD1354D65, 0x25805FF0} } ,
2769 { {0x2D037790, 0x581AA3E6, 0x4E12E348, 0x887B441F, 0x710952D5, 0xEEDD47AD, 0xC2E51324, 0x75471AC8},
2770 {0xACED3BF0, 0x9669CB68, 0x8D85FE4E, 0x54A9665A, 0x2CF971AE, 0x856CE0DA, 0xE282ABE2, 0xB31EA471} } } ,
2771 { { {0x2ABEF59E, 0x89333884, 0x7FB982CB, 0x19638ED5, 0x74685F4A, 0x91451842, 0xF1EF533E, 0x380C6D8E},
2772 {0xF6356364, 0x7E8588C7, 0xC2CC53B4, 0x4B63AA2C, 0xE1F86063, 0xFD2351F0, 0xE484EC78, 0x67CBF462} } ,
2773 { {0x52A7D944, 0xE1D08AA3, 0x55DF4C16, 0xCFFF70D0, 0xC8AB636E, 0x988B4A15, 0x6388BF44, 0x2EA0A9FD},
2774 {0xDBCEFBF7, 0xC356F0AF, 0x3CDC1299, 0xDF300BC1, 0x61D703F9, 0x84618E1C, 0x8B169F6B, 0x25A3385C} } } } ;
2775 static const fp12_t var_b = { { { {0xD62805DA, 0x5E33A98F, 0xDF95EADD, 0xAC867673, 0xB055EB74, 0xEA140634, 0xABE40EE4, 0x14D2F47D},
2776 {0x6926FA6F, 0x873FECDD, 0xFFDDC2FD, 0x0A05F26D, 0xE8EB3D7F, 0x2C172260, 0x8BFBA12C, 0x554B605A} } ,
2777 { {0x637F3890, 0x40806026, 0xC1629D54, 0xC7F00ED6, 0x098B4419, 0xB7A4E0E8, 0x22A7AFDC, 0x732B3D40},
2778 {0xED472E75, 0x2A6C76B1, 0x51874DFD, 0x0483BE6E, 0xF4D61A2D, 0x45DDAA01, 0xDC4E10F1, 0xA19564CB} } } ,
2779 { { {0x239EFF9E, 0x0BD1716D, 0x388F549A, 0x538BD0C2, 0x4AD99919, 0x7A6CE248, 0xD9388F98, 0xA080FCBC},
2780 {0x917F30E8, 0x4FF4D748, 0xE1F0D8FC, 0x357D274A, 0xED6FE9F7, 0x64A1F625, 0x70B32959, 0x36FC0C2B} } ,
2781 { {0xA3CD4C34, 0x7FEEDC25, 0x3DCFA215, 0xFCE1EC81, 0x227712E6, 0xE1FB7B67, 0xE8AB6568, 0x5EE8986E},
2782 {0x4908A124, 0xD395003E, 0xF43DD2E5, 0x8DDAE75E, 0xCC0066D8, 0x4E9BE5F5, 0x7D401707, 0x6F94680F} } } ,
2783 { { {0xEFA48D89, 0x9FB62B81, 0x613A6713, 0x87F4A17D, 0xDCA7E3C1, 0xE0700469, 0x22749B15, 0x3CE51257},
2784 {0xFC1F5EA5, 0xDA6EBC4C, 0x0F3ED4BE, 0xCD7B9AEC, 0xD33EA44B, 0x20939634, 0xF9987E9F, 0x84D916B7} } ,
2785 { {0x79B16911, 0xA7D284C7, 0xEFF2A5FB, 0x37222E06, 0xFBF71866, 0x9F66F6BC, 0x5C52FC83, 0x37586EA1},
2786 {0xF667C113, 0xC674F653, 0x77F41871, 0x2E649EEB, 0x7E0F08A6, 0x2C5AFE79, 0xD8561FB5, 0x1DEE3C3A} } } } ;
2787 static const fp12_t var_expected = { { { {0x2C587BDC, 0xF8820E26, 0x8536EE6F, 0xC70D4494, 0x2C550905, 0xA90DD945, 0x890BF806, 0x8B9865B2},
2788 {0x49AB2F2A, 0xFCCA2166, 0x1578B18D, 0x20F11A37, 0x3E19C488, 0x604C49F9, 0xDFC75B97, 0x20215DD9} } ,
2789 { {0x0315A96C, 0x5E9FA0E0, 0x44CB73DE, 0x26F761DF, 0x1915688B, 0x88C8ED62, 0xB6E5CE14, 0x5FBE714B},
2790 {0x6CAD803D, 0x6EDEA483, 0x9E7146C4, 0xAC43E31A, 0xCAD449A8, 0x73290DA0, 0x9FC44D93, 0x1AAC43BA} } } ,
2791 { { {0xCF8929C0, 0x7DE0753B, 0x0E3A9038, 0x57289B6F, 0xBE494C5E, 0x7A108873, 0xA8D8FEE7, 0xAFA7D624},
2792 {0x9FD62E42, 0xDA672666, 0xF526508B, 0x0DB2DE89, 0x568AC104, 0xE63DFE90, 0xA0A10034, 0xA897F287} } ,
2793 { {0x89362B5C, 0xD82BC7C0, 0x10434132, 0x8B99579E, 0x4E923FEE, 0x0CE1CC46, 0xDA39ADBC, 0x165E8259},
2794 {0x63E49ACC, 0xC2D4CB2A, 0x99482B68, 0xC6CE7EFB, 0x60F90AD5, 0x36D0FAE4, 0x654294DB, 0x438A3C62} } } ,
2795 { { {0x9D469CB0, 0xE86B96B3, 0xF2F6FAFE, 0xA48099F8, 0xEBA3053D, 0xAC357043, 0x0F999451, 0xB53AF9FA},
2796 {0x5C42395A, 0xA305562C, 0x88055E3C, 0x90F9BBE1, 0x629C45CC, 0xD7F01827, 0x2B0B4A02, 0x9D067C6D} } ,
2797 { {0x3B22A4CE, 0x38EC8F8D, 0x3A648562, 0xABEEEF6A, 0x2096D4BD, 0xF484AFC4, 0x47549EE9, 0xB15BDA1E},
2798 {0xE5673AE4, 0xFCE1FA5B, 0xC4E7FA27, 0xB0CB6CD5, 0xE3C7FB53, 0x58068FA2, 0xB2C07FB6, 0x07B4FC21} } } } ;
2800 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1689 a000");
2801 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1690 a001");
2802 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1691 a010");
2803 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1692 a011");
2804 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1693 a100");
2805 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1694 a101");
2806 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1695 a110");
2807 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1696 a111");
2808 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1697 a200");
2809 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1698 a201");
2810 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1699 a210");
2811 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1700 a211");
2814 static const fp12_t var_a = { { { {0x2D73FBA9, 0x1B26BF13, 0xD11E1A97, 0x615ACEA7, 0x9D9C4D50, 0x8E2ABB12, 0x2D0805E0, 0x18B36892},
2815 {0xEAAF0C75, 0x348414AB, 0x31E3FDA5, 0x614E3817, 0x86583F5D, 0xF5DAF27D, 0x0F516783, 0x542CF9A4} } ,
2816 { {0x7322B638, 0xBDD48A25, 0x803799D1, 0x7AB6DCA0, 0x764D6BB9, 0x69C258C8, 0xE8A7B1B4, 0x747ECEEC},
2817 {0x80401B63, 0x090A5837, 0x832EB08C, 0xE798DC97, 0xECDA2751, 0x5AC094F9, 0x54E6FDF7, 0x220455AF} } } ,
2818 { { {0x1C63D53C, 0x8D02B0A4, 0x35B1477E, 0x6C5A0F14, 0x79766E14, 0x1BE62541, 0xE380CC1D, 0x4E56708F},
2819 {0x275D0577, 0x64696074, 0x45914E90, 0xCC8A9672, 0x42DAD852, 0x664F396B, 0x9A71597B, 0xAB50E387} } ,
2820 { {0xD46191A8, 0xCB26D838, 0x976B6602, 0x52C16EC3, 0x8183A50F, 0xD78A532B, 0x72F2B34F, 0x2F2604F4},
2821 {0x2B3BC9B5, 0xA6607CDB, 0xBF5AF6D6, 0x49898F40, 0x04815D69, 0x6C928E8E, 0xD80723FD, 0x97852EFE} } } ,
2822 { { {0x26A4B5EF, 0xFB1BE37F, 0xB5021284, 0x714CBF8A, 0x58AF6B94, 0x0FF41232, 0xEBBCC43C, 0x26BA06C4},
2823 {0xB8D10BCC, 0x721991C9, 0x9FBE1BCC, 0xC4A83BD4, 0x9CAFFAE0, 0x01693108, 0x02C699E0, 0x153F3ADF} } ,
2824 { {0x65B6D633, 0xD9DA51F6, 0x3171D32F, 0x9B2D116C, 0x583FE9F6, 0x6BA3A6D9, 0xE3E84476, 0x6BB13CFD},
2825 {0xC182F805, 0xA5E39664, 0x2977349B, 0x2E922B2C, 0x023DF93A, 0xE77CB5BC, 0x4DBDFC4F, 0x7D342646} } } } ;
2826 static const fp12_t var_b = { { { {0xD83FFEFA, 0x6A3400A8, 0xF5BB8C7B, 0x7142F01A, 0x1F7C13E4, 0xE6A83CB3, 0xAFE89C4C, 0x17496544},
2827 {0x2C391710, 0x63EFE462, 0xE3703E22, 0x4868FEA9, 0x77E52F41, 0x3F88E71F, 0xAE0AB4B0, 0x0A0383B6} } ,
2828 { {0x8E8E1276, 0xEE3709AD, 0x78E64EFF, 0x1E59DDB6, 0xE158C6DC, 0xAE721067, 0xE316F739, 0x6EB1DE4D},
2829 {0xA8EA5D26, 0x0DB327FB, 0xE9BEAF94, 0x5E021D81, 0xCCFB2689, 0x532FEB1A, 0x5B5F74C0, 0x1E8318E5} } } ,
2830 { { {0x7589B42B, 0xE697FA70, 0xA0F08B15, 0xFB6567B6, 0xBAD71DA9, 0x33FD55F8, 0x156F2DB6, 0x393B7C06},
2831 {0xC38E3826, 0x445026F8, 0xBD9842A0, 0xE926955B, 0xBFC8FB94, 0xB62B930C, 0x88B4213D, 0xA3F55D1C} } ,
2832 { {0xB8ACF00F, 0x13A9A7A0, 0x929DF96C, 0xA125176A, 0x06BC5E25, 0x27436D62, 0x1AFC13C3, 0x81FB9A31},
2833 {0xE7EEAF90, 0xE8A41D4F, 0x51AA1396, 0x8E1A9B30, 0xF85BC9C9, 0x3D5D2AB7, 0x6A9BB8C8, 0x0794123A} } } ,
2834 { { {0xC5D94E57, 0x7672D68B, 0xB4C3081A, 0xEAAC712B, 0x635AA92E, 0x7B4DDE30, 0x07281B48, 0x905B1B0C},
2835 {0xE823740E, 0x1A13274E, 0x553E2C76, 0x6D78FE3D, 0x5DE50CE3, 0xEE595868, 0x360A5BBC, 0x276F508C} } ,
2836 { {0xE7FB41D2, 0x51CEC6DA, 0xD524F0ED, 0xDBE711F0, 0x5A8576AD, 0x63E31CE3, 0xEFED4AB2, 0x3395401D},
2837 {0x0E8D2501, 0x3BEBA951, 0x0A413495, 0xBF67D6D5, 0x6919055C, 0x1C9E5BC3, 0xE10F54EB, 0xAE9C1AF5} } } } ;
2838 static const fp12_t var_expected = { { { {0x5533FCAF, 0xB0F2BE6A, 0xDB628E1B, 0xF017DE8C, 0x7E20396B, 0xA7827E5F, 0x7D1F6993, 0x016A034D},
2839 {0xBE75F565, 0xD0943049, 0x4E73BF82, 0x18E5396D, 0x0E73101C, 0xB6520B5E, 0x6146B2D3, 0x4A2975ED} } ,
2840 { {0xE494A3C2, 0xCF9D8077, 0x07514AD1, 0x5C5CFEEA, 0x94F4A4DD, 0xBB504860, 0x0590BA7A, 0x05CCF09F},
2841 {0xD755BE3D, 0xFB57303B, 0x997000F7, 0x8996BF15, 0x1FDF00C8, 0x0790A9DF, 0xF9878937, 0x03813CC9} } } ,
2842 { { {0xA6DA2111, 0xA66AB633, 0x94C0BC68, 0x70F4A75D, 0xBE9F506A, 0xE7E8CF48, 0xCE119E66, 0x151AF489},
2843 {0x63CECD51, 0x2019397B, 0x87F90BF0, 0xE3640116, 0x8311DCBD, 0xB023A65E, 0x11BD383D, 0x075B866B} } ,
2844 { {0x7DE0D634, 0xB66BBA49, 0xD9454BDD, 0xC4AE03F9, 0xCEA9D09E, 0xABA74234, 0x98157BB5, 0x673E0985},
2845 {0x434D1A25, 0xBDBC5F8B, 0x6DB0E33F, 0xBB6EF410, 0x0C25939F, 0x2F3563D6, 0x6D6B6B35, 0x8FF11CC4} } } ,
2846 { { {0xC2F79C33, 0x839796A4, 0xD4B6E9B1, 0x99B1FAFF, 0x49374C1A, 0x9006906D, 0x24B3851C, 0x50728A7B},
2847 {0x32D9CC59, 0x56F4F42C, 0x1EF7CE9D, 0x6A40EA38, 0x92AD77B2, 0x0E70350B, 0x0CDB1A4C, 0xA7E38915} } ,
2848 { {0x7DBB9461, 0x880B8B1B, 0x5C4CE242, 0xBF45FF7B, 0xFDBA7348, 0x07C089F5, 0xF3FAF9C4, 0x381BFCDF},
2849 {0x1522079F, 0x68E676C5, 0xF3ADDF4D, 0x823C00F7, 0xED077D92, 0xC63EB663, 0xACCD838D, 0x88ABAA12} } } } ;
2851 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1701 a000");
2852 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1702 a001");
2853 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1703 a010");
2854 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1704 a011");
2855 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1705 a100");
2856 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1706 a101");
2857 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1707 a110");
2858 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1708 a111");
2859 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1709 a200");
2860 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1710 a201");
2861 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1711 a210");
2862 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1712 a211");
2865 static const fp12_t var_a = { { { {0x33B1641C, 0x21255993, 0x57156E08, 0x067F94A5, 0x04CEA3EA, 0x457A9A1C, 0x2BC194AB, 0x62A5C8F7},
2866 {0x26A0B64B, 0xED7B6205, 0x4E866184, 0xD72BCEE2, 0x34019776, 0x629CC960, 0x21241CE7, 0x0EC7F681} } ,
2867 { {0x4A3C0696, 0xAD38FA8D, 0x0EA5F7D1, 0xB8AA76AC, 0x6E903627, 0xE32535B8, 0x8C8FA65B, 0x3F02A6C6},
2868 {0x5D92E63E, 0x10C8FEB1, 0xBB75C7FD, 0x800E127C, 0x0C36B81F, 0x8AADB191, 0xA9135E59, 0x2C20B540} } } ,
2869 { { {0xC2B86890, 0xF1466B62, 0xDE81423D, 0x04B69FC2, 0x302DE524, 0x1EE7D682, 0xE9BD5BF2, 0x3F43B2D5},
2870 {0xC17AFA59, 0xC6DEC594, 0x557AB92E, 0xB5A77358, 0x3028D40B, 0xA6A02A2D, 0x30D3F20C, 0x71A29EB5} } ,
2871 { {0xE5037229, 0x30D1761B, 0x9517613D, 0xEFCDC7A6, 0xD51F8743, 0x2FA11F6E, 0x5720F7F5, 0x32D26B2F},
2872 {0x9E4D8FC9, 0x6FD9D405, 0x62CA7F9E, 0xAD7F2EC3, 0x1CD1B69C, 0x082B5131, 0xABEEDDF6, 0x85B4C3E0} } } ,
2873 { { {0x029B6C5A, 0xEA4A2CC2, 0xECB82F16, 0xE5F720BC, 0xCC13F638, 0x825F7205, 0xAB0E20BE, 0x9CF6BB91},
2874 {0x82AC4BAE, 0xACEBB57E, 0x66B720AE, 0xE19E4467, 0x8D83C12B, 0x40F88DE5, 0x4DD9219F, 0x52B9AFCB} } ,
2875 { {0x828D238D, 0xE27EA1E7, 0x62939A0B, 0x5A515470, 0xCB5260E9, 0xCF8F1A80, 0x390EA498, 0x10FE7A4A},
2876 {0x39B6A5B3, 0x5F73DBB4, 0x27FE1DDD, 0x0C1E1FEB, 0x81BBF38A, 0x1FBA7F5A, 0x8D3D48A7, 0x00A0202B} } } } ;
2877 static const fp12_t var_b = { { { {0x3452C79A, 0x1834F1FA, 0x2FCFF10B, 0x3902B397, 0xC3DDD0D8, 0x044D8E81, 0x57E2E64F, 0x92483A67},
2878 {0x6FAA8788, 0xA91A75D7, 0xD49E47B1, 0x12A4C654, 0xE10C3D64, 0xBAD82D8C, 0xDE2EC21A, 0x3F60235A} } ,
2879 { {0xC5E96146, 0xCD8549B5, 0xF8FFF649, 0x9B896851, 0x90B4B239, 0x51F04052, 0x5A5EE42D, 0xAC856A94},
2880 {0x356B134A, 0xEA9EDB1B, 0x5E0CDA4F, 0x533EBBD3, 0xD0785A55, 0x5B01A6A2, 0xB6F14993, 0x2BD94F8E} } } ,
2881 { { {0x22DAE257, 0x81E10931, 0xA1ECBBF2, 0xD95ED2D5, 0x5188547F, 0x28816208, 0xD7D4B795, 0x25591B66},
2882 {0x176F9510, 0xC23F011D, 0x4625C48C, 0x48960940, 0x0CD79FB7, 0x905B138E, 0x4DB9354A, 0xAEFE7014} } ,
2883 { {0x78FE8A01, 0xF716BCDD, 0x51DF159B, 0x8D81EEA3, 0x618B37AF, 0x3AC56765, 0xA2677A33, 0x07EBA02A},
2884 {0x1E91A408, 0x14C58659, 0xAA832A35, 0x8481F170, 0xECA55A1E, 0x368F2471, 0x93EDD9E7, 0x7C694C26} } } ,
2885 { { {0x3557ECB7, 0x2F6871A4, 0x6CF58430, 0x8E098E27, 0x5E41B2E3, 0x7750B665, 0xD1575520, 0x9C77BDF1},
2886 {0xBBBE4B45, 0x013F526E, 0x64244BBA, 0x12EC4004, 0xFE40ABE8, 0x57BE0668, 0x801CD8E5, 0xB949893F} } ,
2887 { {0x04DA7D49, 0x6999831D, 0x966F8F32, 0xF8B64B91, 0x254FE7FC, 0x11957453, 0xB855C86F, 0x6BDF4EF1},
2888 {0x3916783B, 0xE9583F7C, 0xB8D773C1, 0x2C20D7A5, 0xC12B5F96, 0x4610B0D2, 0x07CC735D, 0x0EA803AB} } } } ;
2889 static const fp12_t var_expected = { { { {0x618AD11D, 0x07DEF14A, 0xFBBD5C44, 0xE08E8DAE, 0x94D35CC6, 0x3C8D6805, 0x13FD8A85, 0x8A712D52},
2890 {0x1922635E, 0x434F75DF, 0x4E5FF91A, 0xD798B52E, 0xA6D7E3C7, 0xA324F83E, 0x831436F5, 0x897B71E8} } ,
2891 { {0xE67ED9EB, 0xDEA23A88, 0xEA1DE0CE, 0x3032BAFA, 0x31BE0DA3, 0x8C9551D1, 0x724F9E57, 0x4C90DAF4},
2892 {0x2827D2F4, 0x262A2396, 0x5D68EDAD, 0x2CCF56A9, 0x3BBE5DCA, 0x2FAC0AEE, 0xF22214C6, 0x004765B1} } } ,
2893 { { {0x9FDD8639, 0x6F656231, 0x3C94864B, 0x2B57CCED, 0xDEA590A4, 0xF6667479, 0x11E8A45C, 0x19EA976F},
2894 {0x0C3799E4, 0x038E4E29, 0xE3CCD3E9, 0x802316B8, 0x7733BE09, 0x11A5730A, 0x233998EB, 0x7CB7CD63} } ,
2895 { {0x6C04E828, 0x39BAB93E, 0x43384BA1, 0x624BD903, 0x73944F94, 0xF4DBB809, 0xB4B97DC1, 0x2AE6CB04},
2896 {0x7FBBEBC1, 0x5B144DAC, 0xB8475569, 0x28FD3D52, 0x302C5C7E, 0xD19C2CBF, 0x1801040E, 0x094B77BA} } } ,
2897 { { {0xCD437FA3, 0xBAE1BB1D, 0x7FC2AAE6, 0x57ED9295, 0x6DD24355, 0x0B0EBBA0, 0xD9B6CB9E, 0x007EFD9F},
2898 {0x291A3504, 0xAA9AECC1, 0xD70AB43B, 0xE1C3B103, 0xE3259EF8, 0xE49AE3E7, 0x0DDB24E2, 0x5383C54E} } ,
2899 { {0xDFDEDADF, 0x77D3A87B, 0xA09BEA20, 0x74ACB57F, 0xF9E502A1, 0xB95A0298, 0xC0D7B852, 0x5F32CA1A},
2900 {0x62CC6213, 0x750A25E9, 0x439E8962, 0xF30EF4E6, 0x14731DA8, 0xD50A2AF3, 0xC58FB172, 0xAC0BBB42} } } } ;
2902 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 1713 a000");
2903 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 1714 a001");
2904 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 1715 a010");
2905 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 1716 a011");
2906 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 1717 a100");
2907 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 1718 a101");
2908 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 1719 a110");
2909 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 1720 a111");
2910 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 1721 a200");
2911 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 1722 a201");
2912 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 1723 a210");
2913 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 1724 a211");
2916 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2917 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2918 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2919 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2920 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2921 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2922 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2923 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2924 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2925 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2926 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2927 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2928 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2929 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2930 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2931 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2932 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2933 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2934 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2935 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2936 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2937 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2938 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2939 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2940 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2941 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2942 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2943 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2944 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2945 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2946 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2947 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2948 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2949 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2950 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2951 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2953 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1725 a000");
2954 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1726 a001");
2955 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1727 a010");
2956 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1728 a011");
2957 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1729 a100");
2958 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1730 a101");
2959 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1731 a110");
2960 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1732 a111");
2961 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1733 a200");
2962 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1734 a201");
2963 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1735 a210");
2964 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1736 a211");
2967 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2968 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2969 { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
2970 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2971 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2972 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2973 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2974 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2975 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2976 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } ,
2977 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2978 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2979 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2980 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2981 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2982 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2983 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2984 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2985 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2986 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2987 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2988 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2989 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2990 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
2991 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2992 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2993 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2994 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2995 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2996 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
2997 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
2998 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
2999 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3000 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3001 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3002 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
3004 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1737 a000");
3005 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1738 a001");
3006 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1739 a010");
3007 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1740 a011");
3008 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1741 a100");
3009 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1742 a101");
3010 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1743 a110");
3011 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1744 a111");
3012 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1745 a200");
3013 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1746 a201");
3014 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1747 a210");
3015 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1748 a211");
3018 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3019 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3020 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3021 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3022 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3023 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3024 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3025 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3026 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3027 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } ,
3028 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3029 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
3030 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3031 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3032 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3033 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3034 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3035 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3036 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3037 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3038 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3039 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3040 { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
3041 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
3042 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3043 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3044 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3045 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3046 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000},
3047 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000} } ,
3048 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3049 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3050 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3051 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3052 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3053 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
3055 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1749 a000");
3056 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1750 a001");
3057 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1751 a010");
3058 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1752 a011");
3059 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1753 a100");
3060 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1754 a101");
3061 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1755 a110");
3062 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1756 a111");
3063 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1757 a200");
3064 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1758 a201");
3065 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1759 a210");
3066 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1760 a211");
3069 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3070 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } ,
3071 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3072 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3073 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3074 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3075 { {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84},
3076 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3077 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3078 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3079 { {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84},
3080 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } } } ;
3081 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3082 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } ,
3083 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3084 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3085 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3086 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3087 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3088 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3089 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3090 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } ,
3091 { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
3092 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } } } ;
3093 static const fp12_t var_expected = { { { {0x3BA796CA, 0x0222EC9D, 0x57104172, 0xD9DCA6BE, 0x583AEC95, 0x093F4729, 0x7FC247AE, 0x0BD8C27B},
3094 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000} } ,
3095 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
3096 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } } ,
3097 { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
3098 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3099 { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
3100 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
3101 { { {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84},
3102 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
3103 { {0x26849DD1, 0xFCCB9D14, 0x7D679DD4, 0x393505E2, 0xFBA79D1F, 0xF2211541, 0xC05C947A, 0x2E3ADC46},
3104 {0x26849DD1, 0xFCCB9D14, 0x7D679DD4, 0x393505E2, 0xFBA79D1F, 0xF2211541, 0xC05C947A, 0x2E3ADC46} } } } ;
3106 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1761 a000");
3107 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1762 a001");
3108 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1763 a010");
3109 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1764 a011");
3110 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1765 a100");
3111 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1766 a101");
3112 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1767 a110");
3113 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1768 a111");
3114 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1769 a200");
3115 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1770 a201");
3116 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1771 a210");
3117 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1772 a211");
3120 static const fp12_t var_a = { { { {0x6148A235, 0x406D8F80, 0xDD369042, 0xF680C4FA, 0xB304FA2B, 0x49B10F14, 0x2B59F39F, 0x8FF05EF0},
3121 {0xB6C499C7, 0xDBEF7647, 0x7EA5CB3B, 0x15EA2318, 0x6701A00F, 0x284EDE0A, 0xD50133D0, 0x96A83F55} } ,
3122 { {0xBCB1D06E, 0x8BA1FEE6, 0x3927D15F, 0x37C9ED72, 0x08732AA3, 0x615ECEFF, 0x121729FD, 0x0023B564},
3123 {0x4711B344, 0x93E2817D, 0x8B495791, 0x8D8504D7, 0xB347618B, 0xEEC42EA5, 0x39DDFF96, 0x8B86F3A2} } } ,
3124 { { {0x98455185, 0x963D04C3, 0xC7E59DED, 0x823DBB2D, 0xAAC1FE7D, 0x1AD4DAC4, 0xFD8425AF, 0x8A700C70},
3125 {0x4D30A9DB, 0x7F2408AF, 0xB908BE73, 0x17D31430, 0xC1344A52, 0x0BC9C0A4, 0xBBC4B3AB, 0x8F5B9349} } ,
3126 { {0x51893F2C, 0x4647E7CB, 0xF6CC3767, 0x93E0F8E2, 0x1F0DAC54, 0x0020F3CD, 0x3F68173D, 0x89C213A2},
3127 {0x0487F860, 0x2C3FB144, 0x80E06A6C, 0x6C3D1FB8, 0x34E5189F, 0xDC5EC093, 0x8801BFB2, 0x5896C876} } } ,
3128 { { {0x458F919B, 0xC18A9568, 0x91D82872, 0xAF309A3F, 0x209E07B8, 0x1861381F, 0xED950FBC, 0x4CA586AF},
3129 {0xDAC179B1, 0xA02180C2, 0x6A958EA6, 0xB0172557, 0x23E591C4, 0xFD69BB2F, 0xCC6E3BB8, 0x432F6736} } ,
3130 { {0x6302AEF4, 0x4803A900, 0x42D6E318, 0xF6886EC9, 0x9C706772, 0xFC9E05B0, 0x80FC7157, 0x62D93150},
3131 {0x3898978E, 0x7523C8A5, 0x28345B65, 0x60A74C89, 0x21679D11, 0xBDFA4F16, 0x2D2797BF, 0x9B23FC01} } } } ;
3132 static const fp12_t var_b = { { { {0x949792E9, 0x35232BAE, 0xBEC80A0D, 0xAF61667D, 0xA914C366, 0x5C3F0B0E, 0x6D17B206, 0x5791939B},
3133 {0x2B106F85, 0x52F004DF, 0x09390CCE, 0x1E5A2338, 0xAB0B8816, 0x4A782D7A, 0x4497B4D4, 0x5F661949} } ,
3134 { {0x905DAE55, 0xED52B85A, 0x1D73BA2D, 0x13FE912A, 0xF17F2611, 0xFE3D2F44, 0xB0FAEA35, 0x36F9A75D},
3135 {0xD6DDE148, 0x7F4D6A9D, 0x689625E8, 0x6A95DA93, 0xC3975F70, 0x224A769A, 0x0F21C7E4, 0x1CCC6C5F} } } ,
3136 { { {0x03DECCE5, 0x6A5E1478, 0x1B784CD9, 0xD4E4BDA8, 0x207DA310, 0xC128D4D6, 0x35FD9DFE, 0x439FA07F},
3137 {0xB3001082, 0x270EEAFE, 0xC70884D7, 0x7BAD6C10, 0xD6E057D3, 0xE5C9B3A9, 0xFFD8E959, 0x5D85FD5C} } ,
3138 { {0x736CF977, 0x406B5BB4, 0x2D4A7F50, 0x3E01801D, 0x7FAF30AF, 0x6F19C738, 0x295D9E1B, 0x7F20E0E7},
3139 {0xE7BD06C2, 0x647B11CD, 0x1624BA1A, 0xC0A8211C, 0xCEA6D0CE, 0xFBB664F8, 0xCD39A9C9, 0x9021065B} } } ,
3140 { { {0x8318DE13, 0x32BB8D3B, 0x220EED90, 0xBC4CE0CF, 0xEB80F875, 0x2CED216D, 0x7661E68C, 0x10CC55BC},
3141 {0xE7146971, 0x5916A464, 0x8F766A82, 0x2223A803, 0xEC77C41C, 0x07356A1B, 0xA598B7AA, 0x47647B9D} } ,
3142 { {0x61C8A2BB, 0xB4A0250B, 0xED536A33, 0x339E2F3C, 0x8DFD3CF2, 0x9650F796, 0x400C91C1, 0x4D6A0E0B},
3143 {0xD2B145A4, 0x2CA6879D, 0x04FAD296, 0x29B11DC8, 0xCA4766D9, 0xA663BE0C, 0xA2DA6B95, 0xB8420685} } } } ;
3144 static const fp12_t var_expected = { { { {0xAE7DEAE5, 0x9DE28474, 0xA7437603, 0xD0670880, 0xA27DE6BB, 0xED1539A8, 0x16A541A4, 0x8508C718},
3145 {0xEC520BA4, 0x60D1B016, 0xF9731E82, 0x92389C7B, 0x36F56EC2, 0xF1D5CDB5, 0xC601C668, 0x64C04781} } ,
3146 { {0xBA04CE7D, 0x5EF86B7A, 0x865F36D6, 0xC3130212, 0x93D1D8A4, 0x1383AC65, 0x0CA4CC17, 0xB58495C2},
3147 {0xB9328E1C, 0x22645B26, 0xF7D69FA5, 0xFFD3811D, 0x445B5C70, 0x11138BE4, 0x2708F8A6, 0x3CC7C5E7} } } ,
3148 { { {0xF8AA876E, 0x4FD99391, 0x84976F2C, 0xDA52C881, 0x18EDD640, 0x8ACE1883, 0x2DFFE83D, 0x0857BE61},
3149 {0xA004799A, 0x4D0074F6, 0x84AB57C6, 0x132C071F, 0x505C5835, 0x504D512C, 0x2EA84FB6, 0x15B57114} } ,
3150 { {0x72E9DD60, 0x166816BF, 0x4B931FEC, 0x3324E4A1, 0x7210BBDD, 0x87713658, 0x555755C0, 0xA2BD49F3},
3151 {0x2FC7C262, 0xBF428BB9, 0x68B48581, 0x6D620AAD, 0xBC3B4349, 0x2DF36457, 0x1E627E19, 0x6D6EB53A} } } ,
3152 { { {0xC7B65B86, 0xE48707B2, 0xDED3F999, 0xEACD2442, 0xA75A69F1, 0x4E89386C, 0x94AE03C6, 0x866C0B39},
3153 {0xDE1D52FE, 0xDCA88A38, 0xC2B807D1, 0x1D4A69FC, 0x2B0CB171, 0x93691EE8, 0x0230CF4B, 0x67CAC178} } ,
3154 { {0x6C1F159B, 0x1D9388D6, 0xA3A7F900, 0x24B8367B, 0x6AC4AE83, 0x54737FF2, 0xF6FAD64D, 0x66CECB4D},
3155 {0x9A2B9D77, 0x8CE9E74A, 0x1D39E713, 0x7C398297, 0xD89DBBCE, 0xC844E02F, 0xE223B3FE, 0x8490C24C} } } } ;
3157 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1773 a000");
3158 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1774 a001");
3159 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1775 a010");
3160 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1776 a011");
3161 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1777 a100");
3162 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1778 a101");
3163 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1779 a110");
3164 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1780 a111");
3165 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1781 a200");
3166 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1782 a201");
3167 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1783 a210");
3168 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1784 a211");
3171 static const fp12_t var_a = { { { {0xD37498B1, 0xE7CC8DC8, 0x68405A8E, 0xAF5A3B35, 0x4D87ECC8, 0x32DBEAF5, 0x45CB32BC, 0x6AF8F9C6},
3172 {0xDB7A3F59, 0x06F32F12, 0x198E6660, 0x18776B01, 0xD1D0809F, 0x2D12AE7A, 0x04E0E3EA, 0x72AC9293} } ,
3173 { {0x4953281C, 0xF51FDB8B, 0xF3213093, 0xE752034B, 0xC268F96A, 0xFED2287F, 0xC9EA49A3, 0x897FF466},
3174 {0xB29A2C0A, 0xC6AB5B2C, 0x017A762D, 0xD5C74AA5, 0xE9CBD07A, 0x955F8E94, 0x3CBDED31, 0x5D0218C3} } } ,
3175 { { {0x11C88DC3, 0x5EE4F309, 0xF983BA06, 0xFECA2BB0, 0x7F686E2F, 0xD2B6003D, 0x24D72789, 0x6465AB98},
3176 {0xD62FCB0D, 0x024B4952, 0x63ECE966, 0xCC0ED4EE, 0xEA2A0F3D, 0x55694DB8, 0x0FA42187, 0x76CE2F38} } ,
3177 { {0x0EC75B29, 0x0A571E32, 0x887FCE36, 0x6FE46EE4, 0x995485B3, 0x8443B6F8, 0x79DBC13F, 0x40C47224},
3178 {0xDE7BDFA2, 0x70E0FBB9, 0x01D55B2B, 0x014563E3, 0x101FC772, 0x47EB8B7B, 0x27F7643D, 0x027BD5EA} } } ,
3179 { { {0x9EF65BC1, 0x9F9A6A23, 0xAC508281, 0x765C08CE, 0x02CBF611, 0x11DC8D5A, 0x738935AA, 0x0C5FEC66},
3180 {0x3DBC5C66, 0xA43EB071, 0x2B7B7351, 0xBCA4481B, 0x95FC2A5B, 0xBD7D5B04, 0xD94251E4, 0x2B0E0152} } ,
3181 { {0x24C19EA4, 0x125D06DB, 0x59EDDDBB, 0xD9E26025, 0xD8535004, 0x9806A85D, 0x71277906, 0x76A3CEC8},
3182 {0x194D9A69, 0x8655A5CD, 0xF8EADEBA, 0x0335C54B, 0x250DC840, 0x7236ED3D, 0xD6CB4337, 0xA25C871E} } } } ;
3183 static const fp12_t var_b = { { { {0xDD81F62C, 0x4642BAD9, 0xE033C283, 0xD7D2F987, 0x878C2E21, 0x0DB67189, 0x44F06EC1, 0x4519C24B},
3184 {0x02B4DF84, 0x789DBFE5, 0xE996CBD5, 0x8968DA82, 0x3BB1BEF3, 0x5D3A0DF0, 0x11619D65, 0x07A32CC3} } ,
3185 { {0xA1CF8270, 0xC7BC7F19, 0x58F7EFB7, 0x9DCE3952, 0xC102C0E7, 0x965909C7, 0x411D6741, 0x73EB0EFD},
3186 {0x945D2A67, 0x7C322588, 0xEC28F017, 0x07545A67, 0x3D3439A4, 0x29C9ADBC, 0x38F7B58D, 0x26DEAA5A} } } ,
3187 { { {0x82A4814A, 0x900A1A09, 0x4CAACD10, 0x906869A3, 0x726EDC31, 0xA892D66A, 0x8B141F63, 0x7B9ED35D},
3188 {0xA68030FC, 0x61954CE1, 0x864BE0D9, 0xEFDE4821, 0x9B110392, 0x64B2D056, 0xB65414A4, 0x848CBBB9} } ,
3189 { {0x08ABE80D, 0x90BAE2D4, 0x0A016A96, 0x45BBA27A, 0x7D9486D9, 0x3608591F, 0x644F9F7C, 0x88EC3570},
3190 {0x2D6B3CF9, 0x6BA114C6, 0xC3BA907F, 0xD92D92D0, 0x315CD0D3, 0xD05B9AA4, 0x91F37BD3, 0x28548C37} } } ,
3191 { { {0xF8C28550, 0x4FB68378, 0xB5AF179D, 0x534D8988, 0x245C6593, 0x947FC326, 0x030B1CBB, 0x3C7162BB},
3192 {0xD0078537, 0x3166BBC6, 0x1C8EFB9D, 0xB60F9B64, 0xEE7E5276, 0x79741A61, 0x1DA665EE, 0x58DF9F3F} } ,
3193 { {0xFBC5D131, 0x9A07450E, 0x4724AA4E, 0xA99567BD, 0x95C71C10, 0xF3BD879A, 0x785652ED, 0x5C7F70D5},
3194 {0x77F7C87A, 0x29A91BFD, 0x05F727D2, 0x6924F79A, 0x9011A99C, 0xF4499521, 0xD96F5FB2, 0x5641EBD3} } } } ;
3195 static const fp12_t var_expected = { { { {0xAAE2D490, 0xD53A53EF, 0x2797A4A0, 0x944A663B, 0x3903B741, 0xB875269F, 0x6C4A8D98, 0x03C6FE3C},
3196 {0xA32152DE, 0x5471F692, 0xF7948D63, 0x48329103, 0x3381C1E0, 0x2A9F220A, 0x72FDFA3E, 0x47043032} } ,
3197 { {0xE48F3B47, 0x184A466A, 0xC4230A11, 0xCEC17729, 0x25A708BF, 0xB228F84E, 0x2E259AA9, 0x17E5D62E},
3198 {0x1D369816, 0xD5A49784, 0x2AEF808B, 0x40DE202E, 0x66344259, 0x82D4DF0B, 0x624171CA, 0x5AD6ED0C} } } ,
3199 { { {0x54136DBE, 0x3FB38429, 0xF2A508B9, 0x70C78AF8, 0x2091385E, 0x3FECF10A, 0xA6565069, 0x1882A149},
3200 {0x388BAB73, 0x40B292BF, 0x6F349C9F, 0x442CD47D, 0xB57F98FE, 0xE3D17F7D, 0x751369A2, 0x9EE62159} } ,
3201 { {0xA3EAEF4F, 0x415FD89C, 0x084C4435, 0x24C1CA30, 0x7B8CBCB5, 0xBCB7A80A, 0x219A67CB, 0x6F8B5D4B},
3202 {0x818923C5, 0x6A085517, 0x28B7D0BD, 0x55F31E21, 0x19E3EE44, 0x7A4BFB4E, 0x33FFB872, 0x910D128A} } } ,
3203 { { {0xC36373C9, 0x8F12D6CF, 0x2CBA929D, 0xA2ABE34C, 0xD5033AF7, 0x5F82C07D, 0xA18F9DCD, 0x0EF28DB9},
3204 {0xCA54EEA6, 0x0900F417, 0x6DF8A51E, 0x2840AECA, 0x71F6C439, 0xE389569F, 0xE0D38CCE, 0xA7B25417} } ,
3205 { {0x3489FEA2, 0x12675A63, 0x3FBB6252, 0xCA301F54, 0xB84C73AC, 0xA92E6E73, 0x81D393A9, 0x0FCCE7FF},
3206 {0x074AD822, 0xB151D465, 0x808F2355, 0x37FCB0FB, 0xDDCCA515, 0xEBDF2E9F, 0x41854895, 0x06E3F891} } } } ;
3208 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1785 a000");
3209 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1786 a001");
3210 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1787 a010");
3211 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1788 a011");
3212 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1789 a100");
3213 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1790 a101");
3214 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1791 a110");
3215 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1792 a111");
3216 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1793 a200");
3217 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1794 a201");
3218 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1795 a210");
3219 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1796 a211");
3222 static const fp12_t var_a = { { { {0xE6141CB6, 0x74874E8F, 0x21744262, 0x998FB42F, 0x584587B4, 0xC4BAF5AA, 0x37460070, 0x9FA5B3BF},
3223 {0xCE1E546C, 0xAB4712C3, 0x6EEA0560, 0x5C67F09C, 0x5B6C6615, 0x8DA9F538, 0x9AB70968, 0x0C153433} } ,
3224 { {0x41F1C90F, 0xA9F825D9, 0xA79EBE5D, 0xAD1CBA17, 0xD342BED8, 0x536FDCD5, 0x91691A2B, 0x7BFFF838},
3225 {0xA0A67EA3, 0x73DC6C2D, 0xF963F64A, 0x0DD2BCB0, 0xDBF63273, 0x29A37419, 0xDB5E0B69, 0x148961C6} } } ,
3226 { { {0x4B2A8D37, 0x402CA11C, 0xB7D2176B, 0xA0674D90, 0x6E985F1E, 0x55AF9F69, 0xEB25250C, 0x765A2B12},
3227 {0x2BA6F602, 0x99E6932E, 0x164C4507, 0xCC6865B6, 0x4D30F4A0, 0xB884F0C6, 0x8E771374, 0x4D05264F} } ,
3228 { {0x5BC074C1, 0x14218E8E, 0x03EC8F9C, 0x88796938, 0x027DAE94, 0x141E78CC, 0xEC3501D3, 0x3047C7BC},
3229 {0x57EC7692, 0x82A66FAA, 0x6421AD20, 0xFB2145FD, 0x3B4B10CF, 0x279E37A9, 0x6572E56A, 0x9B9DFFEF} } } ,
3230 { { {0xF16C224A, 0x0FEAEB41, 0xCAFEAD35, 0x0CCDDC63, 0x96956773, 0xB06493A2, 0xB7EF43CF, 0x57F3C6C3},
3231 {0x93FFE3F0, 0x91A32D1E, 0xBA39733F, 0x849FFD0E, 0x7E163068, 0xFA6D0235, 0xAD4D78C3, 0x0384A591} } ,
3232 { {0xE0BEDF05, 0x5AD3C83A, 0x08885506, 0x3AF5FA41, 0x83900957, 0x7444E73C, 0x3C650D65, 0x0364465F},
3233 {0x592A298C, 0xBB121D64, 0xC93F00DD, 0xAB73CCDB, 0x5C2B18FB, 0x9477996E, 0x9CAF0BAA, 0x5A30B4BA} } } } ;
3234 static const fp12_t var_b = { { { {0x479F11C0, 0xD8A4B391, 0x9B4370B9, 0x502B6378, 0x64CCBF2A, 0xC5FB432B, 0x17FC04DB, 0x1250972A},
3235 {0x2195EE2F, 0x46742A7E, 0x7E668071, 0x2BB5159B, 0x551EAAC0, 0x50EA1082, 0x6701932B, 0x577F7BED} } ,
3236 { {0x9DC8989A, 0x00177ABE, 0x69F6D5CB, 0xFD4B6E18, 0x03CE4727, 0x2E1E5773, 0x1719077B, 0x322B396D},
3237 {0x4F94B51C, 0xE7478C98, 0xB5EF136A, 0x180EF791, 0x46D8F521, 0x92DA57F6, 0xDFB5852F, 0xAC4CF467} } } ,
3238 { { {0x87D040D2, 0x319C78C0, 0xB7E75782, 0xFA583059, 0x0F5D2188, 0x240C9846, 0x656E5240, 0x065D3696},
3239 {0x46D6C18C, 0x53EDD2E7, 0x2723B3E3, 0xA4BFB86C, 0x679B2940, 0xE8592648, 0xC5776D47, 0x4989C41F} } ,
3240 { {0xA83EEB7D, 0x4D5C73D3, 0x61419614, 0xCA73A0CC, 0xC4137E64, 0xE09D2489, 0x9E56D2A9, 0x3E267C1A},
3241 {0xBAB9187D, 0x5B39FA66, 0x69A0D924, 0x6084B0CB, 0x4810C514, 0xC2857B41, 0x8EF5C1DA, 0xA72FC27F} } } ,
3242 { { {0x4064B7C9, 0x8323E1E0, 0xDACD3D93, 0x949FA363, 0x08979997, 0x251A36AB, 0x544170CC, 0x53915F75},
3243 {0x4EFA1190, 0xA76B4841, 0xCDCD754B, 0x83897A69, 0xF94CFBD8, 0xDDE635E7, 0xD856F6D8, 0x1BE60AB4} } ,
3244 { {0xF149E1E0, 0x6D475F37, 0x1E2BDC22, 0xDDE0654E, 0x87BB2AC9, 0x97B6CFEB, 0x632B7424, 0x52606ECF},
3245 {0xAC2000A8, 0xC33781E4, 0xDF6E5AC4, 0xE0FB5768, 0xBDB13ADA, 0xB0418F41, 0x298D253E, 0xB6937AA4} } } } ;
3246 static const fp12_t var_expected = { { { {0xB8247F31, 0xC400C694, 0x401FDA6F, 0xB625101F, 0xDF7F7538, 0x5289E82B, 0xAA360953, 0x51C808F6},
3247 {0xF7A2E0AD, 0x23F08FE7, 0xF02080D6, 0x84FCA314, 0x53A12572, 0x7A613FCB, 0x1FD5C06D, 0x53379177} } ,
3248 { {0xBDBD9AB9, 0xF3C4AC24, 0x7281AA58, 0x85B151D4, 0xB25E9693, 0x9380C52F, 0xC1D0B9B1, 0x29190F72},
3249 {0xA815F6D2, 0xDB44894C, 0x1FEBDEE5, 0x4A8F28B2, 0xB8D767C3, 0x2384A4C7, 0x787FF5AC, 0x3BDB8140} } } ,
3250 { { {0x3A739978, 0x82FAC44E, 0x39AA7097, 0x1330AFE3, 0xB32FE28D, 0x3F7AB85A, 0x4CA570F8, 0x98F3D91D},
3251 {0x79F64BD0, 0x03A8C450, 0x969AEA74, 0x9A6B158F, 0xC4A7DCA9, 0xAC9B0D23, 0x6FD4B04C, 0x636F1395} } ,
3252 { {0xF128C707, 0x87556822, 0xF9A9C503, 0x21F94F6F, 0x49B8C012, 0x894B0287, 0x82DC87A3, 0x53BAD7AF},
3253 {0x4EF744F4, 0x8F414D8F, 0xBC9EB661, 0x7A3A079C, 0x0B062CD6, 0xF932EAD3, 0x1AE699B9, 0x18CCAE7E} } } ,
3254 { { {0x40B54CFD, 0x4342F388, 0x53C7E677, 0x623CE101, 0x61F7998D, 0x3C9E33CA, 0xB76EDF73, 0x29C307FB},
3255 {0x411FBF84, 0x3EBBF180, 0x20AE747F, 0x462EA9F5, 0x455E6F39, 0x92D6F89B, 0x71D7BE1E, 0x0868BE09} } ,
3256 { {0x5B2F4591, 0x920060B6, 0x216CAB50, 0xE64FF95F, 0x4CB7010A, 0xAE7198B7, 0xBAC7E968, 0x3BA16141},
3257 {0xAFCA06E8, 0x35CBC833, 0xEDC7EEFC, 0xDB8EAE7B, 0x171FAB8F, 0xAA47D45D, 0x7F660077, 0x446FBD80} } } } ;
3259 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1797 a000");
3260 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1798 a001");
3261 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1799 a010");
3262 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1800 a011");
3263 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1801 a100");
3264 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1802 a101");
3265 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1803 a110");
3266 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1804 a111");
3267 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1805 a200");
3268 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1806 a201");
3269 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1807 a210");
3270 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1808 a211");
3273 static const fp12_t var_a = { { { {0xBCE4E670, 0x3A439274, 0x76E18F76, 0x57D85716, 0x53C47006, 0x6436AB8B, 0x67EDD64F, 0x588DFDA8},
3274 {0xD187CA09, 0x6EA1A6D1, 0x2FC92C1D, 0x22BC35D1, 0x36E3DE1D, 0x0AE4ABCC, 0x9D257D61, 0x8FB0C2B8} } ,
3275 { {0x97527CF3, 0x72DCE42E, 0x0B812A46, 0x3FB7EC09, 0x339045AF, 0x38A8B8FC, 0xC37A5A9B, 0x3DD93DBF},
3276 {0xB4794959, 0xEC0251CD, 0x82968080, 0xCF21A824, 0xD0206EF1, 0xBB679A2A, 0x24FD7DE9, 0x01F8831E} } } ,
3277 { { {0x8E6E23BF, 0xFB1B3010, 0x3DD2F40A, 0xC7DCC0C5, 0xEA514D28, 0x1EC285D3, 0x68A73E3F, 0x1C48ED06},
3278 {0x6E646BED, 0xC237CF34, 0x0FAB85A8, 0x9851823F, 0x752489B4, 0x3A390142, 0xAEB9FED7, 0x1735BBF4} } ,
3279 { {0xDBFF8292, 0x9C335624, 0xD8CEC978, 0x9EF8D281, 0xF895A3C5, 0xDA0253F6, 0x7B41AD44, 0x8DB74BA9},
3280 {0x17155A5A, 0x180A8DBD, 0x2178FF5F, 0xF5325872, 0xBB6F7918, 0x66014DDF, 0x7100D615, 0x1E48620E} } } ,
3281 { { {0x514B78EF, 0xEECB55E3, 0x23759850, 0x6F3230A2, 0x4E99E809, 0x09BABF37, 0xFE1D05A0, 0x2CD95A39},
3282 {0xE80248D7, 0x499469A2, 0xF0869BBF, 0xB3A96F4C, 0x67782B48, 0xDD54F115, 0xCB79A77F, 0x3C088FBD} } ,
3283 { {0x26A3DA78, 0x3150FDFE, 0x6C30F049, 0x91381582, 0xE89A10E1, 0xDB297C82, 0x0350E64C, 0x7F867213},
3284 {0xD33399C1, 0xDD2197FA, 0x68C71ABA, 0x4B50B4B3, 0x9D2109C4, 0x3E6F73C1, 0xDF956B6B, 0x14029F9B} } } } ;
3285 static const fp12_t var_b = { { { {0xAA1C797F, 0xAB9E2306, 0xC459A781, 0xAAFB3EDE, 0xC0035950, 0xB280B5FF, 0x211F4997, 0x00773F0E},
3286 {0xE707F151, 0xD99950E6, 0xA54B220C, 0xACC360E6, 0x9DEE1990, 0x38F9584A, 0x3581A1EE, 0x287004C4} } ,
3287 { {0x588E92D4, 0xF379CB1E, 0xD5F9D8A3, 0x15EBABD6, 0x3FA4AAD7, 0xAFFC137C, 0x8BB2007E, 0x6456D753},
3288 {0x0CCA4E9B, 0x792692D1, 0xDC911DB4, 0x99FC1CD4, 0x334D742B, 0x8DD8E3E5, 0x0F86C422, 0x11CBCAAC} } } ,
3289 { { {0xB6377F3E, 0x88437D7D, 0xC6853DD8, 0x7546F27A, 0xF6A9AD6B, 0xB2EE7B79, 0x72180C8E, 0x67174CF5},
3290 {0x83BCB873, 0xC556412D, 0xAAE164AF, 0x5FFF7869, 0xB28226A7, 0x5ED2DC91, 0xF270DA6A, 0x610C54FE} } ,
3291 { {0x04E234CC, 0x64DE5FD1, 0x2EF245FD, 0x2235808C, 0x6DBEE9DA, 0xA674DDAB, 0x765F147F, 0x40EC4AB5},
3292 {0xA84895A1, 0xF6655AC2, 0xE4852059, 0xE6A74183, 0xE91356AD, 0xE95EC5CE, 0x69B39F73, 0x41857B83} } } ,
3293 { { {0x6871CEC9, 0xD729F2AA, 0xFB1B4035, 0xED59DB18, 0xFF50A3EF, 0x8BD28002, 0x941805F8, 0x19711627},
3294 {0x50F52DCD, 0xA60C8355, 0x74E7180C, 0x964452DE, 0xB763991C, 0x2E07C513, 0x39246958, 0x18EAFEB6} } ,
3295 { {0x11144F55, 0x8CFFF126, 0x23880D4B, 0x6249C4E9, 0xF9A1F848, 0x0078A8FD, 0xD59D983F, 0x55DAC376},
3296 {0xEFF6574F, 0x875C049B, 0x0352D57E, 0xD0A78207, 0x17B89DDE, 0xA078A5BB, 0x433F4975, 0x2F3B21D9} } } } ;
3297 static const fp12_t var_expected = { { { {0x98CD4AE0, 0x3699C732, 0x949B8A7A, 0x71027A19, 0x1C2BAD00, 0x23736CAE, 0xD718CD60, 0x6A2D9DDE},
3298 {0xEF3AD0FC, 0x0FF62984, 0x848A9B10, 0xEE22861F, 0x5819905D, 0xA01CD22B, 0xCEBE9A52, 0x8BD34E0E} } ,
3299 { {0xB7DC665E, 0xBAAF9309, 0xA6DEB173, 0x20F47F29, 0xA0259C6C, 0x93CBA742, 0xD8501DDA, 0x0B2CA790},
3300 {0x7CFD23A9, 0x0FDBC640, 0xEEE432BB, 0xC99E58F1, 0x84764CDC, 0xD4B4B604, 0xAEB8FF42, 0x8052D0A5} } } ,
3301 { { {0x8944331A, 0x3D0BF02C, 0xABBEF1BA, 0x54786E31, 0x0461C8F6, 0x47424E15, 0x6AD0B126, 0x2BA3D49F},
3302 {0x0877AF03, 0x4396B1FF, 0xA904F258, 0x1B07560E, 0x5571DEDF, 0x6BA29064, 0x2930A228, 0x39E970FA} } ,
3303 { {0xFEF41CD3, 0xA765C532, 0xB50AB4FD, 0xE0E9B75F, 0xE8EF8FBA, 0x7CA8D0E1, 0x37486FA9, 0x3E6EBD25},
3304 {0xD135FE4F, 0xADD2D4BD, 0x69A10FB4, 0xA5371CE0, 0x98DF2E36, 0x95B15009, 0x40C1140C, 0x3316BBCD} } } ,
3305 { { {0xF77C0911, 0x956709AE, 0x1F97D70C, 0xF4D92838, 0x2F0EBF60, 0xCDCBFFBE, 0xE30C244D, 0xABB18C2C},
3306 {0x3C36BEA7, 0x94EE791F, 0xE83B1A62, 0x91F002BC, 0xC789A966, 0x846FE594, 0x96341BD1, 0x4628CD4B} } ,
3307 { {0x5C8AFA9B, 0x8FC08D29, 0xD8B2BBBA, 0x7FF198CC, 0x28D20FD9, 0x7EAC5850, 0xDF8F06EB, 0x2DB23C5D},
3308 {0x9D10840E, 0x925C0031, 0x8EB3057C, 0x49A5C56F, 0x1988C87A, 0x578BFC5B, 0x17BDE42B, 0x36D2A959} } } } ;
3310 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1809 a000");
3311 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1810 a001");
3312 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1811 a010");
3313 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1812 a011");
3314 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1813 a100");
3315 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1814 a101");
3316 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1815 a110");
3317 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1816 a111");
3318 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1817 a200");
3319 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1818 a201");
3320 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1819 a210");
3321 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1820 a211");
3324 static const fp12_t var_a = { { { {0xB218B535, 0x31B63684, 0xAA3CD193, 0x76272ECE, 0x2C1F8F95, 0xEF66CA05, 0x0E592864, 0x08410BA0},
3325 {0xFBC283BE, 0x3AC5A4A1, 0xD704B8E2, 0x81F5FDCB, 0x01156A99, 0xD3CDCCBD, 0x196687A5, 0x7FA78E0E} } ,
3326 { {0x5F6FEF57, 0xAC3568B9, 0x8BF75BD2, 0x05A060E8, 0x8C3C891D, 0x3B69AA11, 0xD3A91CB8, 0x773DBE5B},
3327 {0x2559719E, 0xC35B0944, 0xBC7BAB62, 0x7545F157, 0xEAEE2732, 0x090109D3, 0xD76C0E18, 0x2620C225} } } ,
3328 { { {0xB0A08B10, 0x3737A621, 0x6044BBE8, 0x8BFB30D7, 0x220E2279, 0x2B2DB124, 0x235D49EF, 0x2A59DF98},
3329 {0x86D10E59, 0x7DAB859F, 0x86AE3874, 0x81C8A6E5, 0xD8634C2E, 0x24849272, 0x4E6EF16B, 0x20EF4DBB} } ,
3330 { {0x36FAB6F6, 0xAA01148D, 0xC26A9887, 0xD4FD908D, 0x26157740, 0xD1891C92, 0xDECE999D, 0x82EC2C30},
3331 {0x3EB2657C, 0xA4593271, 0x099B16D2, 0x66556B08, 0x1F78111D, 0xCEEF3EBE, 0x07E88F83, 0x3CEF6071} } } ,
3332 { { {0x6C5588EE, 0x63B3E3F6, 0x76A9EC33, 0xE8AABE9A, 0x1C29950B, 0x6EB968F8, 0xA44545C6, 0x62C951EA},
3333 {0xD65F5AB1, 0xA352E7D1, 0x5C1EB765, 0x594D3EAC, 0xCFA34A46, 0xBAC7192E, 0xA8A16CDD, 0x8EC09EB3} } ,
3334 { {0xE6B1E683, 0xE9C71462, 0xF6D62FEE, 0x851F366E, 0x79C67FB0, 0xAC60B3DB, 0x1400EEF5, 0x7F9F1195},
3335 {0x95956DAF, 0x1C7CB530, 0xB1BD9E88, 0x6264C1F8, 0x06E96CE6, 0x8B556358, 0xEB1D93AB, 0x21657E0D} } } } ;
3336 static const fp12_t var_b = { { { {0xF9ADA1A6, 0x6AD95A9E, 0x4B376BCE, 0x830E2551, 0x966177AE, 0xAD1A596E, 0x0D9CE094, 0x1E4F02CE},
3337 {0x5D32E087, 0xD6D44806, 0x6C7E8C19, 0x54E848F3, 0xE6C78E5D, 0x47FAC809, 0x79859901, 0x1A4D9F32} } ,
3338 { {0x21C0563E, 0x7964ADF5, 0x7E80B7F2, 0xA8C7B75C, 0x10F0F98A, 0x656B5322, 0x6429D1DE, 0x5F8E10A2},
3339 {0xFDB10867, 0xE8522E93, 0x6FBC6F9E, 0xF40AA3FD, 0x9D564249, 0x9A5477C3, 0xFBF6D632, 0x79331340} } } ,
3340 { { {0x5252CCB8, 0x4E18B0CE, 0x736FE400, 0xBB78C840, 0xED573440, 0xEB8A3FE2, 0xA703066B, 0x83535D2C},
3341 {0xD1C64E6B, 0x1E7A7703, 0x0420125D, 0x496E1DB9, 0xFA8676A7, 0xBA791A7A, 0x8E656CC1, 0x8249E61A} } ,
3342 { {0x59426816, 0xDF751888, 0x3A122009, 0x815992B5, 0x47560F8A, 0x6B1D04A0, 0xBE76302B, 0x377EFBBC},
3343 {0xF1E604B7, 0x98B97E21, 0x7596F64F, 0x2249209D, 0x1EE691C4, 0x1BD47476, 0x06201252, 0x42B1EF09} } } ,
3344 { { {0x9EB04EE5, 0xCA8F4E48, 0xE10C46D1, 0xA5E890BC, 0x3021CA8A, 0xD5A3187C, 0x4CE7282D, 0x8D408EA9},
3345 {0x06380A51, 0x75219B6F, 0xF78B256A, 0x06B6DB84, 0x2CF47E36, 0x53D58943, 0xECE87236, 0x11BA57E9} } ,
3346 { {0x350727F1, 0x40C08E36, 0x3418E409, 0x4B9BD7D3, 0xBD2D5315, 0xFBA59556, 0xCFA077B6, 0x6D753A47},
3347 {0x0129DB70, 0x4C579C3A, 0xA8F40921, 0xD8DEEB42, 0xC88341CA, 0x9C9DC5F1, 0xACFB1295, 0x1F64DB73} } } } ;
3348 static const fp12_t var_expected = { { { {0xA96DF4E1, 0xA413EA12, 0xE34177BE, 0xB308BFC2, 0xF0D99276, 0x1F72B155, 0x36D8686D, 0x1377FCB7},
3349 {0x2FD64DC0, 0x92864032, 0x8B57FFE9, 0x47606798, 0x92ED2B09, 0xF8528224, 0x3F78FDBE, 0x6B86E5E2} } ,
3350 { {0xEE685F40, 0x5B67B9C3, 0xC3100696, 0xCA8DFC44, 0xA6802494, 0x29A7F2AE, 0x99FEE327, 0xB60DEB9D},
3351 {0xBD7283AE, 0x343A26FF, 0x172BFDF5, 0x3E206E12, 0x65E75572, 0x4765085B, 0x1433829E, 0x32B478ED} } } ,
3352 { { {0xB108C4DB, 0xE8F37ED7, 0x0E431432, 0x528F92D8, 0xB329D6A7, 0x2043825A, 0xA4844058, 0x70D17C66},
3353 {0x50A5BAA0, 0x26341BA0, 0xA1BF37E0, 0x0E16C6E0, 0x424D54FC, 0x3E604A4E, 0x4AE6578A, 0x6F2A88FE} } ,
3354 { {0x88446E70, 0x9614C57B, 0xD7DCF42A, 0xF613D0EE, 0x3A132201, 0xD40922E1, 0x76EC0DB9, 0x44A86BF2},
3355 {0xFD85FFBD, 0x1A18F246, 0xC59EF557, 0x5462AB10, 0x77429882, 0xD452D8AB, 0x2A8C8563, 0x31F1D29F} } } ,
3356 { { {0xA8CA1862, 0x64962C75, 0xFF535B5D, 0x41400D92, 0x3592F62B, 0x0C227B29, 0x755AE844, 0x55597F72},
3357 {0x7362F2CD, 0x52A77A22, 0xEC32037D, 0xBFF7A2D8, 0xD86002CC, 0xC520F4A6, 0x878E89AC, 0x515BC586} } ,
3358 { {0x1B80886D, 0x954C1B17, 0x8A810038, 0xEA4A8038, 0xA4A33E79, 0xA83542FA, 0x25937F37, 0x3E1D2083},
3359 {0xEC882FA9, 0x8DC01E10, 0x2203F762, 0xABF96059, 0xDE74326E, 0x53660FC8, 0xC7D229E0, 0x36835F43} } } } ;
3361 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1821 a000");
3362 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1822 a001");
3363 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1823 a010");
3364 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1824 a011");
3365 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1825 a100");
3366 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1826 a101");
3367 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1827 a110");
3368 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1828 a111");
3369 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1829 a200");
3370 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1830 a201");
3371 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1831 a210");
3372 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1832 a211");
3375 static const fp12_t var_a = { { { {0x40ACA099, 0x65985246, 0x3BCC2340, 0x84F0F049, 0x6CD5F3F0, 0x451C36F8, 0x89CD4ED6, 0xB65679AF},
3376 {0x3F8A461D, 0x6EEA7BA6, 0x4AF3EF51, 0x8AB48B7D, 0x049883BA, 0xFE3E7AFD, 0x3BD9181D, 0x6D996CFD} } ,
3377 { {0x28D3592F, 0x324621A5, 0x9DDBB229, 0xA6526DB9, 0x215F2810, 0xFB289C4F, 0xED468FBF, 0x63DA6172},
3378 {0x9F6D1156, 0xDC6333DE, 0x5D882A28, 0x0D5DAB37, 0x07F5E8C7, 0xDCC6EAEE, 0x90D7520B, 0x942CB289} } } ,
3379 { { {0x3A849A9B, 0x7611CA40, 0xF161A552, 0x41B99184, 0x07A1676B, 0xA90F6B3A, 0xD4B5B7A6, 0x04E69C61},
3380 {0x75BA3E4D, 0xE8617319, 0xD3180331, 0x637E6F08, 0xE4452ACE, 0x4E0C7780, 0x5F475332, 0xA46FCE21} } ,
3381 { {0x8F0F9191, 0x37A14DA0, 0x9C375E7C, 0x99D207AD, 0x703369A6, 0xE2F95AAE, 0xEF37DC4C, 0x3C8A4A9B},
3382 {0x37096C8E, 0x87688E1A, 0xDB84435D, 0xE69685ED, 0x9F59B4E2, 0xBC4F1B14, 0x920B6E16, 0x81634AB8} } } ,
3383 { { {0xDCFF78AC, 0xD0BCF18B, 0x864E0159, 0xBC4C1A9F, 0x554409C3, 0xBB6FD363, 0x91361526, 0x462C13AB},
3384 {0xE6DB60F0, 0x9D11F510, 0xBCD67FC4, 0x979698B5, 0x8CC01967, 0x23D8A5EE, 0xD9B73E5D, 0x245AEB8F} } ,
3385 { {0x84BE7FC8, 0x2BD3D1DC, 0x7533AF8E, 0xF14FF454, 0xDB942A28, 0x253D3CB8, 0x1B470D16, 0x3CBAB355},
3386 {0x9096D469, 0x1BEF5DA5, 0x31E0645B, 0xA2DAE94C, 0x21F08C26, 0xAEB86451, 0x02E44E54, 0x32675E49} } } } ;
3387 static const fp12_t var_b = { { { {0x29F6396E, 0x40E4B459, 0xAACD9E7A, 0xFCC58DE3, 0xA3CA90D5, 0x3EC4FBB7, 0x15BC4167, 0x3146ED59},
3388 {0x707F2D2E, 0xE8115971, 0x692A7228, 0x2BEB0CDE, 0xE6D3C68B, 0x2A2D93CF, 0xC66FB62F, 0x5BE71732} } ,
3389 { {0xECAB4A16, 0x5B7424B9, 0x1C41BA92, 0xC0440330, 0x8DEAC7BC, 0x8B329081, 0x03143F8A, 0x5ACD693E},
3390 {0x9AF83B31, 0x56A28F42, 0x9647E470, 0x59532D77, 0x1064C563, 0x72710C0F, 0x9A3A3300, 0x8AFE7EEA} } } ,
3391 { { {0x8A52FC2C, 0x60D072CE, 0x5053EFB6, 0x20ACE45B, 0x40F5355A, 0xCA68AAC4, 0xB06CA96B, 0x8317290E},
3392 {0xC55B4495, 0x7A064F7F, 0x3C27AD35, 0x3A7443DA, 0xBE2B4FAE, 0x0A03C914, 0xF9AD8667, 0x5A5B7859} } ,
3393 { {0x213415A7, 0xD929C333, 0x29D380DF, 0xBC3B9F0E, 0xB26F64AA, 0xBE5C74F7, 0x42BB15EB, 0x8E4321B4},
3394 {0x70B634BF, 0xC6E4350E, 0x1B2120B1, 0xAB297032, 0xAAE35303, 0x594F582F, 0x17C2D0D7, 0xB17B0053} } } ,
3395 { { {0x05074BCB, 0x096BD871, 0x1847D608, 0xAE4FF2F5, 0xB985B9BF, 0x3671212C, 0x4104BF09, 0x6BB2D40A},
3396 {0x9613DFD1, 0x7A5DC427, 0x9A3C5195, 0x57169488, 0xEF881453, 0x81D735CC, 0x4A65FAFA, 0x782A1B77} } ,
3397 { {0x287FD4B8, 0x278DAC1D, 0xE0661D87, 0xD769B9CB, 0x6D773980, 0xE8C28BA6, 0x2FE5DCE6, 0x9968D727},
3398 {0xE6642719, 0x8E59EE80, 0x879B686B, 0x4F9878CF, 0x4698029A, 0x1E2FF0EF, 0x70BFF73A, 0x708C8107} } } } ;
3399 static const fp12_t var_expected = { { { {0xB3E5B8C9, 0x3BD4B6CC, 0x324D9642, 0x12B701D1, 0x8A1DC495, 0x5718ECDF, 0x336653A4, 0x8C8D0A4F},
3400 {0x4A3C01C3, 0x7E765644, 0x64AA24CA, 0xCEBD0EBC, 0x43A78403, 0x5DFB5144, 0x11B4D84D, 0x35967167} } ,
3401 { {0xF41EFB5A, 0x64C4236A, 0x25AA4B22, 0x4EBEF246, 0x1CEB3E91, 0xBE71C26F, 0xE36E7C8E, 0x509C84CA},
3402 {0xBF24BE00, 0x92CD4978, 0x50C3DEF5, 0xDB15FF79, 0x944C3036, 0xB190BAEC, 0xA9521557, 0x4A5FC14A} } } ,
3403 { { {0x91862B5C, 0x96B46274, 0x9559629B, 0xF1B7FA4A, 0xBF68F7A6, 0x4EE7C2C5, 0x14E47F35, 0x604DF43C},
3404 {0x8563FF75, 0xC821219F, 0x68E33F1A, 0x147758B6, 0xE7C87B02, 0x4444546E, 0x39900ADF, 0x191AD7CF} } ,
3405 { {0xAF5D4923, 0xBAEC0F87, 0xC94E354A, 0x99235AAC, 0xA5626ED7, 0x1C72D02B, 0x3F9616C0, 0x68E2B221},
3406 {0x149EF9E4, 0x67AC8C1A, 0xADBB69B4, 0x11CEDE36, 0xDB070351, 0x3C2F7E4F, 0x7006D83B, 0x5509FF08} } } ,
3407 { { {0xA90239F6, 0x449817C6, 0xC6ECD929, 0x3666CD04, 0x6699C883, 0xD64E6FC1, 0x38074540, 0x3B7CB534},
3408 {0x382F7BDC, 0x3F4CB09E, 0x2742CBF4, 0xB8594491, 0x8D649438, 0x26AF03A3, 0x5D4FF4AC, 0x72B24380} } ,
3409 { {0xA66B895E, 0xC49F1508, 0x07AACFAB, 0x0984EEC9, 0xFF5C1934, 0xDD21F5BE, 0x52DE8E9B, 0x4B32CB90},
3410 {0x7B8B5F1A, 0x0FDE7AA2, 0x79BD874F, 0x598C17C9, 0xDC0EE5A1, 0x2ADAB252, 0x88C072EE, 0x184A7893} } } } ;
3412 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1833 a000");
3413 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1834 a001");
3414 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1835 a010");
3415 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1836 a011");
3416 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1837 a100");
3417 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1838 a101");
3418 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1839 a110");
3419 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1840 a111");
3420 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1841 a200");
3421 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1842 a201");
3422 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1843 a210");
3423 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1844 a211");
3426 static const fp12_t var_a = { { { {0x8078CB2A, 0x54929B37, 0xCCF745CD, 0x1C84B512, 0x3BD1A31C, 0x7232EDEE, 0xF7AF2BD2, 0x850ED129},
3427 {0xB4838B2A, 0xE6195EF6, 0x3AC7BD5D, 0xEE8E97B0, 0x9EB71DF8, 0x1FDFEC29, 0x054ADBB4, 0x85475746} } ,
3428 { {0xE04CB510, 0xBCFD2CAE, 0x2C1D3C78, 0xDFF1F234, 0x698C4773, 0x2E557C3D, 0xB291EED5, 0xAD50D4D6},
3429 {0x33CCDD68, 0xAD3385D7, 0x44D94052, 0x41E805E8, 0x16A6F3D6, 0x479CAF79, 0x8CFB6E63, 0xB41241C0} } } ,
3430 { { {0x79C49399, 0x8B4CD5BA, 0x3F03FCCE, 0x94CE19F4, 0x4A2D6C1C, 0x210FB2F4, 0xEC0707C4, 0x2FEB8DAE},
3431 {0x8F6AF466, 0x73DE6C80, 0x33425FC6, 0x402A6F36, 0x0E8337DB, 0xB1DD8FB5, 0x3ECDD22F, 0x719B5F64} } ,
3432 { {0x8243C75D, 0xBECAF36C, 0xD30C6631, 0x8C2E425D, 0x78900E4C, 0xCC0A60D8, 0xF381BA63, 0x9D04EC41},
3433 {0x52190B83, 0xED1AF379, 0x81F83580, 0x711C4ED9, 0x434DA3C9, 0xB67EB03E, 0xD726A67B, 0xB14BC98B} } } ,
3434 { { {0x522C62EF, 0x25EB6F5B, 0x5E12FBEA, 0xECE8775A, 0x5A190515, 0xD779FD59, 0x4126E002, 0x4855D8D0},
3435 {0x13D3FB1A, 0xB9FDDB09, 0xA06F444D, 0xCC7D6DDF, 0x8CAB2332, 0x5143F6C5, 0xDF95C201, 0xA2DE2A67} } ,
3436 { {0x57A5B6C5, 0x99C5FD09, 0xD58707BE, 0x80BF8DD5, 0xA7A86002, 0x30CF0C81, 0xAF3A4536, 0x0B31E643},
3437 {0x0545F698, 0x7AED68A8, 0x113C7EA1, 0x8B5D8CE8, 0xD92C0C31, 0xF50D4FEA, 0x7E602569, 0x8F534C8A} } } } ;
3438 static const fp12_t var_b = { { { {0xD2ECC0C4, 0xF64BAC30, 0xB8F15B82, 0x47CEC972, 0xF4E260CD, 0xB34D0814, 0xD665734C, 0x5CD654D5},
3439 {0x040FFC0C, 0x9F69710F, 0x0396D6CF, 0xCA998BB0, 0x0F9B2589, 0x49B7FFD7, 0x786A2D53, 0x6317B1A8} } ,
3440 { {0xA0A4B8DE, 0x7818D6DD, 0x6F50DCAA, 0x601C0D33, 0xDF9AF6AA, 0x70FE2749, 0x637EED8C, 0x548B4752},
3441 {0x2149DA76, 0xD1AD0F96, 0x3DF32084, 0xCFE898DB, 0x43C26DEC, 0xDB71781B, 0x4EE44E91, 0x4A156E07} } } ,
3442 { { {0x033DD064, 0xA57A4B39, 0xAD96D9DA, 0x1EFEB9EF, 0xEDEFCDF1, 0x34B7EC4F, 0xDF33BD86, 0x8CBDB034},
3443 {0x8323D114, 0x9172B846, 0xE92C48AC, 0xFF8DDC35, 0xD423C2BD, 0x3F94C30F, 0xBCB7702D, 0x14BFFA7B} } ,
3444 { {0x2B55EA6A, 0x287E8CA7, 0xDD4FF394, 0x634C820D, 0x565146AF, 0x2281A807, 0x8C2499D0, 0x8C1EC413},
3445 {0x9ED973A9, 0x905B76E6, 0x0B704611, 0xC89B10D0, 0x343DEA23, 0x49AA6F44, 0x6C170E8B, 0x44F419B7} } } ,
3446 { { {0x757485B6, 0xDD118334, 0x37B82A70, 0x57B74C25, 0x5E2FB982, 0x3FCC01F4, 0x28CC8819, 0x80D84074},
3447 {0x42F67CE7, 0x50C716C0, 0x86E23554, 0x0645E59C, 0xD557B6F1, 0x7245894A, 0x0757EC1D, 0x8AFBDEC2} } ,
3448 { {0xD7D5ADDE, 0x5BEEEE48, 0x60E03D3E, 0x21338CB4, 0xFCF961EE, 0xE96D0357, 0x53EDD35B, 0x533CB83D},
3449 {0xF27F4564, 0xFDE9BDC0, 0x8FD155A7, 0x41C04DC5, 0x364BBBEE, 0x07D62FA6, 0x2C709309, 0x35749827} } } } ;
3450 static const fp12_t var_expected = { { { {0xCD968573, 0xC623A03C, 0x02196516, 0xFF1E7D14, 0x0317F32E, 0x33AA553B, 0xB0710935, 0x2F5860E3},
3451 {0x77020B2F, 0x5F74321F, 0x5DD44FF9, 0x5E4C7B21, 0x5AAD74C6, 0x9998BA59, 0xD397EA86, 0xA66B2BA0} } ,
3452 { {0x3949F564, 0x18F8DF26, 0x6238A039, 0x7BD848DF, 0x9F723EF5, 0xD94A40A3, 0xD6C2B3DF, 0xA53310A1},
3453 {0x6C492434, 0x2CE7A32B, 0x09B7FFF0, 0x5842F909, 0x451B2850, 0x5E3BE6EF, 0x614809E2, 0xB0DC7A80} } } ,
3454 { { {0xD164058A, 0x2A6B7424, 0xAB49A974, 0xC9371536, 0xABADFA53, 0x3CAF6CE3, 0xC736F978, 0x45F331DC},
3455 {0x605AB009, 0x213169AA, 0x7CB6F1EB, 0xCA7A6A85, 0xD30B0026, 0x38F267BA, 0x557A2794, 0x220C5597} } ,
3456 { {0xB50B5432, 0x74FDDB00, 0x1F7D9291, 0x925E1785, 0x7392AD0F, 0x76AB8BDC, 0xABAC7DC5, 0x87E8321C},
3457 {0x7EBF87E6, 0xD6C6AEB2, 0x99C27D5C, 0x1D54130C, 0x816C6739, 0x85B85D9F, 0x7427E821, 0x22B8C642} } } ,
3458 { { {0x7AC0D1CF, 0xF76FBA09, 0x8BF47542, 0x3A79062B, 0x994CFC6E, 0x243931B9, 0xDAC51C6F, 0x22DA0D98},
3459 {0x7D3E0841, 0x00B67BB1, 0xF858D8A4, 0x6C5EC0E4, 0x9B1A1E3E, 0xDA0A2E83, 0x05AA6AEE, 0xAC604DC2} } ,
3460 { {0xEB255770, 0xF286EB5F, 0xD93B9F43, 0xC862F70F, 0x55850379, 0xBC15E7A4, 0xD33DF1E9, 0x3607F2A2},
3461 {0x7625CBE0, 0x13622587, 0xD78C75C4, 0x2D95E036, 0xF6E18B27, 0xBF3FFBB5, 0x84D1F5C0, 0x3F7591D0} } } } ;
3463 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1845 a000");
3464 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1846 a001");
3465 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1847 a010");
3466 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1848 a011");
3467 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1849 a100");
3468 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1850 a101");
3469 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1851 a110");
3470 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1852 a111");
3471 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1853 a200");
3472 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1854 a201");
3473 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1855 a210");
3474 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1856 a211");
3477 static const fp12_t var_a = { { { {0xE56E4D7E, 0x854226E8, 0x57D71681, 0xA7489D77, 0x54D22812, 0xBBF37A83, 0x45BE601B, 0x884F6DB4},
3478 {0x05EA9654, 0xCFB1A4B9, 0x309003A0, 0xAABB5D31, 0x26618BF2, 0x774839FA, 0xB6599AD7, 0x4C96B96F} } ,
3479 { {0xA02CCE15, 0xF18158C3, 0xC170C0BD, 0x6A65B625, 0x97A97B4F, 0xD513BB00, 0xC76A94C8, 0x01D70A9C},
3480 {0xEEBBB265, 0x43CD2DEE, 0x2CA10956, 0x3228DA6C, 0x59A77891, 0xF0CF0A72, 0x3B58D848, 0x7267070E} } } ,
3481 { { {0xFDAC92B5, 0x86DB3F58, 0xD761C285, 0x7676E50F, 0x57957D1A, 0x4260D647, 0x007757FA, 0x986220F8},
3482 {0x899E0B24, 0x797CA1AA, 0x561F5C30, 0xCEBDA969, 0x432E565E, 0xF54AC20C, 0x35F4125B, 0x6CF1C9E4} } ,
3483 { {0x023708F0, 0xD06C8BBF, 0x088CDEC3, 0x71E2CD23, 0x27F0C862, 0x633420DC, 0x55BCA968, 0xA5A758FB},
3484 {0x28BCF789, 0xF6873A25, 0x09B2C551, 0xEC19EFE8, 0xC3B7E71E, 0xAA141187, 0x6D765D73, 0x3522B122} } } ,
3485 { { {0x6EEF8E37, 0x492B5D2D, 0xA302E018, 0xF83B9263, 0x226AD7F6, 0x3B7FA63C, 0xAA52D503, 0x0D42A614},
3486 {0xCB2682C1, 0xF8F6AE16, 0x4BEB3397, 0x169C17F8, 0x6D3B6C32, 0x6A46F113, 0xB9FABFB7, 0x495CD794} } ,
3487 { {0xCD0840FB, 0x05FB26B8, 0xD73EEA6F, 0xFA1F57E0, 0xC254DC24, 0x26220C8B, 0xAEF11FEB, 0x4E190517},
3488 {0x4A8A205C, 0xA24E8054, 0x52E8BB8B, 0xCC933BAE, 0xBF03C596, 0x1392F030, 0x3927D562, 0x1472FB8B} } } } ;
3489 static const fp12_t var_b = { { { {0xD191A7BC, 0x9B9B25BA, 0xF963A4B1, 0x36AC209E, 0xB840D536, 0x56EDACBC, 0xD307412C, 0x55D46075},
3490 {0xF7E76433, 0xEE2DF872, 0xD95CEB4D, 0x776C60AA, 0x2D2AF7C3, 0x390A2EC5, 0x7C9A2BB5, 0x98BE5201} } ,
3491 { {0x44B6756A, 0xFCB99595, 0x5F73EA67, 0x4BBEB9CF, 0x31C0B8A2, 0xBE720B10, 0x3BFAF753, 0x833B7B7B},
3492 {0x798F7B82, 0x85D451D2, 0x5C2621FB, 0xC754F9E8, 0xDD89B7BE, 0x7D2639C3, 0x44E29F03, 0x34F77063} } } ,
3493 { { {0xD3A021FA, 0xEEAAF75B, 0x6F8CB07F, 0x9B87B230, 0x5D5E2A5D, 0x2BCAECE7, 0x982D9E90, 0x24DF0F77},
3494 {0xC47D1BB5, 0x7E590023, 0xB776FE8D, 0xB6A3BC16, 0xFEC57057, 0x78017EE4, 0x08F87AA8, 0x64F86B85} } ,
3495 { {0x01E1F971, 0xA5DF89D8, 0xA9F731CF, 0x6977B645, 0xB46C53B5, 0xECBB680E, 0x3272D605, 0x2D4FC8DC},
3496 {0xC6700C48, 0xF249580E, 0x5675BE08, 0xE99622C6, 0x433218A7, 0xAEC5E137, 0x49EC2CCF, 0x6E670E32} } } ,
3497 { { {0xB8DF1214, 0xD3B7625D, 0x87979B3D, 0x1BD50944, 0xA47BCE97, 0xFA1E16BD, 0x00B9DF5E, 0x2B337261},
3498 {0xB1DB4044, 0xB1FF5C18, 0x54720CF3, 0xD6D80917, 0x851C33FF, 0x320747F1, 0x9E717E1D, 0x4C7BB942} } ,
3499 { {0xCC61B506, 0x65A7742D, 0xFCB72976, 0x59D238F5, 0xF3A307A0, 0x2642748B, 0x02DDAEAF, 0x1C0A975C},
3500 {0xDAED3D03, 0x15292F91, 0x48E63870, 0x6F027481, 0x85F29202, 0x5C7EB1F6, 0xA576F96F, 0x35D7865B} } } } ;
3501 static const fp12_t var_expected = { { { {0xD2201270, 0xF9A40711, 0x1693DB2A, 0x11DC3475, 0x10C9E247, 0x73A17303, 0x0E3E0D66, 0x8422C4E8},
3502 {0xC819E3E6, 0xF5DE1C64, 0x18350A8D, 0xE29CE129, 0x9B093E84, 0x42B93D09, 0x2442EA24, 0x9F6D401D} } ,
3503 { {0xFCAB7A32, 0x9F1C2F0D, 0xA41AC32A, 0xAA651A9D, 0xDD904F8E, 0x0E2252FC, 0x9445B2B6, 0x400840E5},
3504 {0x75C28DB6, 0xC51066FC, 0x1FC9B809, 0xB7810D8F, 0x4CB7989F, 0xF094B0B3, 0x57DEFAAF, 0x9C57FA29} } } ,
3505 { { {0xA35517F4, 0xE8DF3330, 0x292DBEEF, 0x17016F76, 0x4A18A88E, 0xE0EC77EC, 0xEF67967B, 0x566495EB},
3506 {0x3CBD6511, 0x1EE77815, 0x9FBA7739, 0xED1092B2, 0xDDB70BFB, 0xF17FF3D9, 0xA21BBEE5, 0x28A77AED} } ,
3507 { {0x9DB7C5BE, 0x96EA5061, 0x60EE958B, 0x2474F874, 0xBDF16B7D, 0x0994DF72, 0xF39A8189, 0x79BB73DE},
3508 {0x673CC029, 0x34F22737, 0x5E541644, 0x1B811B1E, 0xAEE82F38, 0x404D315B, 0x51E14410, 0xAA8C3B7F} } } ,
3509 { { {0x6D4B3B28, 0x98696A94, 0x42D6AB7C, 0xC4B4E321, 0x8EE5E4B5, 0x63095AE0, 0x7B02DCA5, 0x6BE1B798},
3510 {0xCEB187E7, 0xBD846E36, 0x6AB9C0BC, 0xA2F6311B, 0x70F7F3D1, 0x7F105D91, 0x5D9F6219, 0x5FC19DB1} } ,
3511 { {0x2534917B, 0xDF764862, 0xF0016085, 0x43B613E3, 0xAD6038BB, 0xD8AE8811, 0x688BE6B4, 0x69C8F9D1},
3512 {0x8775C7B1, 0x3F155655, 0x4DE9C5D5, 0x4F0CA284, 0xAA696BC2, 0xE2152D63, 0x2A81FDE5, 0x6B6284F6} } } } ;
3514 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1857 a000");
3515 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1858 a001");
3516 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1859 a010");
3517 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1860 a011");
3518 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1861 a100");
3519 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1862 a101");
3520 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1863 a110");
3521 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1864 a111");
3522 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1865 a200");
3523 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1866 a201");
3524 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1867 a210");
3525 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1868 a211");
3528 static const fp12_t var_a = { { { {0x7AB05EC3, 0x10195C7F, 0x2208D64E, 0x25787608, 0xAB832F4A, 0x87123F60, 0x2B03ABA2, 0x27A64258},
3529 {0xFAD64AF5, 0xD19A7870, 0xC905CF49, 0x0246D325, 0xF62BCB54, 0xA54C4528, 0x674CD89E, 0x6C422B20} } ,
3530 { {0x41E831AC, 0xDF94A237, 0x95EB36FF, 0x6D8830C9, 0x3A2B7594, 0x76A03132, 0xC69FD75D, 0x02192F40},
3531 {0x6E945BAD, 0xCCF55E03, 0x314B0C96, 0x5C28D440, 0x9342595A, 0x456D553F, 0x57A021D1, 0x9140F63B} } } ,
3532 { { {0x8FB0986C, 0x4E766639, 0x110B8757, 0xBE8ED499, 0x733451CE, 0x214C5A18, 0xF0332307, 0x5B264472},
3533 {0xBE3553D3, 0xA06FF325, 0x5C081C7D, 0xBFB8347B, 0x64EFD016, 0x7901D0ED, 0x95CCAEA4, 0x0AA8EF33} } ,
3534 { {0x726F6A0D, 0x16B37E61, 0x16259E33, 0xC7BE8DBE, 0x6EA59F78, 0xCFFF69E6, 0xEDC155B7, 0x32E124DA},
3535 {0x8BAB4246, 0xBEA459AE, 0x0131D0B0, 0x5309877F, 0x59A0C1A2, 0xF15E95AD, 0x1A0EFA4F, 0xA72DFA75} } } ,
3536 { { {0xE7CDDA30, 0xE6EBC15C, 0x44FBBDDB, 0x6B78A540, 0xFFE28F26, 0xC744E830, 0xAACD9318, 0x8135F6ED},
3537 {0xB3B19D42, 0x602BC70A, 0x7F32FEA6, 0xF3268F17, 0x38968718, 0x1F1DDACE, 0x6BE01E65, 0x142E3911} } ,
3538 { {0xFD337FB1, 0x39B81F37, 0x9D8BA40B, 0x9E8BE0F2, 0x17FA8730, 0x2E572598, 0x2BDD284D, 0x965B7F4A},
3539 {0x008FB534, 0xDE1A6FE4, 0xFCC007C3, 0x5AEB7AA8, 0xA9FEB1C8, 0x7A012F4C, 0xDD58594A, 0x7ABE3285} } } } ;
3540 static const fp12_t var_b = { { { {0xBAB234DA, 0x1FEEBE9F, 0xA6F8487D, 0x0F917726, 0x6B084A3C, 0x6957DC35, 0x25CEC82F, 0xA8609909},
3541 {0x32400EB7, 0x67470593, 0xCD703D59, 0x3AA9F3F5, 0x937BD132, 0xDEB77134, 0x2DEA1319, 0x7C308A59} } ,
3542 { {0xD3F51E93, 0xA588E14F, 0xAE0B91D2, 0xC9D2FDA0, 0x8F6648ED, 0xD39F54F3, 0xBC73C915, 0x98182FD0},
3543 {0x5A002162, 0x0A110876, 0x29838319, 0x6A02B849, 0xBC751CBB, 0x33DA1E3F, 0x20D1ECA3, 0x75C02E11} } } ,
3544 { { {0x736D8D61, 0x62FA6918, 0xCCA64E6F, 0x2DEDC0DD, 0x7D7DA4E8, 0xB38F36B0, 0x91B6E568, 0xAEBC604B},
3545 {0xCE2DD5D4, 0xAFF1F247, 0xCB5536C8, 0x67535232, 0xD58DFAB4, 0xB1E5F35D, 0x1CFC4763, 0x4A13D75A} } ,
3546 { {0xF5A0DFC5, 0x18EDEAC9, 0x00FB3713, 0x651A0ACF, 0xA4686744, 0x4A8E0989, 0x574BCCB8, 0x4460CA2B},
3547 {0x2B15D0CE, 0x776FDB6B, 0x965B703A, 0xBF6A46D7, 0x8440D268, 0x3007AECE, 0xD504DB2B, 0x255C852B} } } ,
3548 { { {0x9EBB2E25, 0x6E850E33, 0xEA05DDC9, 0xC5A5A5D8, 0x748D08DB, 0x619FDAA5, 0x33C1F385, 0x39611D98},
3549 {0x96000B65, 0x74CBF450, 0xB8E9C428, 0x8E467EF5, 0x573333A2, 0x3BAA37F3, 0x9D0E170F, 0x8783150C} } ,
3550 { {0x913D469D, 0x83259CE2, 0xAC68B955, 0x464714BD, 0xE7F46955, 0x4726CCD8, 0xA355B52C, 0x8D4BF6C6},
3551 {0x223ECEF4, 0x8B35D18A, 0x3AB50D50, 0x66D9F2C9, 0xAF618C08, 0xE0BC4F29, 0xE105ECB0, 0x06BAB837} } } } ;
3552 static const fp12_t var_expected = { { { {0x42C006B2, 0x1F37B95F, 0xC6A564C2, 0xAF42418A, 0x6AA3A17A, 0xDFF2B66D, 0xC18574D1, 0x1D3F534C},
3553 {0xDC0E94B3, 0x5DD3546B, 0xA716F88F, 0xD736C1E1, 0x98BE5C8F, 0xAA47FFDE, 0xBCEC0E33, 0x90F19643} } ,
3554 { {0x63077368, 0x7FFB86C8, 0x7D9F7E76, 0x818CB12E, 0xC0863153, 0x5C3DF547, 0x9E007119, 0x3A229242},
3555 {0xFC967D83, 0x7C772466, 0x4ADC7DB3, 0xD5872E2A, 0xE7D8F80E, 0xE007D32E, 0x9D810A49, 0x1169DAB0} } } ,
3556 { { {0x0D6F6D74, 0x79E49559, 0xFD25FCE4, 0xE6A7B322, 0x66CFD297, 0x6CE7A549, 0x03455028, 0x62ED4F37},
3557 {0x3648F96F, 0x9A18ACD5, 0xE107406B, 0x01363D47, 0x52A83ECA, 0x03F0180E, 0xD436835C, 0x0EB79B6B} } ,
3558 { {0x430F73C5, 0x787DAF5B, 0x2D1F91A7, 0xCDCF7709, 0x9AC31C5F, 0x51911305, 0x9F71E736, 0x9D8B5557},
3559 {0xE00A2C2D, 0x7707F41A, 0x516EB588, 0x87A4D9E4, 0xD0477530, 0x0219A3A0, 0xDC9F18DD, 0x79DCBDE3} } } ,
3560 { { {0x4B679E11, 0x25AC6B72, 0x8B71F681, 0x095E4862, 0xE0A894C6, 0x72C2A618, 0xC25DEB67, 0x5526C33A},
3561 {0xD33E4B59, 0x973434A4, 0x9249CFFC, 0x88153EA1, 0xBCD5A239, 0x17B90DCE, 0xDB302D95, 0x40141AA3} } ,
3562 { {0x389AE029, 0x6F4061C5, 0x1D83BA6F, 0xD1864033, 0xD03B6AE6, 0x94B74082, 0x687A07A9, 0x6E7C1FC7},
3563 {0x6ECFE59C, 0x40795BC1, 0x227FD7E3, 0x5E102C8B, 0x169056F6, 0xE0392F8C, 0x558911EC, 0x5224D702} } } } ;
3565 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1869 a000");
3566 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1870 a001");
3567 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1871 a010");
3568 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1872 a011");
3569 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1873 a100");
3570 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1874 a101");
3571 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1875 a110");
3572 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1876 a111");
3573 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1877 a200");
3574 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1878 a201");
3575 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1879 a210");
3576 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1880 a211");
3579 static const fp12_t var_a = { { { {0x31D3AB06, 0xAF0A3BE1, 0xB54FA55F, 0x6CD3819B, 0x6F52D424, 0x9EC3A470, 0x0F1739C1, 0x1837360A},
3580 {0xECF491D5, 0xBC964DA2, 0xC43670D9, 0xE4CC533D, 0xF852815B, 0x4ED48AFF, 0xEF599B1F, 0x75B4C170} } ,
3581 { {0x5074D0A6, 0xC4B7117C, 0x3A1556D5, 0xB91EA128, 0xBE58CE1E, 0x996B0212, 0x80E15E7B, 0x2F1D972B},
3582 {0x5F59E5AD, 0xB17B645A, 0x2BC3BBA4, 0xBE8369BA, 0xCF70AFFE, 0xA43F1C4A, 0xBBAD7555, 0x1E3912EB} } } ,
3583 { { {0xD91CA6E1, 0x3A9C6D8B, 0xE08ACF52, 0xDC77EBD3, 0x3CDD7907, 0xA1CC3B08, 0x531B25A8, 0x492BD999},
3584 {0xD250B8BB, 0xD8418685, 0xFA218E9F, 0x0E6C68BA, 0x81CCE15A, 0x445C2792, 0xB278902C, 0x470C80EC} } ,
3585 { {0xCF1B2770, 0x75BE1D8C, 0x870793FC, 0xA103DAB0, 0xB89209C8, 0x3278D329, 0xC52A71D1, 0xA079BD18},
3586 {0x706C9332, 0xC396FD9C, 0x226984A5, 0x3F88AB5D, 0xF493E78B, 0xD6982725, 0x6AA0DB01, 0x8A913141} } } ,
3587 { { {0x913FF617, 0x01B08397, 0x3FA659DC, 0xF76FC6E7, 0x39AC013C, 0x7F378131, 0x942DDDFA, 0x595CD061},
3588 {0xCC153E49, 0x222DA218, 0x0CDB1D3C, 0x65D0FE17, 0x2C879FAF, 0x95716716, 0x985C318A, 0xABC40EDE} } ,
3589 { {0xDEE50B84, 0x598E3D3F, 0x87740D53, 0xEB43A441, 0xEC5ED9C6, 0x59AB6347, 0xCCBD5C58, 0x085B0654},
3590 {0x56D383C6, 0x4E3A4FFE, 0x7710778A, 0xC90FC8E0, 0xDDEEF016, 0x35200C4F, 0x9B2626DF, 0x0681A15E} } } } ;
3591 static const fp12_t var_b = { { { {0x4DC071D2, 0x6AE39731, 0x934C13C7, 0x928C646B, 0x300FA3B4, 0x3DAF081E, 0xF68B9113, 0xA56FC00A},
3592 {0x2D7722C3, 0x4778A74C, 0x801848F7, 0xDB18E625, 0x62C6F854, 0xC77F99CD, 0x98198002, 0x7B11D194} } ,
3593 { {0x5564B2D4, 0xD562D540, 0xF4986915, 0x3B8EABD6, 0x448969B7, 0x7E874A79, 0x41F8A731, 0x7AC34E83},
3594 {0x27940765, 0xD96E8F06, 0xA6F7E548, 0xEC211783, 0xCCA20DFC, 0x9535C306, 0x5941E26F, 0x4F3704C9} } } ,
3595 { { {0x20E212B6, 0x5284758F, 0xE2E8D32D, 0xBE3AF807, 0x4B76425A, 0xE8CEC942, 0x3BAB6299, 0x1558E713},
3596 {0x35B5A074, 0xD9C81DA8, 0x75CF1E3A, 0xF9B3EA51, 0x61416F36, 0x965E12E3, 0x10B35472, 0x36743380} } ,
3597 { {0x42E240DF, 0xF704C7E5, 0xF8EDE861, 0x570867A0, 0x77CBE22A, 0x1BF9B099, 0x8DAA6374, 0x10F475B3},
3598 {0xD2940F1A, 0xA62E4A8A, 0xEB08C250, 0x569DCA55, 0x6835A0D9, 0x31F8D25B, 0x30717D40, 0x704B9F26} } } ,
3599 { { {0xB5E0A337, 0xBAD4E1A5, 0x84D606F9, 0x97745587, 0x7F5D9E1C, 0xFBEFA99B, 0x665E5DFD, 0xA079E45D},
3600 {0x8BC9AC73, 0x2A21FFC1, 0xF5A6FA6A, 0x21D057C3, 0xD9EC28E6, 0x088A4598, 0xF591E7CB, 0x69685FC4} } ,
3601 { {0x50583422, 0x6FA0EFAF, 0x0ED2E31D, 0xD98A1831, 0xD0CFCA75, 0x1C1D13EB, 0x84B7ACE5, 0x9D839CB0},
3602 {0x0B3F0F0F, 0xFB7B8178, 0x352E0563, 0xF04DA29A, 0x6C13352E, 0x882A9C74, 0xEFB76D3F, 0x0FC4C4F6} } } } ;
3603 static const fp12_t var_expected = { { { {0x2D05C131, 0x8E327F75, 0x4C9E7EA9, 0x2DABED5D, 0xB7674BB2, 0xC2523BF7, 0xF7288219, 0x59423A95},
3604 {0xB91A5541, 0x3E591042, 0xE86FDE73, 0x4B0B7E97, 0x11D0D04D, 0x7655ED1E, 0xD272C5E4, 0xA819FA28} } ,
3605 { {0x745B202C, 0xE2ADBF56, 0xA2743B84, 0x66E9E1F0, 0x48BB45E5, 0x423E02FA, 0x7340A355, 0x9CAA516F},
3606 {0x96DDAA9F, 0xD5550271, 0x476314E4, 0x8C999FF5, 0x3BFB98FA, 0x66F5B7B6, 0xA0077E2B, 0x9E1EB81F} } } ,
3607 { { {0x2FD36329, 0xE712F12C, 0xF961D5A6, 0xC94667DA, 0x74F4DEE2, 0x2F0AED56, 0x7908CB7C, 0x5B4A3663},
3608 {0x400D3079, 0x91965892, 0x5102426D, 0xB04795C7, 0xAFE2EE9F, 0x49117C73, 0x257A0D46, 0x52A1B613} } ,
3609 { {0x46AC1EC5, 0xAEC815CC, 0x6F7270A7, 0xC666C380, 0x8A2BCF11, 0xB17A1C63, 0x6E0D52B8, 0x43527A1C},
3610 {0xA2445B75, 0xDDFA3E74, 0x1AB77743, 0x9FEA28AE, 0xB1C9268E, 0x135939E3, 0x26ED6FAF, 0xAE360EF6} } } ,
3611 { { {0x0A9FDEE7, 0x41BE2988, 0x65C3A42B, 0x971AD278, 0x99A893D3, 0xC88AC382, 0x1531857D, 0xB70501BE},
3612 {0x6781E5BC, 0xF18D5AB8, 0xD0BB457F, 0x26AF2A80, 0x46BA2B6C, 0x6712F0F4, 0x8620652F, 0x8794606F} } ,
3613 { {0x47F0CE7E, 0x9DFDD2A3, 0x23FDACF6, 0xB5172ABB, 0x99144906, 0x6E7887BD, 0xA1A1D34D, 0x26F7AF3E},
3614 {0x1BCFBA4A, 0xC77D64A6, 0xB47887FF, 0xD915D1D6, 0x0554DC88, 0xAF583092, 0x96E4882C, 0x1CA7E02C} } } } ;
3616 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1881 a000");
3617 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1882 a001");
3618 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1883 a010");
3619 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1884 a011");
3620 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1885 a100");
3621 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1886 a101");
3622 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1887 a110");
3623 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1888 a111");
3624 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1889 a200");
3625 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1890 a201");
3626 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1891 a210");
3627 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1892 a211");
3630 static const fp12_t var_a = { { { {0xE490FFBE, 0xF4B5CFA5, 0x442827AC, 0x803F2570, 0xC920CDC8, 0x1E5C33E4, 0x2671DB9A, 0x951F69AE},
3631 {0xD92C373C, 0x359C1914, 0xDD306EDA, 0xBE75711B, 0xFE06F8D6, 0xC8FD3E3A, 0xBEA9D815, 0x32BD6B17} } ,
3632 { {0xE467EC3E, 0xE3F294A9, 0x329C33A0, 0x0792471D, 0xDD4207AD, 0x3A3D5243, 0x8260416B, 0x196BBAD3},
3633 {0xD8B60A63, 0x729B67E3, 0x3689620D, 0x9D1F74B2, 0x8D4EC7B2, 0x5CCD086B, 0x7605DCB4, 0x68DD164E} } } ,
3634 { { {0x5F5D7F96, 0xE7F7144B, 0x098D4677, 0x1A24E4D7, 0x69C9FB91, 0x3E965879, 0x98034624, 0x93215B98},
3635 {0x114FE6BD, 0x05A2038E, 0xC91A04EB, 0x7E63A535, 0x3EE82957, 0x1086672B, 0xE6411595, 0x4CD33951} } ,
3636 { {0x55A53D63, 0x006974D4, 0x2D4D97BC, 0xAE82A8DE, 0xD3BBCB20, 0xB45045B4, 0x155670E8, 0x1CACE412},
3637 {0x3E430B89, 0x8D5FA767, 0xCD08A43C, 0xE2909CFB, 0x6A93A42F, 0x6D2F62D6, 0x55561026, 0x8AB432AF} } } ,
3638 { { {0xB9DA1261, 0xAC0A69D9, 0xAF53A419, 0x2E89EA29, 0xD2F47127, 0x29A33304, 0x07777D4F, 0xB2FBF6AD},
3639 {0x5F1185E7, 0x238B424D, 0xCF5940BC, 0x24DA4E5F, 0x9118846A, 0x653F3995, 0x33FA0776, 0x2A13FABB} } ,
3640 { {0xAFB32D8E, 0x3DC2FECC, 0xD7BADF4B, 0x279939C3, 0x629FE4AB, 0x72141F0E, 0x7E59F076, 0xB6AAFF84},
3641 {0xC7F3DA74, 0xECA99E89, 0x8736878C, 0xA6072616, 0x8F29FDC9, 0xF09428E1, 0xE1962F57, 0x82DD55FC} } } } ;
3642 static const fp12_t var_b = { { { {0xCB16E2F3, 0xC1ED8F37, 0x844920F6, 0xA695EB9D, 0x8C9D5E03, 0x2DE5CDB2, 0xEAD92F29, 0x04036CE9},
3643 {0x663C1C15, 0x5778C8AC, 0x816C9711, 0x92B7A1A2, 0x2FE484AF, 0x6925561D, 0xDAF1F4C6, 0x3D9F6F9A} } ,
3644 { {0xB055BF98, 0xDF256468, 0x0E9FC321, 0x3A419FF2, 0x0933B648, 0x6790287A, 0x9EA7DCE7, 0x062892BA},
3645 {0x8EB919B3, 0x0BDBB9B4, 0x5F79ECCE, 0x59761233, 0x483F296E, 0x2DF5A9E5, 0xEE82BFD2, 0xAC8AB9CF} } } ,
3646 { { {0x542FD9CF, 0xEB5D62AE, 0x3BFFAB3A, 0xBAD3CE7C, 0x7FD9698B, 0xE8EF3CBA, 0x75EC2BFC, 0x03396371},
3647 {0xE6BDC8F6, 0x31899392, 0x983918AB, 0x0C065606, 0xFE1088F3, 0x72A94A7E, 0x0078EEEA, 0x516C45F5} } ,
3648 { {0x7A2890FC, 0x9CC7EA84, 0x5DBC2257, 0x08FAF018, 0x044EC89D, 0x434538B1, 0x97DECAF6, 0x0598AFA4},
3649 {0x8BC5700B, 0xF7B65C2D, 0x49AE1448, 0x5C216EED, 0x6CEB88FF, 0x8F93E03D, 0xA24210BF, 0x625C6322} } } ,
3650 { { {0x388FD020, 0x0F5F22D0, 0x64F8C0A7, 0xD6BE354E, 0xE7370850, 0x497A98D1, 0xAF7C9FDB, 0x107620F8},
3651 {0x07788CA7, 0x23CF44E5, 0x5FC7A868, 0x0AF9F26F, 0x03A1845F, 0x7DC69FA3, 0x06CFE356, 0x7EDB5CA6} } ,
3652 { {0xE1962473, 0x094F6C44, 0x8EA912FC, 0xFAB32797, 0xAAAF7453, 0x7989570B, 0xADDBC12E, 0x6D08F056},
3653 {0x2E072DBC, 0x1F1FE88F, 0x17C6229C, 0x0133B6F3, 0xFCF64D69, 0x02366B0B, 0xDE3BB77F, 0x6DDDDA98} } } } ;
3654 static const fp12_t var_expected = { { { {0x16EBC0C7, 0x7993A1FD, 0x656806E3, 0x666C9208, 0x8EA190B1, 0xC0296631, 0x2A509595, 0x1558D082},
3655 {0x7E458A28, 0xFE9CC4CC, 0x4193AC18, 0x320A2619, 0x74ED42EA, 0xD59AC200, 0x2E99FD76, 0x5F3AD2D9} } ,
3656 { {0x1CC8BB03, 0xAF8F28A1, 0xD89C44FD, 0xBE830BB6, 0xD67EE064, 0x93FA0FEB, 0xC495EADF, 0x9DF195BF},
3657 {0x5CEFA842, 0x777C835B, 0x0EEE891C, 0x1E804F82, 0xCD365163, 0xB50E46C6, 0xC82E1BC2, 0x5CE65DFA} } } ,
3658 { { {0xA8D3D4B9, 0x47883798, 0x2005BACA, 0x7C3ACFFE, 0xF4C9B79E, 0x6923ABC6, 0xAA9B545F, 0x0487C025},
3659 {0x9198C62D, 0x5E352CF9, 0x14B17313, 0x001E1DA0, 0x2CF5631A, 0x7993CC8B, 0x2A08DC32, 0x44DFBBE0} } ,
3660 { {0x8D30BC49, 0xB5ADF281, 0x70B95D61, 0xFBB3685A, 0xD6A0DE6E, 0xC7D92C11, 0xCA86F5C6, 0x8C13948E},
3661 {0x93341A4D, 0x3365A74E, 0x5EBC4E19, 0xEB9FD557, 0x7F0F0431, 0xF9CE8EFE, 0x83ACFF83, 0x6BE1DA97} } } ,
3662 { { {0x38A0CF5D, 0x0E686549, 0x35CAB842, 0x0CD630B8, 0x73D1247F, 0x308B3FD9, 0xFF11A1FB, 0x73320B6A},
3663 {0xCE9B291F, 0x64AB09C0, 0x2E220CE2, 0xDF2389DD, 0xBB47A3E8, 0x1C8DF888, 0x05685724, 0xB9542A37} } ,
3664 { {0x4DF81503, 0x55733778, 0xEC5B6F39, 0xEC507A0D, 0x8355F3B0, 0x59E47975, 0x0F472B48, 0xA7A61B22},
3665 {0x00689409, 0x34FAB522, 0x920064E1, 0x2810609B, 0xA6313CA5, 0xFCE9B12C, 0x4F7605BE, 0x3323784B} } } } ;
3667 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1893 a000");
3668 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1894 a001");
3669 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1895 a010");
3670 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1896 a011");
3671 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1897 a100");
3672 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1898 a101");
3673 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1899 a110");
3674 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1900 a111");
3675 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1901 a200");
3676 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1902 a201");
3677 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1903 a210");
3678 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1904 a211");
3681 static const fp12_t var_a = { { { {0x333A66BF, 0x0BD05B91, 0xF057F69C, 0x9BCF7018, 0x24C7DE96, 0xC131103C, 0x33DB1E06, 0x92E59FB2},
3682 {0x9F6F5701, 0x1D437CF0, 0x58364794, 0xD3D8AE5F, 0xFA4FDAB6, 0xB5D4792A, 0xFA323D65, 0xA6240C5A} } ,
3683 { {0x1F0BC8FF, 0x35B68CEF, 0x1157569A, 0xFD1751AC, 0x57464455, 0xC01AEC0D, 0xF5A61105, 0x0A5A3BD6},
3684 {0x905A3715, 0x67B11311, 0x6FC41A8F, 0x3CBD5CEF, 0xFECD8277, 0x078B7B47, 0xD5D85F10, 0x49E7D245} } } ,
3685 { { {0x9F2221A8, 0xC34A2B4A, 0xF8A94C32, 0x3E1CF5F0, 0xE78767ED, 0xC6BF9C6E, 0xC824E24D, 0x3A541C24},
3686 {0x28F7AB22, 0x1706E7D4, 0x7C9F91D6, 0x7E017C3B, 0x89F42FFC, 0x8222BE06, 0xE804F577, 0x095581BA} } ,
3687 { {0x83F52591, 0x3F292A00, 0x3900910F, 0x6211542A, 0x1B07DFFB, 0x619A718A, 0x691A28AB, 0x8D567B06},
3688 {0x477CF1F8, 0x9701E541, 0x476F7C2F, 0x3BDA7BEF, 0x2A30AC6E, 0xA334BC74, 0xB1A0B077, 0xA42B346B} } } ,
3689 { { {0xE048A2A8, 0x91D8997C, 0x93A51D80, 0x6509538D, 0x923FDD8C, 0xDE610779, 0x2DB8F555, 0x03177743},
3690 {0x05CC4255, 0x6D7736BC, 0x4D778974, 0xCF57AB63, 0xD0FBEC48, 0x77A83F22, 0x634A2189, 0xA87C8735} } ,
3691 { {0xECAC9B6D, 0x7D56131F, 0xED5DE5D3, 0x17B42DBA, 0x9D8D2800, 0xE899EF73, 0x4E9AE01F, 0x1752A29A},
3692 {0x44A39207, 0xAB244AB8, 0x55BE9993, 0x97FF0BBA, 0x252AABE3, 0x58431F0B, 0xA6524660, 0x587B5615} } } } ;
3693 static const fp12_t var_b = { { { {0x6E1A28CC, 0x4D26570A, 0x8CC2EC23, 0x240A541C, 0x11FF3073, 0x4709343C, 0x55FF5D00, 0x3C18E91D},
3694 {0x5B2B3C2F, 0x3F527BFA, 0xC91E6B6B, 0xFEC26793, 0xD3AE6E80, 0x59F26E9C, 0x859A6B98, 0xA2E018C9} } ,
3695 { {0xD436FFEA, 0x7245C605, 0x14F0387A, 0x44AF9587, 0xF3285621, 0x6EE92852, 0x1D6B2B53, 0x0DC784F5},
3696 {0x4FD26A05, 0xA836A5EE, 0xFBC3CEA8, 0x2C7DB310, 0x9E2C2015, 0x4A809199, 0x0C99F02E, 0x0B4BD2EE} } } ,
3697 { { {0xD33717D8, 0x1A6ECC30, 0x95E089CD, 0x07D80C80, 0xE051A2B2, 0x031E53F0, 0xDF9F7E99, 0x350D5A05},
3698 {0x0F0FF5F8, 0x7E3B64E2, 0x70C45DEC, 0x0C486B2F, 0x5DFCD149, 0xBF216528, 0xF84D8A29, 0xA19B9CFB} } ,
3699 { {0xEAC9F8D4, 0x4B2E1599, 0x9BC483F5, 0x04946FEA, 0x073FD74F, 0x88F653DF, 0x94881790, 0x6549C2CE},
3700 {0xF4EC5485, 0xA6E7B247, 0x0DCBB695, 0x420BE88F, 0x9B6279D6, 0x4B8A2888, 0xE087AF43, 0xA8E596FA} } } ,
3701 { { {0x1DE68A19, 0x2A66115B, 0x2F0F5A01, 0x12768809, 0x81ADFB07, 0x74EDCDFC, 0x839F21EE, 0x66842AF1},
3702 {0x7FBBE6FF, 0x753787F9, 0x3D0761CA, 0xB4B1656B, 0x4BBC013B, 0x1C15AF33, 0x5E34CF44, 0x34D87794} } ,
3703 { {0x3DCBEE67, 0x8575EBFE, 0xD2DB96BD, 0x53C8EAF7, 0x6412DC00, 0x743074C4, 0xA9224022, 0x0BF47CE9},
3704 {0x27CFB2BE, 0x019D9C78, 0xCD18A4A3, 0x0C03B72D, 0xCE8A11DC, 0x3BA8558E, 0x045AF45B, 0x0B31FB56} } } } ;
3705 static const fp12_t var_expected = { { { {0x8308FE23, 0x38AAEB81, 0x7D386952, 0x3FCD5394, 0xA655121D, 0xD9D16D64, 0x130444BF, 0xAD2FB55B},
3706 {0x320B4576, 0xFBB83897, 0xF1ED104F, 0x8538DA70, 0xB65F907F, 0x030D8F51, 0x23CD6770, 0x4A257CAF} } ,
3707 { {0x185AF9AB, 0xA1F3AF39, 0x3839FDAE, 0xDDB1319F, 0x1874C62C, 0x2DA5311F, 0x864B7120, 0xA5D1713B},
3708 {0x1027F4EA, 0xBFB76034, 0xB8D0296E, 0xEE4DDB7F, 0x6DE126F4, 0x5388936B, 0x4A1693EB, 0x0107E7D5} } } ,
3709 { { {0x3ED580E3, 0xD9AB4F04, 0x10DEB17B, 0xEA9B6163, 0x73392986, 0xD6726369, 0xB9546888, 0x5A70D65C},
3710 {0x130B5C29, 0x80A5C91F, 0xFF4E1459, 0xE98B3701, 0xAF2F83AC, 0xD2C7580B, 0x4FFD0F64, 0x3194B7A5} } ,
3711 { {0x7012D875, 0xDF304092, 0xA5F35ADD, 0x259FD494, 0x398178B4, 0x2944E59D, 0xA618639D, 0x4AACB329},
3712 {0xAD014F72, 0x44138EC8, 0xC7C48B22, 0xD5073B5A, 0xD1429466, 0x330B5B48, 0xCB33489D, 0x78CA015B} } } ,
3713 { { {0xB992645E, 0xC8622503, 0xAD071507, 0x86D37191, 0x5A8226EC, 0x7B400481, 0x7870713E, 0x38BF8026},
3714 {0x5F4929BC, 0x1AA590E1, 0x148374D7, 0xBC70760E, 0x434A8A05, 0x24A7B298, 0x626C6716, 0x6592E056} } ,
3715 { {0x3544EC30, 0x4E0E4434, 0x6638CFDB, 0x30348B21, 0x1B15AA54, 0x5C9F4DF7, 0x03C2DD48, 0xA6B1C907},
3716 {0x46588745, 0x96583C53, 0x73EC2B81, 0x85A710FD, 0xEDB4EB1E, 0x9911615F, 0x1221BFC1, 0x6A624425} } } } ;
3718 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1905 a000");
3719 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1906 a001");
3720 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1907 a010");
3721 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1908 a011");
3722 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1909 a100");
3723 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1910 a101");
3724 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1911 a110");
3725 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1912 a111");
3726 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1913 a200");
3727 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1914 a201");
3728 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1915 a210");
3729 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1916 a211");
3732 static const fp12_t var_a = { { { {0xFD0572C1, 0x16AE51D8, 0xEBD0EFEE, 0x54FFC6BA, 0x27963141, 0xF78B503B, 0x8E58FC65, 0x3999676E},
3733 {0x3ADA1C36, 0xB9C466F5, 0x880DCDB1, 0x1D96FBEA, 0x6391B711, 0xF25C9516, 0x3AD65DFD, 0x5A4FF10D} } ,
3734 { {0x50031A74, 0x439BDE76, 0x5E82041A, 0x0C9E0DA2, 0x242C1DC1, 0x77E2ECF0, 0x30D3543F, 0x05BA8F35},
3735 {0x0E744575, 0x16103BC9, 0xBBC0664D, 0x2438533B, 0x0CAA6BF5, 0x901CAC39, 0xF2913BF8, 0x788942EE} } } ,
3736 { { {0x8CBF0B95, 0xC2956F83, 0x540D2F29, 0x6663DDBA, 0xB6B69E21, 0xAE58AE09, 0x015D089D, 0x9A33DAF9},
3737 {0x72CAFD3D, 0x4F939A55, 0x41FE1CF1, 0x1BF87CEF, 0x5FA72FAC, 0xA19ED69D, 0x77797F48, 0xA9520A9D} } ,
3738 { {0x08FCD7DD, 0x810306FD, 0x97AFD654, 0x62B8978D, 0xF977FC1D, 0x0F583FC6, 0x40334281, 0x03DFB3E6},
3739 {0xF4306701, 0xC0399F18, 0x681195BB, 0x04541E38, 0x35C30185, 0x38661F7D, 0xB71A2D49, 0x3E5DCE96} } } ,
3740 { { {0x442ACA7D, 0xE2A0485C, 0xBABBF7FE, 0xBEEA40C7, 0x0D5CEFC8, 0xFC9954BF, 0x2A517988, 0x4F73C117},
3741 {0x078085FF, 0xA3F08E86, 0x0AF403BE, 0x5CFF248A, 0xF44F7634, 0x7CCCD56D, 0xCBE62B15, 0x3D85E07D} } ,
3742 { {0xAF567A34, 0xA0EE3ADE, 0x5A941139, 0x92EBFF96, 0xDABC06F5, 0x723E93D7, 0x4E264757, 0x7021E04E},
3743 {0x3590B9BA, 0xF03B8EF0, 0x29A59D72, 0x61C9432E, 0x79F39E78, 0x0F8D2F53, 0x9E031382, 0x0DE8FEB7} } } } ;
3744 static const fp12_t var_b = { { { {0x8157622E, 0x8358FDF6, 0x4AACF22B, 0xE3F35FB1, 0x06CFF30C, 0x1B26ABDA, 0x8F853ED0, 0x513BC7AA},
3745 {0x67325EB6, 0x196AA5F9, 0xA13482C4, 0x74354C1C, 0x9B9E3168, 0xAFA785BF, 0xEC25BA7E, 0x1239DDB4} } ,
3746 { {0x426655F5, 0xF970F60D, 0x047A8222, 0xBD38BC2C, 0x7147B6F3, 0x9081FC50, 0x020505A8, 0x7F06CCA0},
3747 {0x1757301F, 0xB5BA6255, 0x25BE0F15, 0xCBDF6D6C, 0x1C576E7A, 0x2F4597AD, 0x1B908F37, 0x5F8FDD2F} } } ,
3748 { { {0xFA962993, 0x13923593, 0x8A583A56, 0x8D70C0E9, 0xCCAAF70A, 0x49512004, 0xC7EE8DE8, 0x9419EAC7},
3749 {0x0FB477F1, 0xACADD64A, 0xE8B25CBD, 0xD5A9827D, 0x3F80ACF0, 0x10A27CDE, 0x25648722, 0x4885AF72} } ,
3750 { {0x32F6F876, 0x85057C03, 0x19B3B40A, 0x1021E6A6, 0x12E2922D, 0xA1955F0F, 0x1D526AA1, 0xB89871E1},
3751 {0x89A2466E, 0x0A65C0E6, 0xE8C05DD9, 0xEDD9EC76, 0x1D6D79CA, 0x5A12440D, 0xFF27E511, 0x517366F9} } } ,
3752 { { {0x74FE8459, 0x5CACBDD3, 0x1C5248B5, 0xFA372B67, 0x941586B8, 0xB21C0794, 0x96AACAB8, 0x8846BFB6},
3753 {0x77267948, 0xD3C5FB55, 0x216D96BD, 0x931D0A99, 0x651F53F8, 0x8BDDBC9A, 0xFFF48C99, 0x1DB535B0} } ,
3754 { {0xD62E20CB, 0x97C5BDD2, 0xBB86404C, 0xCA260A09, 0xAC77586A, 0x7E739906, 0x526A7D04, 0x77A0F9F7},
3755 {0x7219E190, 0x0FCDA3DE, 0xFA6142CC, 0x906E9FCB, 0x662DC825, 0x087542E9, 0x5E422490, 0x93748A71} } } } ;
3756 static const fp12_t var_expected = { { { {0x010012D1, 0xFCE1C908, 0xE8D7C0BA, 0x32A83DB4, 0x8C160026, 0xAD57B3DF, 0x1143591D, 0x589617C6},
3757 {0xA16E3FE2, 0x1A08E296, 0x1E61BA7B, 0x1F45C87B, 0x6AC5FBAF, 0xF880E873, 0x09D67339, 0x55DED11C} } ,
3758 { {0x3A94A88E, 0x5C8AD948, 0x1631980D, 0x4B1D8855, 0x35BD2FFF, 0x95FC4255, 0x9C5A878E, 0x63054D9E},
3759 {0x501357E2, 0xFCFC4DFB, 0x04E77AED, 0xE02C3A62, 0x5120577C, 0x42FC8D60, 0xC5D67253, 0x36CC75C6} } } ,
3760 { { {0xCE21124F, 0x1EAF7961, 0x0B0FB7C6, 0x8DD77747, 0xE48FC371, 0x4221035D, 0x0E0E385D, 0x7075E72B},
3761 {0x27BC2A99, 0xCD833957, 0x9C11CF24, 0xAAF4885B, 0x09D5E1BB, 0x94038CEB, 0x022EE742, 0x6DC4BA3A} } ,
3762 { {0x203F56E5, 0x2E48F59C, 0x2CB30169, 0x00BF3513, 0x875DDBE1, 0x53FB1F16, 0xB8F4E9F5, 0x8FFF65AA},
3763 {0x43C0A078, 0xF05787F8, 0x9CA23B44, 0x3060798C, 0x5E5281E5, 0x899FE43B, 0xC869BAAD, 0x7A08F426} } } ,
3764 { { {0xA711B230, 0xE61373B1, 0xB16C3356, 0xECD90583, 0x4DB96245, 0xEF2BE649, 0x47E3E275, 0x9B98D10E},
3765 {0xC1438EC7, 0x8385D3F4, 0x3CB1ADF5, 0x315DD112, 0xCCDA16DE, 0x3AD448A6, 0x096B99EF, 0x0050BC43} } ,
3766 { {0x49D96199, 0xC5177B85, 0xD9C7F1DD, 0x9EE7E767, 0x1DFA10C2, 0x8C64F3AC, 0x9F1ACE9C, 0x6BB9961B},
3767 {0xEDD32C9D, 0xA971D5C3, 0xF121759D, 0x3142C9B3, 0x9D585893, 0x152E4684, 0xD08BDD93, 0x197C0B02} } } } ;
3769 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1917 a000");
3770 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1918 a001");
3771 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1919 a010");
3772 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1920 a011");
3773 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1921 a100");
3774 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1922 a101");
3775 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1923 a110");
3776 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1924 a111");
3777 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1925 a200");
3778 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1926 a201");
3779 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1927 a210");
3780 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1928 a211");
3783 static const fp12_t var_a = { { { {0xAA0BB580, 0xC7E5E935, 0x42BB8569, 0x7BF0A5A8, 0x11455B9C, 0x1499F93A, 0x2270995E, 0x2ECBB800},
3784 {0x1F2A363E, 0x22A0A780, 0x1AC84FC2, 0x8366BD01, 0xEE2C6109, 0x4050887B, 0x46602BEE, 0x150D7417} } ,
3785 { {0xA12D5D1D, 0x0FD56A6E, 0x5CEB589F, 0x60DB11CE, 0x3C2476EC, 0xDF9E2AF3, 0x07B22D82, 0x765F53FF},
3786 {0x99F6E44E, 0x920DE99A, 0x306AB72F, 0xAF0F7A2E, 0x7A09A258, 0xF60E0733, 0x002559BB, 0x8D808A54} } } ,
3787 { { {0x16290778, 0x1FFAAD71, 0x25FA34B5, 0x9AC4419A, 0xB46B15FC, 0x4062DA1B, 0x296F1DC4, 0x33EED90E},
3788 {0x797BC73F, 0x6427A39A, 0x1CCD9965, 0x6B55C95F, 0xC2723C18, 0x8213C210, 0xF4BCD9CD, 0x737A1E49} } ,
3789 { {0x2B360236, 0x5B548AFB, 0xF62282EF, 0x485464AF, 0xAE2ED061, 0x7543FC4B, 0x7C2F96FA, 0xA29B8E64},
3790 {0x4D3446EF, 0x08CA5D6E, 0x4F00A53F, 0xB5D458BA, 0xF5B28FBC, 0xFA8D7228, 0x32A3486E, 0x67E7BA04} } } ,
3791 { { {0xFC4C1950, 0xF5AB1344, 0xEA1EDDF8, 0xAD78E7B1, 0x48B59CCE, 0x6A1E29A8, 0x8BD2B610, 0x84FD2B5C},
3792 {0xE82B174C, 0xD09669C1, 0x812396E5, 0x4FD733FD, 0xA41D405D, 0x5364009A, 0x9E2C0E35, 0x7476F4FE} } ,
3793 { {0xEE0F5AFC, 0xB194F905, 0x3A314666, 0xD3A8C816, 0xAAF30303, 0x42A0F12D, 0xF65DE48D, 0xB29C432E},
3794 {0xCD923ECB, 0x95E97931, 0x12B9BEC5, 0x48102A16, 0x43113594, 0x170E55F3, 0xC6B39DAE, 0x4DCB2B9D} } } } ;
3795 static const fp12_t var_b = { { { {0x2A2F6B3E, 0x02E7DE76, 0x5C80AA76, 0x30026FCB, 0xDA91A72B, 0x2D6E0EAC, 0x19A11CF8, 0x8C96C40F},
3796 {0x8EC281AE, 0xB5276259, 0xE9EF4B82, 0xB5E4A960, 0x383BA449, 0x0252B351, 0x0DA012C4, 0x46AF00F3} } ,
3797 { {0x00F3EDFC, 0x10923782, 0x6973E384, 0x4825F11E, 0x396543A9, 0x933665C2, 0xCA6457C4, 0x8CA395E5},
3798 {0x7AC3BFC8, 0xC7D4D558, 0x5E08419E, 0x4535C2E1, 0x57573E7A, 0x2C4783A8, 0x367DA946, 0x55443525} } } ,
3799 { { {0x69C841B2, 0x77497FB1, 0x32224B30, 0xF03CB18D, 0x7401DD25, 0xC8CAD444, 0x6D830CD8, 0x04B4FD91},
3800 {0xE1EA94B9, 0x381BD284, 0xA6755576, 0xEE5BE771, 0x7EABDA15, 0xE0686D9B, 0xB55A54D6, 0xA9ED86B4} } ,
3801 { {0x37B15B0E, 0x31229F9F, 0x23BABA2D, 0xB1CBD2F6, 0xDB6DB8CE, 0xA6AECE3C, 0x148F3978, 0x8EA1C117},
3802 {0x47D0EA48, 0x3958330D, 0xEBA2A0E2, 0x263C8944, 0x586B54A7, 0x26828EB2, 0x2C755025, 0x6BCAB4B1} } } ,
3803 { { {0xC1E5B247, 0x20B0EF40, 0x6049F40D, 0x473EAA1C, 0x337E65A3, 0xD0BB81BC, 0x3203F2C7, 0x907FFC62},
3804 {0xE7FC379F, 0xDD0733DA, 0x60D12E8E, 0x276983BD, 0xA97DA799, 0xE7EB419E, 0x4F2640F1, 0x06E3CD88} } ,
3805 { {0xB1F53DA4, 0xDC7D2C94, 0x64636833, 0xCB669FA7, 0x1701135E, 0xFFEF5807, 0x4C2705D2, 0x6B544E19},
3806 {0xCB4CAC62, 0xC5E075B2, 0xE85E1A63, 0x0A6E6F61, 0xBF456834, 0xB3FA1580, 0xD2788FC1, 0x9AEDEA85} } } } ;
3807 static const fp12_t var_expected = { { { {0xEB32A713, 0x37C78CC8, 0x80F20D1F, 0x6B13A7EC, 0x8DE0C636, 0xC7234F59, 0xC944E43A, 0xA4098D8B},
3808 {0xD94D4A4D, 0x5AB0CF78, 0x04C344F8, 0x4847932D, 0xCB312386, 0x5D1BEB25, 0xA6E88124, 0x85287745} } ,
3809 { {0xD5030C98, 0x0C296CB6, 0x8B425DE4, 0xD24C823D, 0xBE6F1121, 0xFC152C46, 0xAF8D4789, 0x67606F77},
3810 {0x4FF9D8B3, 0xD31935DC, 0x1949C1DE, 0xE4BDFCBA, 0x6596586F, 0x57552C7B, 0xE29FC7BB, 0x4FB001C9} } } ,
3811 { { {0xB0157CF0, 0x31B95E7A, 0x09713079, 0xCA6A02B8, 0x341C1C5D, 0xF79F9A31, 0x0705EE5C, 0x037CCC27},
3812 {0xD22DD0E5, 0xA6945C27, 0xDFD9F144, 0x57465A3F, 0x17D87728, 0xAA2C3BCF, 0x872D9A54, 0x4513B800} } ,
3813 { {0xFD826178, 0x1B0F9594, 0x1F5297D3, 0x26C05757, 0x98267CFB, 0xB7B6579B, 0x12CCEA30, 0x929189B6},
3814 {0x6F00F691, 0x9DF852A1, 0x9707B9AF, 0x54E2108E, 0x3E817BCC, 0x8A8350FA, 0xCEB6FF41, 0x69525996} } } ,
3815 { { {0xEDB0652A, 0x8AFE0B15, 0x6FCF6BA1, 0xF37CF586, 0xA4EA0460, 0xA6306139, 0x81CB3E45, 0xA43E90A0},
3816 {0x9F318645, 0x4FBD5D0A, 0x32C7D50D, 0x4D5532A1, 0x2A09358A, 0xDEE8EA41, 0xA41EC01C, 0x0A4F5485} } ,
3817 { {0xD84E94ED, 0xE193AF5A, 0x893A8BB6, 0x7EB88C94, 0x24C40723, 0x10FA5EF0, 0xF647CC2D, 0x107F36D0},
3818 {0xB5FB3DB9, 0x08D243C9, 0xBB521FA8, 0x1A78D6E5, 0xC75AB2BA, 0xE021E642, 0xDC6CDE2D, 0x3D99A890} } } } ;
3820 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1929 a000");
3821 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1930 a001");
3822 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1931 a010");
3823 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1932 a011");
3824 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1933 a100");
3825 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1934 a101");
3826 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1935 a110");
3827 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1936 a111");
3828 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1937 a200");
3829 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1938 a201");
3830 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1939 a210");
3831 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1940 a211");
3834 static const fp12_t var_a = { { { {0x3F08EFFE, 0x3F58B852, 0x25FBE315, 0xE8421584, 0x7C60038C, 0x2CF9BCDB, 0x8D670510, 0xA1EDF183},
3835 {0x168EC6EE, 0x405E282C, 0xC74643D4, 0xFD848711, 0x438141A2, 0x23EF36A4, 0x977EE38B, 0x0ACE9248} } ,
3836 { {0x53791B46, 0xE8DA6DFC, 0xD8095745, 0xE1EE9CDC, 0x679FAE99, 0xED04A235, 0x7D2993F7, 0x8B9882DD},
3837 {0xDD42E615, 0xCB6727D4, 0x0E961BE2, 0xCF8E8AAB, 0xAF1E9511, 0x06A29164, 0x08E04A1D, 0x0D154334} } } ,
3838 { { {0x88ECD665, 0xC5166E8C, 0x81C5DCA5, 0x1A303A45, 0x7F718A0E, 0xE89F9AEA, 0xFBD79EA6, 0x537B1F5C},
3839 {0x356D1F62, 0x1846F9F6, 0x71C7DE5C, 0x0436427D, 0x473F6D2B, 0x43187C79, 0x360F47ED, 0xA36A838E} } ,
3840 { {0x5A6DDA8E, 0x930D7D47, 0x267C3E99, 0xAA2E7585, 0xF7399C16, 0xFF6A001B, 0x69828D19, 0x6325941D},
3841 {0xB3F8D678, 0x6258FB5E, 0x663ABF24, 0xFFC080D1, 0x3A687EDA, 0x84BECC48, 0xC9A83C3B, 0x74BCD710} } } ,
3842 { { {0x81227CA0, 0x7CFB84FC, 0x10E4ADA5, 0x3A2BFD0D, 0xA229C267, 0xDF44066B, 0x76A45F0D, 0xB0A9E6A6},
3843 {0xCA249C7E, 0x843A9891, 0x02190070, 0x97B1C37D, 0x6FDBF74B, 0x7B16087A, 0x810F5CF3, 0x79C6846D} } ,
3844 { {0x52B921B3, 0x011CD88E, 0x062BBDC2, 0x2DD4B550, 0xDEF7C4DA, 0x8DEF6A81, 0xBF6C48DD, 0x1B9C108A},
3845 {0x6FFA653E, 0xB19FC710, 0x31979988, 0x9AAA2EC2, 0x94C68BCA, 0xC383FDF0, 0x317AC1C4, 0x05A36E3D} } } } ;
3846 static const fp12_t var_b = { { { {0x2088021F, 0x149120FB, 0xF77C195F, 0x9AA1390F, 0xD3E8E678, 0xA581726E, 0x9C2FA97D, 0x08FA9EE6},
3847 {0x536D57AC, 0xEF0D6E1C, 0xEDDCAD1C, 0xFE13355F, 0xCE3B98D8, 0x91F22506, 0x09FFB626, 0x927EA286} } ,
3848 { {0xFBEBCFFA, 0x580834BA, 0x7723B0DF, 0xB120F092, 0x774F8100, 0xFEDE8C50, 0xFC8A4DFA, 0xA2EE729E},
3849 {0x3E6CACB7, 0x7AE0A01D, 0x3BF877B8, 0x29C6E0FB, 0xBC1540A9, 0xD6DD3FF9, 0xF04AD3A6, 0xA330125F} } } ,
3850 { { {0x40683ACF, 0xD6CF6D9E, 0xE234D211, 0xC7154CC2, 0xCAF0557E, 0x5044D0EA, 0xDAF2B296, 0x7DCEF23B},
3851 {0x35620A8C, 0x6B6887C3, 0x0C169B8A, 0x3F74B549, 0x86C1EB92, 0x54D982EE, 0x3F41CBCF, 0x7A57E861} } ,
3852 { {0xB0362E9C, 0x27AEB8F4, 0xB69ECDD5, 0x6A842151, 0x4EA63218, 0x4F76EAD2, 0xA43FB5AC, 0x12D49CBC},
3853 {0x9C5155AE, 0x77210787, 0xD1BEF07B, 0x82D7E848, 0xFA794B93, 0xCD40EACB, 0x6428B6FA, 0x7DBFE642} } } ,
3854 { { {0x515E8DD0, 0xA6ACB366, 0x7D83A842, 0x253FB219, 0x38A3E29E, 0x1A182EC0, 0x663077C1, 0x7A554BFF},
3855 {0x48963C0A, 0xA9B570BD, 0x88757EAB, 0xA5D05BA6, 0x64B11145, 0xE9872D7C, 0xB0F14A9E, 0x5072BAAF} } ,
3856 { {0x3C0BB79E, 0x989A6781, 0xDCF898BF, 0xCBCB4D27, 0x60AB411B, 0xF85C5C6D, 0x52399CF2, 0x47FAFE52},
3857 {0x6A426400, 0x5C23764E, 0x07A23F3D, 0xF23781A4, 0xC5FE94BD, 0xBA6CFE64, 0x506D61C5, 0x0FD5B03A} } } } ;
3858 static const fp12_t var_expected = { { { {0xAAF7E46A, 0x0A78212E, 0xAE2F16A5, 0xEA302FE4, 0x868AC77D, 0x6E89EFF2, 0x58BE0366, 0xB6CCFAAF},
3859 {0xABB8A495, 0x3CAAFF07, 0x3300AF28, 0x73B88656, 0xCF387FCC, 0x363C5476, 0x311EDD95, 0x3FB89E4D} } ,
3860 { {0x0D6853DF, 0xAE4D1D65, 0xBC3DCA8B, 0x31F8264C, 0xDBCA3B18, 0xD6940353, 0x4EAA5AA3, 0x38C11C35},
3861 {0x88E20109, 0x92D457D1, 0x66D88EF9, 0xF141BCFB, 0x47D953BD, 0xF494FD94, 0x6958D36F, 0x10D63861} } } ,
3862 { { {0x9A410C0F, 0x64EBBC15, 0x4C4B4735, 0xD60B14C0, 0x7402FF3C, 0xDC5F9051, 0x5D404FFC, 0x2263A58F},
3863 {0xBB18CB44, 0x0ABB2107, 0xB07D6A06, 0x4EFFD0C7, 0xC0DC948B, 0xD6006E40, 0xB7486991, 0x65716B9F} } ,
3864 { {0x4901137E, 0x5CA30B31, 0x63724D4C, 0x346E15D5, 0xFB521DFE, 0x4CD23D2F, 0x114EEBBE, 0x851464C1},
3865 {0x746B0B93, 0x5BF55915, 0xAB6CF08C, 0xE31C42A1, 0x271D3F9F, 0x5BEC048E, 0xFC2DCDCA, 0x14DFADA6} } } ,
3866 { { {0x3D26641C, 0xEF6DF6DC, 0x94F40C44, 0x8266C258, 0xEC4AC6FB, 0x83C596B3, 0x8CBD6CA8, 0x3854B433},
3867 {0x77ED7C17, 0x8A210379, 0xE17F9F3B, 0x7D0DBC7E, 0x486633FC, 0x8C1665BA, 0x46ADC2FD, 0x48498935} } ,
3868 { {0x0D23C911, 0xE8EAD30A, 0x5F7C87EC, 0xB597F99A, 0x79761276, 0x6E75637C, 0xA7ABCC15, 0x0E88E6C8},
3869 {0xD288F9CD, 0x660D11A1, 0x4387E402, 0xB31D8898, 0xA5D15B87, 0x883BE83E, 0x8B3C3444, 0x484E851E} } } } ;
3871 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1941 a000");
3872 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1942 a001");
3873 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1943 a010");
3874 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1944 a011");
3875 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1945 a100");
3876 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1946 a101");
3877 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1947 a110");
3878 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1948 a111");
3879 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1949 a200");
3880 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1950 a201");
3881 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1951 a210");
3882 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1952 a211");
3885 static const fp12_t var_a = { { { {0xF7262FDC, 0x1057642F, 0x8417AFB5, 0xAAED1DF5, 0xE2CDA92D, 0x836C81DB, 0xA3507365, 0x0EB66A0A},
3886 {0xF03C7D64, 0x86E13F4B, 0xCC9BA176, 0x5D7590D5, 0x48ABBBAC, 0xDB6F2711, 0x2FE95ED6, 0x0951EB8A} } ,
3887 { {0xA5442299, 0x9CC5178D, 0x7CE6ACA9, 0x64FF934C, 0x741F2C58, 0xE7596955, 0xAD9BB853, 0x56522FA5},
3888 {0x2EBA80F4, 0x065EF14B, 0x5A4DB791, 0xDA467AA5, 0x2956CF2F, 0x015A17BF, 0x2525D102, 0x6F55190F} } } ,
3889 { { {0x02A4C078, 0x83B2298B, 0x1EC2D12B, 0xB0737904, 0x5EA6658E, 0xE04E9D6A, 0x837FAC92, 0x439DF334},
3890 {0x0AA24FC3, 0x37B55C59, 0xDC68BA6A, 0x29DB7CBF, 0xFA0DD87D, 0x589B0D16, 0xBF7F6B22, 0x80CFE8B4} } ,
3891 { {0xC1DE9014, 0xB6DB73A8, 0xC6790828, 0xE75114B9, 0x32D1FDAE, 0xB3020231, 0xBE40CAFF, 0x9270E1F9},
3892 {0x46F39FD6, 0xDE3A161B, 0x43926156, 0xF16CCC6F, 0xE80D29E3, 0x99FE2D75, 0x0FAC520A, 0x29FDC5D6} } } ,
3893 { { {0x8BB81A28, 0xFAE93B29, 0x5137177B, 0x4AE8DC82, 0xE24E96CF, 0x451F599C, 0xB8652972, 0x6535225F},
3894 {0x5C14930A, 0x4FC83041, 0x802ECE60, 0x45DCDE67, 0xDFC4C043, 0xDA70368E, 0x9BE96697, 0x4F817018} } ,
3895 { {0xCCB433AC, 0x8C9BBE14, 0xD9F15534, 0xB13E3CDE, 0x47A04ADF, 0x48C037C7, 0x38DFF2AC, 0x10D4C978},
3896 {0xEA027562, 0xF710D20C, 0x0F60FB7A, 0x6C09CE4A, 0x1350D0FB, 0x47A52498, 0x46FEC7DA, 0x691983A1} } } } ;
3897 static const fp12_t var_b = { { { {0x313AB38B, 0xD943FBAD, 0xE87AA4FA, 0x29C2B5A0, 0x175E37BA, 0x3309CE92, 0xE4F0138F, 0x6B344E36},
3898 {0x87D06E8B, 0xAC9631C5, 0x3921DA6A, 0x50F751C8, 0x3D385867, 0x4E7085CD, 0x43F1701C, 0x719ED3D8} } ,
3899 { {0x21D0AE21, 0xCAFD6910, 0x0FFF5769, 0xE0010BCD, 0x29644888, 0x0D3B2AE0, 0xB0A52E79, 0x0742C6B4},
3900 {0x95099D16, 0x8CB5150C, 0x1B90F7AD, 0x1D65CE14, 0xA3B52677, 0x69C1B2E6, 0xF61930F0, 0x4032D70E} } } ,
3901 { { {0x6A28AB37, 0xED4EEC6E, 0x80FF2456, 0x20D9A137, 0x82F33FF6, 0x4107DCC3, 0x78A7CEEB, 0x478C957D},
3902 {0x86D6F2F1, 0xF53FD3FC, 0xB57A878B, 0x3EB5CD91, 0xF5F97F6D, 0xD0225454, 0xDA401D06, 0x7079223E} } ,
3903 { {0xB75AD379, 0x1B6593C5, 0x8CEB87FD, 0xD298C0D4, 0x08192EC7, 0xB5A431DB, 0x5B0A9B19, 0x72214DC2},
3904 {0xC2C76F3E, 0x6137AB80, 0xBE83EB71, 0x10FFE3FA, 0xD541887F, 0x241B16C8, 0x108E44C3, 0xA0757BF0} } } ,
3905 { { {0x47477802, 0x83235360, 0xAD5A7EBB, 0x21636147, 0x1EA5B473, 0x118DC023, 0x7EDD0237, 0x9AACCE6C},
3906 {0x9E64C5F2, 0x5FEC1C55, 0x9AEA41A3, 0x9B40462C, 0x959D1EDD, 0x04AEF163, 0x22ACD1D3, 0x1B881C79} } ,
3907 { {0x0CC9C007, 0xD855924B, 0xD431C1E9, 0x3D817634, 0x4A36CA71, 0x899C95F9, 0x7B1C5B88, 0x63D16F21},
3908 {0x5CB52DB5, 0x224A6908, 0xD97279CF, 0x9FA54135, 0x1F9A3BD8, 0xDC8151A5, 0xBB3F5BF8, 0x348029FC} } } } ;
3909 static const fp12_t var_expected = { { { {0x4D506A4E, 0xF13661C9, 0x77D07884, 0xCD1047F4, 0x6825C411, 0x3734798E, 0x99C96351, 0x61253940},
3910 {0xAD1F9337, 0xBE74F17F, 0xDAD5703E, 0xAC275DFF, 0xBF683B53, 0x5E8DCB48, 0xD370BDFB, 0x7548E19A} } ,
3911 { {0xFCE6C06E, 0xC9705876, 0xD8115161, 0x561FA554, 0xA796A845, 0x74CCBBA2, 0xFC75CCAC, 0x204CF3B6},
3912 {0x56DBEC3E, 0x92DC867D, 0x72A5A816, 0x450B0376, 0x947D26F9, 0x525CCE75, 0xBE475772, 0x1D3B2EFE} } } ,
3913 { { {0x9E7A8BF9, 0xCA06F651, 0x42BEAD67, 0x9C91A47D, 0x2C60F5DB, 0x1FFADC69, 0x4138A987, 0x294CB208},
3914 {0xC58C4221, 0x4F93D5EE, 0x53AF10AB, 0x26B9D566, 0xDAAF6D01, 0x4E6045D1, 0x817E9301, 0x1048312E} } ,
3915 { {0x2F2BDAA3, 0x37E289E2, 0x798695EF, 0xB0EBE115, 0x3CEE8986, 0x20C495F8, 0x792607DE, 0x3CF63BFB},
3916 {0x865D6BD9, 0x276C9898, 0xACEC3AF9, 0x5F7DBD4F, 0xC8D0AE6D, 0xEED79AFC, 0x5881D18B, 0x07B01808} } } ,
3917 { { {0x55E23651, 0x4EDDCC62, 0x03126CD3, 0x307ACA92, 0x45526DF3, 0x7E0FBF06, 0x26875C19, 0x834353D5},
3918 {0x287E37F8, 0xFDF3C4A0, 0x44AA8BB7, 0x2062D7D0, 0x3B5D9DED, 0xB9087B4C, 0x113C8D7F, 0x510D61AE} } ,
3919 { {0xFEC79C5A, 0x1D9A91D3, 0x3C6175DD, 0x2DB70400, 0x1E2D7F89, 0x7876D1F7, 0x6C97449F, 0x5C3E7ADD},
3920 {0x89DED487, 0x74B280D3, 0xA856954F, 0x327935DE, 0x0F87D462, 0xFE46FCDB, 0x9B8E89CC, 0x7E5DAA9D} } } } ;
3922 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 1953 a000");
3923 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 1954 a001");
3924 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 1955 a010");
3925 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 1956 a011");
3926 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 1957 a100");
3927 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 1958 a101");
3928 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 1959 a110");
3929 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 1960 a111");
3930 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 1961 a200");
3931 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 1962 a201");
3932 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 1963 a210");
3933 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 1964 a211");
3936 static const fp12_t var_a = { { { {0xB2011484, 0xB81E3F7E, 0x238A92BE, 0x00516C09, 0x1254ED50, 0x01827628, 0xB0CF0271, 0x8C7C67AE},
3937 {0x2DE85C06, 0x9BC93F59, 0xD5FE24A5, 0x8A2A4554, 0xBC4C0BE0, 0x39698B40, 0xB348DCE1, 0xAD96113A} } ,
3938 { {0xD459A450, 0x18897B5A, 0xAEBDC420, 0x9090F943, 0xAEC9C59A, 0xB7A14AE1, 0x0F0F4D6C, 0x12FB1E23},
3939 {0x792FA07B, 0x2DAA3CD5, 0xFDDC605B, 0x834D9E21, 0x152D571C, 0xD957F7FC, 0x9EC03D2E, 0x8C36CB20} } } ,
3940 { { {0xDCCE554C, 0xCEF6003D, 0x83C592EC, 0xC650F900, 0xEF34B7BE, 0x1118F243, 0x4A3C15E8, 0x749DF043},
3941 {0xFB99A93B, 0x9FE69A31, 0x6F693003, 0x1F887503, 0x2D2025AD, 0xDF909081, 0x807BD280, 0x51E65094} } ,
3942 { {0x2D07BEC4, 0x3917A01E, 0xA529F81D, 0x7AD570EA, 0xBD96767F, 0x76DA71A0, 0x325F0DD8, 0x1DDFC2BD},
3943 {0xEFCD68A8, 0x970A0020, 0x449673FD, 0x152D858F, 0xD3841B6B, 0xC9BB54EC, 0xB0A4D789, 0x48A9ADE9} } } ,
3944 { { {0xDEE29290, 0x892BCC12, 0x5D889C14, 0x744164EC, 0xFCCC4E5C, 0x803E0AE9, 0x113ABD29, 0x76874334},
3945 {0x6CA4FCD1, 0xAEE30F7D, 0x9AA93008, 0x2FBBE243, 0x09E7719E, 0x85834E6A, 0x93CC66EA, 0x050DEC7D} } ,
3946 { {0xF9928573, 0xE9A6BD08, 0x6D3F3A71, 0x15DF03C8, 0x8DEF0C9F, 0xCA9B80D8, 0x39010E2D, 0xB6F1EE79},
3947 {0x58F6198A, 0x0EC8EF78, 0x5B59195F, 0x137250DA, 0xF1C7A40E, 0x6B4066D7, 0x06A64E35, 0x73B15D4D} } } } ;
3948 static const fp12_t var_expected = { { { {0xC7F40CA9, 0x28C0C0A3, 0xF41567FC, 0x77B31546, 0x095FF9D3, 0x6B8F0EC2, 0x0CEB5BAD, 0x930DB0BB},
3949 {0xB8B485F3, 0x0B304C05, 0x393A87F2, 0xCC130BC3, 0xFDC55EA7, 0x237E1286, 0xAF972392, 0x0F9BBC99} } ,
3950 { {0x1327CEA6, 0x1E73365C, 0x2831471A, 0x68A08B11, 0x0E25B8E6, 0xBA8612A0, 0x3AB28A0C, 0x51DEA484},
3951 {0x2A26C65B, 0x5FD9CD5C, 0xF2B9BF3B, 0x5AF7C418, 0x336EBB46, 0x1D2E9F8C, 0xC429AC3A, 0x6BFC335A} } } ,
3952 { { {0x5C44AF13, 0xA94D9D33, 0xDF351F8D, 0xBBEF1892, 0xA324A0D7, 0x43BA7E64, 0x195390F4, 0x48617E17},
3953 {0x44BCF85A, 0xFDC982FE, 0x10639E59, 0x193953CD, 0x003B3AA2, 0x43342E34, 0x01555887, 0x1FF161F9} } ,
3954 { {0x20B3778A, 0x971FD27D, 0x1D35A580, 0xF15391BC, 0x95CEA475, 0xFFED43B7, 0xB514C2B6, 0x6A58303D},
3955 {0x07F6E79B, 0x1EEAF5DB, 0xC5139DB0, 0x6602EF11, 0x9A33B333, 0x7C0BD112, 0x11755FBF, 0x0C6C91B9} } } ,
3956 { { {0x5EDADE5C, 0x8123A9D5, 0x77C2709A, 0x42F952F6, 0x9F9E092E, 0x9669A7F3, 0xEE80FEB5, 0x566E2456},
3957 {0xACE8CF5C, 0x903621A0, 0x540DDFBF, 0x95A8FC16, 0x489E0FDC, 0x648898A0, 0x42B5393A, 0x056F5E71} } ,
3958 { {0xD9C2FDB7, 0x95CB7CE5, 0x22CBE0E7, 0x8682CC8B, 0x8B03A4B4, 0xC10A8426, 0x03DD39F3, 0x4875CFD1},
3959 {0xEB1178B8, 0x8566EDC6, 0x90FA5509, 0xF2E63B24, 0x914B9D39, 0x8E352D5B, 0xABB1482F, 0x016478A0} } } } ;
3961 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 1965 a000");
3962 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 1966 a001");
3963 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 1967 a010");
3964 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 1968 a011");
3965 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 1969 a100");
3966 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 1970 a101");
3967 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 1971 a110");
3968 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 1972 a111");
3969 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 1973 a200");
3970 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 1974 a201");
3971 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 1975 a210");
3972 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 1976 a211");
3975 static const fp12_t var_a = { { { {0xC218708E, 0x14597E99, 0x37D83BE8, 0x72746FAF, 0xE83959F6, 0x34D08098, 0x16B8FA62, 0x7EE6DB2D},
3976 {0xAB5528F3, 0xCC519EC6, 0x1DCA1F0B, 0xAEF5540D, 0xF2AC22A6, 0xFC03C752, 0xF28D5D87, 0x5C62D90C} } ,
3977 { {0xC2BEFF5A, 0x5A5A8112, 0x8F7AAB47, 0x0E8AB48A, 0xA5EAC0E6, 0xF6A07B8E, 0xA61BFE31, 0x68090B6E},
3978 {0x4976B59B, 0xC1E0E55B, 0x42F823BC, 0xA4277DCC, 0x5E1C2AB4, 0x58CFDC3C, 0x6A321B7A, 0x3A9E2423} } } ,
3979 { { {0x1E62FDAE, 0xF6FC1D2A, 0x25D16886, 0xB94A61B9, 0x11C22776, 0x62C17034, 0x4913820A, 0x060AF05F},
3980 {0x844F78FA, 0x06E447A9, 0xB1367F61, 0x3E8F209B, 0xAAEA31E3, 0x5B89AD1B, 0x50B4E7D7, 0x8B12A683} } ,
3981 { {0x75D0F636, 0x90D3174D, 0xBB0F3423, 0x5C3C91D7, 0x6D11DF06, 0x20A87D23, 0xDBF4CE43, 0x47535CD0},
3982 {0xBBAD8324, 0xDCA95AF1, 0x897BDA51, 0xD40923B0, 0xEBCEBFB7, 0xC5BB2D71, 0xFD33F447, 0x6BEA358B} } } ,
3983 { { {0xFF124B27, 0x868F71D0, 0x52E80475, 0x2BB1450C, 0x6956C1E8, 0x4275E690, 0x92BC29CF, 0x93D04BD6},
3984 {0x389A55FA, 0x4B405765, 0x5FA8894B, 0xBA63B859, 0xB24EB860, 0x133669CF, 0x544C7554, 0x8DD112CE} } ,
3985 { {0x2A09F1DC, 0xC9263ADA, 0x2F5C0167, 0xEBB43566, 0xE87A524D, 0x4D454E37, 0xE554A68F, 0x359D95B8},
3986 {0x7EE8D76F, 0x823FB023, 0x5D90B7DC, 0xF565549D, 0x58F73B12, 0xE79204DE, 0x537F729F, 0xA004AA03} } } } ;
3987 static const fp12_t var_expected = { { { {0x2735C505, 0x77ACC844, 0x5B51850E, 0xD740AE73, 0x32AF38A6, 0x7749C2F7, 0xC6258646, 0x37B528F9},
3988 {0x38952D9F, 0x90C011DC, 0xA5D8CE99, 0x0CBFBFC1, 0xA823D880, 0xFD5542DF, 0xA75178E7, 0x93289621} } ,
3989 { {0x8D31914F, 0xE8D6513D, 0xA08E1C38, 0xF41E17AB, 0x377F0B75, 0x42C042D2, 0x045E1127, 0x1EEC2C49},
3990 {0x26E7EC71, 0x29B44F15, 0x26D19EFA, 0x6B8A13E2, 0x61A5E2DF, 0x73905F3B, 0x55CD4552, 0x75B45987} } } ,
3991 { { {0x00AF888E, 0xCA5C67BF, 0xB2199C9F, 0xAB2533C3, 0x2507E35A, 0xE2348B8A, 0x9F52E2EE, 0x53E51C0E},
3992 {0x5BB84CBD, 0x8842E243, 0x416E2724, 0xA45FFD41, 0xA871439A, 0x2EA6A820, 0xCED0580A, 0x464153D9} } ,
3993 { {0x0B21F500, 0x55FEFFAB, 0xE16D90CC, 0x939C27AC, 0x40198FFF, 0x98C85FE0, 0x1485AD42, 0x3626A13C},
3994 {0xF0963DAA, 0x24BFD641, 0x8C1B67BB, 0xD86DF2B1, 0xCF798B0F, 0x8F5180F3, 0x87B47CD3, 0x3976A5F4} } } ,
3995 { { {0xE10950D5, 0x5D75700F, 0x092387C9, 0xAC3D10E3, 0x36FDF6D5, 0xADCDC0B6, 0xBC37FAEE, 0x9C6C1EA7},
3996 {0xDC3F0D62, 0x5741A26F, 0xAB6836BF, 0x1DABE5A0, 0x67CA1511, 0x0298EA2D, 0x8D383BCC, 0x5F2202D3} } ,
3997 { {0xF4ACF0B0, 0x68B2DC2C, 0x01307909, 0x66634D50, 0x1FEAF9A3, 0x728878D9, 0x26B73720, 0x05FD28F7},
3998 {0xB0EE1E8A, 0x6EBDAB7A, 0x98FAAC99, 0x7FEABE0B, 0xB2640F25, 0x293B8AE4, 0xF4D4B84F, 0x16020DBE} } } } ;
4000 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 1977 a000");
4001 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 1978 a001");
4002 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 1979 a010");
4003 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 1980 a011");
4004 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 1981 a100");
4005 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 1982 a101");
4006 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 1983 a110");
4007 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 1984 a111");
4008 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 1985 a200");
4009 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 1986 a201");
4010 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 1987 a210");
4011 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 1988 a211");
4014 static const fp12_t var_a = { { { {0xC95F6E6B, 0xAB02ED6E, 0x3510B3B8, 0x80CE357D, 0x3B1E6695, 0xB4CFE2E6, 0x8CF1B2F6, 0x6CCF745F},
4015 {0x744839D3, 0x56F705A8, 0x80454BA2, 0x453E2669, 0x8CCEF86D, 0xC7EFB1AB, 0x3746DFE3, 0x87A9269D} } ,
4016 { {0x1DA057F6, 0x5052B39B, 0xD042F2C5, 0x5E3E6E4C, 0xCEFA4DD6, 0x74538191, 0x582BB98E, 0x303A321D},
4017 {0x0DBD5D8C, 0xAB296510, 0xF9E0A04D, 0x7DBD12DB, 0x6EA64FAA, 0xAE416B6C, 0x4549D5C5, 0xB4405016} } } ,
4018 { { {0x5EDE9BA9, 0x922C1178, 0xDDA943AC, 0x8EB53BC0, 0xFEF3E3BA, 0x6984E64D, 0xB7BD07ED, 0x4507C5DE},
4019 {0x93AC63E3, 0x8B2E1EF6, 0x719030B3, 0xABA2331C, 0xFBDF92AC, 0x105B8043, 0xD5FE6A7E, 0x8B31AA3C} } ,
4020 { {0x5A02C5CE, 0x0D162E8B, 0x760244E5, 0xF3A1211B, 0x20471EC0, 0x7B69FD55, 0x7E202AF7, 0x26F59893},
4021 {0xD8F1A077, 0x604E35BF, 0xA25F54A2, 0xB4380223, 0x644122EF, 0x915E1785, 0x09ECEF38, 0xB8E649B6} } } ,
4022 { { {0x3C898E67, 0xD258C1AE, 0xC56CC20B, 0xB6FA6400, 0x25D76184, 0x1811A002, 0x24534CF4, 0x899A2954},
4023 {0xC4979002, 0x7A4B2877, 0xC9F3923C, 0x9427FD4D, 0x31D295D1, 0x01AC0A69, 0x8F12918E, 0x7988956A} } ,
4024 { {0xBD8EF0DA, 0xFA4A25E4, 0xA5FBDE60, 0xAC0B405F, 0x174A025B, 0x377114FD, 0x7D6F9993, 0x39E4FCC0},
4025 {0xB6086FCA, 0xB6DABE01, 0x3AE7D88B, 0x2BD1E2CA, 0x6B65D780, 0x5270D7AB, 0x002A4DED, 0x4DF4C89D} } } } ;
4026 static const fp12_t var_expected = { { { {0x2649FC47, 0x047747F9, 0x828C5B8B, 0xE9E8FAC4, 0x24C441A7, 0xE45A8D49, 0xFB5A54E9, 0x6D54DB67},
4027 {0x27EB1A74, 0x31D16CA1, 0xD6F57C17, 0x660C38C8, 0x87C7E52D, 0x397A4CC7, 0x8EB9F2E8, 0x71E7622C} } ,
4028 { {0x5084DE92, 0x86D95F0B, 0x9B7E5BBD, 0xDC95C36C, 0x2A8A5997, 0xC6C8D8C6, 0x64390742, 0x3DA8DCC5},
4029 {0x00322259, 0xB2AD389B, 0x9818E848, 0x5A1459C7, 0xBF86D842, 0x53BE4005, 0xF45F9817, 0x6CB168C5} } } ,
4030 { { {0xB62CB9C8, 0x9F43F1EA, 0xD921ACA9, 0x66436100, 0x099092D7, 0x40B7E3E3, 0x9D845CC6, 0x71B75D2E},
4031 {0x3458F6CE, 0x9803E6CB, 0x0BAEF980, 0x3FAA6976, 0xE5A4CAD4, 0x205F18CD, 0xBA9AF41E, 0x5DA2DE26} } ,
4032 { {0x49171576, 0xF7386E2B, 0x3E73D8DA, 0xBD01636B, 0x1B7CBBF1, 0xA30EC686, 0x02B8EA81, 0xB6FCD881},
4033 {0x6DC04BDB, 0xD9DDFE3F, 0xAECDB6ED, 0x6D3A66B9, 0xA6C2CE3B, 0x25196545, 0x5F962758, 0x06CE85E8} } } ,
4034 { { {0x3AC444EA, 0x55DB9A6C, 0xB30253AF, 0x79689BC5, 0x6B6A4624, 0x66993FDE, 0xFBBC323A, 0x373135C6},
4035 {0x800D07FB, 0xE5F676F9, 0xE0743FFE, 0x0A47027A, 0xD9A0B5AE, 0xE7523863, 0xEB91A63B, 0x5FF4DB10} } ,
4036 { {0x15C49E28, 0xF60062F4, 0x8771DB3A, 0xF6F0812A, 0xF099DD87, 0xA5F9F27D, 0xDB2ABBDB, 0x2E222E56},
4037 {0x740A034E, 0x8B9C1E58, 0x8230EDB1, 0x504154CC, 0xFADB2C7E, 0x789C00DE, 0x05093935, 0xB9AF9072} } } } ;
4039 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 1989 a000");
4040 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 1990 a001");
4041 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 1991 a010");
4042 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 1992 a011");
4043 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 1993 a100");
4044 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 1994 a101");
4045 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 1995 a110");
4046 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 1996 a111");
4047 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 1997 a200");
4048 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 1998 a201");
4049 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 1999 a210");
4050 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2000 a211");
4053 static const fp12_t var_a = { { { {0x7BCEA798, 0x4962EA1B, 0xD5055EED, 0x91DF0CD4, 0xA1A95BBB, 0xFEA322CE, 0xEE11B8FC, 0xA2A766FD},
4054 {0xF8B68CAF, 0x3D6791F7, 0xFC68B472, 0xACF2CA59, 0xE342D64D, 0xB07FDB0A, 0x01750D10, 0x36053FDE} } ,
4055 { {0xE95BEDAC, 0xB8F375A9, 0x4C132312, 0x17F6C66D, 0xBF35B6A0, 0x58181C0F, 0x4A2E9387, 0x4AEC3727},
4056 {0x7BC0E1A5, 0xC645F997, 0x37632546, 0xECD5C05F, 0xE008D2A4, 0xA8ACACEA, 0x9191816D, 0x16C816EF} } } ,
4057 { { {0x97358E38, 0x32A1E4FF, 0xA1FBD08E, 0x3948620A, 0xEFF7F958, 0x17724E44, 0xE2B06C15, 0x107D85C5},
4058 {0x918F1465, 0x1C240D44, 0x2E3337C2, 0xDAF8D8B8, 0x1BF01207, 0xB8280D45, 0x6EF2580F, 0xAF9BE680} } ,
4059 { {0x8750CBAB, 0x2EB0136E, 0xD7DB6BE5, 0x0795880B, 0x811DC4C6, 0x53E8E3F6, 0xFEF1C988, 0x914226EA},
4060 {0x0759F936, 0x18AB2974, 0x4C9F78E3, 0x45EA7D35, 0x8BB87B91, 0xE2788E8C, 0xF236A3FE, 0x7937BE46} } } ,
4061 { { {0x02E83CD5, 0x1AA4D1E6, 0x2AB877BE, 0x13CCC309, 0x084C32EF, 0xBBDA008B, 0xC3F5520D, 0xA8584C14},
4062 {0xB10AC67C, 0x62D16F24, 0x9CA6F7E9, 0x5D46D435, 0xADF77E77, 0xE8A82474, 0xB2399D6F, 0x134BBA8D} } ,
4063 { {0x2657A1A6, 0xFE287B37, 0xF7DFF654, 0x5EBACD19, 0xDBFD98BF, 0x9A3864CC, 0xD46DB00B, 0xB37216DD},
4064 {0x2ACED5AD, 0x757866BB, 0x852481FA, 0xA3D10C08, 0xF145B5C2, 0x6018FE6F, 0xDFA9E0E6, 0xB23762C4} } } } ;
4065 static const fp12_t var_expected = { { { {0xF5A3F135, 0x7BCC2E98, 0x7E73F647, 0x608DD3D3, 0xE1A3F842, 0x4E126910, 0x809D0D11, 0x8D56E144},
4066 {0x9633C79B, 0x3E0730D0, 0xE34291A7, 0xC0D5F787, 0xB8C86C58, 0x554B7B4B, 0x28ECA476, 0x1664C787} } ,
4067 { {0x63047AE2, 0x2EB21E25, 0x88A3C5C6, 0x04B2331F, 0x89BA61A8, 0xE7A63B94, 0x11311289, 0x61454788},
4068 {0x55882AAF, 0x39F564AF, 0x5CFE0FBF, 0xBFF43636, 0xD1C0F87F, 0xF1EA68F3, 0x9849D7B0, 0x8A33E2B7} } } ,
4069 { { {0xCD93108F, 0xDAA3D722, 0x1CC2D3D6, 0x3F499C07, 0x3074A7A6, 0xE8A8FEC8, 0xEFE1B7DD, 0x3702265E},
4070 {0xFAC8B006, 0x26D763A2, 0xCC36A69B, 0xD47689AB, 0x844A84AA, 0x71500E11, 0x41EDFF26, 0x9CB472A0} } ,
4071 { {0x1F3D0E68, 0x5304FAAB, 0x397898D5, 0x40B298AA, 0x6FE5639F, 0x70D849C3, 0xB15DE687, 0x19C67065},
4072 {0x48A5301C, 0x73D9E481, 0xA9C87112, 0x8C2F4D4F, 0x5620D39B, 0x82D08DFE, 0xEF82D4F9, 0x0B823F6F} } } ,
4073 { { {0xBC608D6A, 0xB6EB9F63, 0x0157F6FC, 0xB3DBDA74, 0xD770B444, 0x6BFB132E, 0xC0D4CD42, 0x52B93285},
4074 {0x9CCA3875, 0x1A4C4B47, 0xC8D827BE, 0x947C0910, 0x35C0E09C, 0x79A9A45E, 0x2268FE85, 0xA3E4C729} } ,
4075 { {0xC72AA865, 0x67A58EEB, 0xAB782164, 0xE690F7F8, 0x917EDD34, 0x8DFE5C96, 0x9CB40040, 0xAC383B3A},
4076 {0xA1299288, 0xCB67ECDC, 0x0F5D7564, 0xC9A94F45, 0x34192733, 0x7198CAFD, 0x99FA0347, 0xACFE2C1E} } } } ;
4078 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2001 a000");
4079 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2002 a001");
4080 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2003 a010");
4081 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2004 a011");
4082 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2005 a100");
4083 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2006 a101");
4084 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2007 a110");
4085 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2008 a111");
4086 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2009 a200");
4087 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2010 a201");
4088 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2011 a210");
4089 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2012 a211");
4092 static const fp12_t var_a = { { { {0x4EF67697, 0xEC8C4A48, 0xDF4AC39B, 0x89E7819C, 0x306A1515, 0xEB46999C, 0x467BFEA7, 0x474D5DD6},
4093 {0x161E1739, 0x67D70807, 0xFB357227, 0xD010F45E, 0xFEC340EC, 0xB22307DB, 0xBEA1F667, 0x4E6FBC69} } ,
4094 { {0x15DD0D3A, 0x7897790B, 0xD7CD3243, 0x5FB0BA4C, 0x1C59ACCE, 0xC1F321C5, 0x738261DD, 0x9AB6790D},
4095 {0x90497205, 0x34525C1E, 0xEFA1D035, 0xD9CAA2C6, 0xE364EE4A, 0x477D9B96, 0x61BDBE4E, 0x23F89480} } } ,
4096 { { {0x1147B8FE, 0xB26846F1, 0xB11FFDB3, 0x01A276DA, 0x528209F7, 0x19D3E3AD, 0x0C06F2AE, 0x665F9EA0},
4097 {0xBE221937, 0x72B178B3, 0xD31DD37F, 0xD168537C, 0x18A993E4, 0xAF4A11BF, 0x0089F12F, 0xA2F177B8} } ,
4098 { {0x3D3F5BA7, 0xD9D91CD4, 0x365CD151, 0x46473679, 0x1864A331, 0x1EC0685F, 0x4BEFDE43, 0x5FCBD384},
4099 {0x4BD5D9C5, 0x3C7410C3, 0x21FA1C58, 0x74A84026, 0x1D33960D, 0x9DF8531E, 0x00B24728, 0x6D53611B} } } ,
4100 { { {0x05F97F72, 0x9CCF433C, 0xF0D42AF5, 0x266A83BA, 0x0E087084, 0xC903FC16, 0x1B0B1A11, 0x4BFD105D},
4101 {0x71124634, 0x5D90A9ED, 0xDF52B42A, 0xFDFF706E, 0xFD0AFE8D, 0x60DD92F7, 0x639DB0D1, 0x80BEF610} } ,
4102 { {0xCE5D65D2, 0x57A2B78D, 0xFA8DB485, 0x8FA61ED3, 0x9843B30D, 0xA1749F65, 0x679D084F, 0x6232EA51},
4103 {0x8D8FC4B4, 0x8E40D1A3, 0x2AA6488F, 0xA0CB4A78, 0x3D271736, 0x1D17A195, 0x9F65773A, 0x4A3A06B4} } } } ;
4104 static const fp12_t var_expected = { { { {0xDC384FC3, 0x9833557E, 0x7F2C9283, 0x4655A62A, 0xF1C4EA60, 0x089503DA, 0xADFC7A0A, 0x8B7BA973},
4105 {0x9E522B5C, 0x2AC07024, 0x6B8B0E86, 0xDE89284E, 0x47AED197, 0xE16F261F, 0x731178BA, 0x318CEC27} } ,
4106 { {0x2D47E5B9, 0x44A8BFDC, 0x8108AD72, 0x82214A1B, 0x2670B479, 0xD074398C, 0xE336E2CB, 0x2A3633A8},
4107 {0xF8FACD8B, 0x481FFBBF, 0x12593FEF, 0xC733FD72, 0x6FAF218D, 0x2178B5C5, 0xA97A25EC, 0x4BCCF564} } } ,
4108 { { {0x14ACD38A, 0x60203F2D, 0x5194522F, 0xF4EBAD5A, 0x9A309089, 0x15CA7C11, 0x921D797D, 0x4B376BFD},
4109 {0x1DA7A154, 0x8A99E945, 0x574934E0, 0xE561D069, 0x59DB2F9D, 0x30D1DC28, 0x2F14706B, 0x04C47DA8} } ,
4110 { {0x4139F06B, 0x474F0696, 0xF5CA6321, 0x8F96D056, 0x069F4D37, 0x10E7C9F0, 0x4BDBD6B7, 0x9C193A8B},
4111 {0xCEAD0F1B, 0x7A6760B1, 0xCD2332B4, 0x9095210E, 0x6E95C7CB, 0x83AA0532, 0x4C9F8FDD, 0xB8BD077C} } } ,
4112 { { {0xA95A3B79, 0x1C62D66A, 0x4B4194B3, 0xF4C8B365, 0x30F1095B, 0x1710F190, 0xCB998C82, 0x0AE00F25},
4113 {0x86F186F4, 0xF2187BBB, 0x7EC02DFC, 0x5A51EDD4, 0xA9824E7A, 0x78025DAB, 0x36D8504D, 0xB9D88C2A} } ,
4114 { {0x35BC4657, 0x1906BC3F, 0xB7BB5B24, 0xABECE94D, 0xD3E95381, 0x48D17210, 0x5E099982, 0xA70516D2},
4115 {0xB5BD2092, 0x0DFDDBEF, 0x4C9EACD1, 0x548B228A, 0xD59D8DA3, 0x38C31DB9, 0x4413A0D7, 0x9BB65201} } } } ;
4117 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2013 a000");
4118 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2014 a001");
4119 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2015 a010");
4120 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2016 a011");
4121 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2017 a100");
4122 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2018 a101");
4123 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2019 a110");
4124 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2020 a111");
4125 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2021 a200");
4126 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2022 a201");
4127 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2023 a210");
4128 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2024 a211");
4131 static const fp12_t var_a = { { { {0xD7684945, 0xA9D3A032, 0x4DE155EA, 0xBE0E2E73, 0xB389646B, 0xA00427F4, 0xE3B659FF, 0x163F7EC4},
4132 {0x407CE953, 0x7C67275E, 0xB686116B, 0xE472FE18, 0x83A0E1E2, 0xAB945A33, 0xBBE70D37, 0x5D98D308} } ,
4133 { {0x362638EA, 0xE746C981, 0x5F28F072, 0x7FA4C636, 0xB5F44109, 0x8D253114, 0xB6CE920C, 0x1A53CFF8},
4134 {0x7F1F41B4, 0xD2914B5D, 0x051C25BB, 0x1BBE1322, 0xC684B001, 0x176DE27E, 0xE76055DA, 0xA2916606} } } ,
4135 { { {0x7748CD75, 0x2AE5F590, 0x1EC1E89A, 0x59B50796, 0x4EF0FE4E, 0x2CB334A9, 0x4DCFEDC8, 0x967F5149},
4136 {0x35BFD9F9, 0xCB40F518, 0x26ADA28B, 0x1A8D3798, 0x49027D85, 0x2D22C96C, 0x63221330, 0x547B9F88} } ,
4137 { {0x9B300C4B, 0xEFDC9D61, 0x5E0EE482, 0x71890A5F, 0xA7E8D87C, 0x17B24426, 0x1947C2F0, 0xA4A01304},
4138 {0x195A8BFA, 0x657F97CF, 0x6405AA4C, 0x4C2FD406, 0xDB2D80BB, 0xC467D717, 0x1A39D53A, 0x9076E697} } } ,
4139 { { {0xCF1713CF, 0x839904F4, 0x0C53B8E0, 0x872C9834, 0x6F461615, 0x43732BCA, 0x8C99EFE2, 0x07F7A1DE},
4140 {0xC9AA8D73, 0x5BD700F9, 0x86448EF7, 0x8C9CB60F, 0xBF4E5F38, 0x502E7BBC, 0x2CD5AE28, 0x4CE69197} } ,
4141 { {0x02BE0975, 0x344B8B4B, 0xE90DB27D, 0x8F5ED06F, 0xB3A3C5B7, 0x6DAE54DD, 0xFD0B419B, 0x323D8D2B},
4142 {0x5C2D2529, 0x06B720D3, 0x5ADF2197, 0xAD22916B, 0x5B6CE9B4, 0x1FFA803F, 0xFF260398, 0x7D50E24B} } } } ;
4143 static const fp12_t var_expected = { { { {0x8DFEFA63, 0x4C198A8E, 0xBBD648C8, 0x7DEB5836, 0xA45511F6, 0xC8337E0F, 0x4A376BE8, 0x34E4167A},
4144 {0x218DAD0F, 0x694A7F37, 0x3A60F753, 0x6F6AAF99, 0x9BC06216, 0x842B9FB2, 0xE15868DE, 0x3A33C2DC} } ,
4145 { {0x31EFE498, 0xDF06594E, 0x7A18FE70, 0xB0C5AFAD, 0x0AECB5F4, 0x724CCBD9, 0xB67E1DAA, 0x64EB1094},
4146 {0x80EBA8A8, 0xB3407BEF, 0x3954A531, 0x01A805B8, 0x8510E031, 0x0EBA4A8B, 0xA7D09643, 0xB04A9EEF} } } ,
4147 { { {0xEDAA8F50, 0xEA51803F, 0xB858B113, 0x3E0B9BF7, 0xAA22273F, 0xE65FF81C, 0x2E4D68D6, 0x452D7597},
4148 {0x375F3FB4, 0x0A797552, 0x5B43CD9C, 0x0A6A3A10, 0xDE379343, 0x4391FC52, 0xB63D87D0, 0x111E5AA4} } ,
4149 { {0xA14BEBFD, 0x45C64A53, 0x527F9462, 0x280758D6, 0x7CC5F81F, 0xE13F0CD9, 0x445C8190, 0x791F40BE},
4150 {0x03BB18C4, 0x41F0621E, 0x55BEF7E5, 0x2F33D31F, 0x6E2A642B, 0x0266026B, 0xF25F09AA, 0x43B44389} } } ,
4151 { { {0xC33D9D1E, 0x793DC055, 0x0B7B79D8, 0xF713CC89, 0x17758071, 0xFAC35478, 0x8F333309, 0x9C900382},
4152 {0xFDFCBF21, 0xAB0E8F6D, 0xC742E023, 0x8C1D99B9, 0x20E410C1, 0x88B15037, 0x3269D43C, 0xB273705C} } ,
4153 { {0xD8B946C2, 0x0CDDFFB1, 0x35093DCE, 0xABCEE17E, 0x97291844, 0xD951FDCE, 0x5278A830, 0x5EA95FB5},
4154 {0x4279F009, 0xBB53C74B, 0xBA104F6D, 0x3D1FB1B2, 0xB938A278, 0x2026C636, 0x8DD0575E, 0xA12F4A04} } } } ;
4156 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2025 a000");
4157 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2026 a001");
4158 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2027 a010");
4159 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2028 a011");
4160 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2029 a100");
4161 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2030 a101");
4162 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2031 a110");
4163 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2032 a111");
4164 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2033 a200");
4165 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2034 a201");
4166 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2035 a210");
4167 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2036 a211");
4170 static const fp12_t var_a = { { { {0x775F3E99, 0x8ED2FC3F, 0xDCE09973, 0xF100193F, 0xA31C57F2, 0x515552F1, 0xDBA87F8A, 0x202101C3},
4171 {0x58C03688, 0x6CF7C0AC, 0x51F1EB78, 0x224CFAB5, 0x065925E6, 0x8E0406C9, 0x3155BA8D, 0x96E98762} } ,
4172 { {0xC3D4CE22, 0xDA28C85B, 0x0D0A1D2D, 0xAA833EDB, 0x1D6E43A1, 0x3F6BEDC3, 0xFA9EEF91, 0x931BDF31},
4173 {0x279CFDE6, 0xD26C910C, 0xFD0A0404, 0xCB7E5801, 0x6FC4131F, 0x9558E6ED, 0xCB0490EB, 0x95485BBA} } } ,
4174 { { {0x1981748B, 0x072C5555, 0x5D587936, 0x69549D7B, 0xA81A1043, 0xCF097405, 0x3D9607B2, 0x98B9FFE3},
4175 {0x29018F4C, 0xB43B910B, 0x50C013B5, 0x16F6D212, 0x070A82D6, 0x83430D81, 0x9C93E1DF, 0x2F22431E} } ,
4176 { {0x8DBE79EC, 0x48414191, 0x46C51C85, 0x646EE3E5, 0xAEF02888, 0xA2645CD8, 0x6A4E88B7, 0x49300391},
4177 {0x294F46A8, 0xD0F17A8C, 0x7A44A9AD, 0x07C45823, 0x041B82A2, 0xB2CFC2BF, 0xF042A56A, 0x7961D651} } } ,
4178 { { {0x3F30FCFA, 0xA823ABAE, 0x65F54CE6, 0xCB7CE46B, 0x84EB993D, 0xD0295001, 0x6642C7A2, 0x64A009B6},
4179 {0xBDFE7699, 0x3015D47D, 0xD20CC806, 0x625878E4, 0x9E6CD890, 0x89997390, 0x014CA93D, 0x0DDD2FD4} } ,
4180 { {0xD0728F9C, 0x629F5A97, 0x1C33208F, 0x9EA57FB5, 0x84FF1A6C, 0xED5984B7, 0xE842D998, 0x9F60B2D6},
4181 {0x1F8622FA, 0x58F7E657, 0x96E07F0C, 0x3FC05C5F, 0x034E2BB4, 0x39FC71CF, 0x609758A7, 0x5D21816E} } } } ;
4182 static const fp12_t var_expected = { { { {0x60F413AF, 0x3CCB0A22, 0xE9DE4533, 0x887243BA, 0x6B7F9D5D, 0xEFC725C1, 0xF0D5F254, 0x795C6788},
4183 {0xFF61CEBF, 0xFCDD44B7, 0xFE0AF916, 0x173E242F, 0xB9F5A976, 0x74F75E65, 0x9B1A30C1, 0x5A129B5C} } ,
4184 { {0xCA1829E1, 0x39CAD538, 0xC22C9C13, 0x9255B738, 0xC34B0892, 0x6902D032, 0x4B1CA5F5, 0x4B542DAA},
4185 {0x9F54D699, 0x4198878A, 0x589BC085, 0x00C7C36C, 0xD8ED648B, 0x67660AE9, 0x976E9979, 0x1382C975} } } ,
4186 { { {0x276E97C0, 0xB0C0281A, 0x79899B5E, 0xD919BD1E, 0xBB9771AF, 0x75DA8D95, 0xBABB6FFE, 0x090D6597},
4187 {0x33A53237, 0x62B87C44, 0x7D85ADFB, 0xFFA9CF43, 0x94619662, 0x9CE10462, 0x14AE01D1, 0xA3932212} } ,
4188 { {0x7DCD7200, 0x7154CBB4, 0x3E8C28E9, 0x7896552C, 0x785F5295, 0xAE579C2D, 0xE2F30C4C, 0x461583AC},
4189 {0x6B833429, 0x1B273747, 0xC0EBBE50, 0x1779B4F0, 0xE5E5EBE4, 0x8EB9FFDE, 0x304F7DDB, 0x767EAAE3} } } ,
4190 { { {0x3FD04E0E, 0xA9E521F1, 0x237DC750, 0xDF042541, 0xBFD2ACFE, 0xC368FD28, 0xFCFF7F6D, 0x113AEC6C},
4191 {0x091B5D1D, 0x40A4AFEF, 0x89316DA1, 0xD91F32A9, 0xDB3FA665, 0xEBEAAFF4, 0xE0AC1D0B, 0x32D295C5} } ,
4192 { {0x15B3400D, 0xC1D8402E, 0xD1540588, 0x2B94F5BB, 0xCF44B403, 0x0F562209, 0x7519ED6A, 0x63EEE80E},
4193 {0xD9959BD2, 0x551BE8F5, 0x8A151DDF, 0xA7BDD548, 0x9924119C, 0xE24F4F8B, 0x5AE49842, 0x1FB5653D} } } } ;
4195 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2037 a000");
4196 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2038 a001");
4197 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2039 a010");
4198 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2040 a011");
4199 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2041 a100");
4200 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2042 a101");
4201 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2043 a110");
4202 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2044 a111");
4203 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2045 a200");
4204 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2046 a201");
4205 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2047 a210");
4206 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2048 a211");
4209 static const fp12_t var_a = { { { {0x081CD114, 0xAB1279A2, 0xAB95117D, 0x03F1D0FB, 0xB746CDC9, 0x5B4622A0, 0x25FB48FE, 0x046F895D},
4210 {0x4C2FA300, 0xACC57370, 0x6B5CE3AC, 0xB5F2E75D, 0xC993F62B, 0x51FE352C, 0x170C39AE, 0x9D30B9E8} } ,
4211 { {0xA2093C36, 0x602640AB, 0x619DBEAF, 0xA1C95C15, 0xD90E9F23, 0x3B85FE72, 0x4C44BC3E, 0x60D044EF},
4212 {0x7B8C4E23, 0x33C8E3CD, 0x4883D351, 0xA390BEBE, 0xC7AE4087, 0x44C87D23, 0xDE69EBD4, 0x586241A7} } } ,
4213 { { {0xDC917858, 0x539AF2B8, 0xF89DA755, 0xEBC3B22C, 0xB620B1CE, 0x2D9BB127, 0x7D6AE266, 0x19F9A91A},
4214 {0xBA3B7E1B, 0x85423F2B, 0x4C9CF69D, 0x14C79893, 0xE2185389, 0x41160490, 0xFA0FA21A, 0x4A42FCFD} } ,
4215 { {0x9F91313F, 0xC2333C43, 0x72561AEE, 0x5A3FBD45, 0xA8FE9A21, 0xAE6BD262, 0x2A75C395, 0x2A82F0C8},
4216 {0x008A6CEC, 0x608FF553, 0x42319262, 0x15B14657, 0x84099805, 0x0F5F3A6C, 0xE65AD0B1, 0x2E616F12} } } ,
4217 { { {0x9A34A9D0, 0x333E2628, 0xF835DAC3, 0xF96A6CC3, 0xDBA91331, 0xF634A93B, 0xA0A99049, 0x1FA454EE},
4218 {0x0A83FEFD, 0xD1AAE11F, 0xFEF9886B, 0xBD17CF55, 0xC898A595, 0x40096CE5, 0xE8A82F9B, 0x83A190D3} } ,
4219 { {0xF28D4722, 0xCBA45021, 0x5818D68A, 0x246B32D2, 0x02E5F27A, 0x2695169B, 0x21C27931, 0x0E942A5B},
4220 {0x39709CD2, 0x41B0BFEF, 0xD6B280F6, 0x9AE69400, 0x2106A0D7, 0xDC21D5E6, 0x452AAA3C, 0x6C313325} } } } ;
4221 static const fp12_t var_expected = { { { {0x1A113E1B, 0x92F41FC1, 0x4075F971, 0x3FB8BB4E, 0x70A1C412, 0xAFEF9030, 0xC3E19185, 0x03723E5D},
4222 {0x04205A42, 0x89BABC1D, 0xB762656A, 0x2FB091CF, 0x70D15B69, 0x114CCEC3, 0xF56EC6A8, 0x32BEB8E9} } ,
4223 { {0x3D14D5F7, 0x532BA1B0, 0x2F2FF4F2, 0x90A00355, 0x714E1062, 0x6120A646, 0xE2E3A529, 0x27641B10},
4224 {0x554AB1DA, 0xF91AFE3B, 0xCB5D002F, 0xE24728B5, 0xA630FAE3, 0xF3C902B1, 0x7B8E1B30, 0x1D6ADBA1} } } ,
4225 { { {0xC3C97B5E, 0x6206C741, 0xCBE7EBB3, 0xE62872A1, 0xF0BE016D, 0x9C58C600, 0x25D5BD5F, 0x776D779E},
4226 {0x40FD6092, 0x7F9162DA, 0x7E96DD09, 0x2E7BE0AD, 0xD43598C7, 0x9E91B42B, 0x0DCFD05C, 0x5235A779} } ,
4227 { {0xBB1C23AE, 0xC52CFAFD, 0x2EE36FE5, 0x53F5D0EA, 0xB48C7197, 0x94D23AE4, 0xA9C3308F, 0xB3515CDE},
4228 {0xF78307FC, 0x4F12CC3E, 0x9CD0CA8B, 0x180C7E60, 0xFAC4C0DF, 0x47AC1505, 0x14DF9E73, 0xA2CF6A46} } } ,
4229 { { {0xCD34C7C3, 0x1F110189, 0x4033B806, 0x93039244, 0xCA564D70, 0xFA096754, 0x59E7FF00, 0x7D6CD874},
4230 {0xE9A2701E, 0x1754F38E, 0x4BDD9E3B, 0xB2FEB8D2, 0xFC2639A6, 0xCEA8CF12, 0x4CABCB1F, 0x27932DD6} } ,
4231 { {0x45472466, 0x33E5419B, 0x1026C84E, 0x2B826597, 0xD274412C, 0x949DD146, 0x06A62221, 0xB549359D},
4232 {0xB9CA4843, 0xD974C171, 0xC656F08C, 0xCCA5C5A2, 0xC5015E95, 0x28328D51, 0xABAAA946, 0x10B579B3} } } } ;
4234 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2049 a000");
4235 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2050 a001");
4236 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2051 a010");
4237 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2052 a011");
4238 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2053 a100");
4239 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2054 a101");
4240 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2055 a110");
4241 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2056 a111");
4242 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2057 a200");
4243 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2058 a201");
4244 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2059 a210");
4245 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2060 a211");
4248 static const fp12_t var_a = { { { {0x5BC08A7D, 0x602E79AF, 0x7CE7B93E, 0x7FD430B1, 0x05E7689E, 0x8635C9DE, 0xE8EE1268, 0x192253FA},
4249 {0x39F2CA15, 0x03C373C2, 0x0B7AA46F, 0xE4633723, 0xFE2A9805, 0x8D134E9F, 0xDB1D2AEC, 0x99CF2F0D} } ,
4250 { {0xF01AFD94, 0xF7C7962A, 0x479FEACC, 0xB03EDCE7, 0x77E7C418, 0x3921B7FF, 0xA3C7519D, 0x803F9AD3},
4251 {0xA6F4150B, 0x95871234, 0x442371B9, 0xB57A839B, 0x2A8DA63C, 0xBE516D3F, 0x29A43AEE, 0x291307E5} } } ,
4252 { { {0x25A9241F, 0x33EB0ED1, 0xA1A8BD20, 0xC6AEE84B, 0xCD3EACEB, 0x8AAE0324, 0x7D866C51, 0x5D5D769F},
4253 {0xB955C858, 0x753D47EA, 0x51424D5E, 0xF4A30CF5, 0x966BC802, 0x72CADB15, 0x659012E4, 0x0BED7906} } ,
4254 { {0x3EC4134F, 0xA1D306F8, 0x1E11A59F, 0x457685DE, 0xAE1560F2, 0x6B50982C, 0xFEC33DF3, 0x72346B5C},
4255 {0x9D9F345C, 0x24F918A5, 0x9DB25D9D, 0x588AFD4C, 0x8B88737C, 0xFBBC4682, 0xAEB31DB9, 0x1C5BB20D} } } ,
4256 { { {0x7E166DCB, 0x726379A9, 0xF81A1633, 0x05EE2EDC, 0x108F526B, 0x13240AF2, 0xF97C9321, 0x196517F2},
4257 {0xE0C92024, 0x2799A2EA, 0xE0F8154C, 0xFF5A4C34, 0x732573F9, 0xEA57F866, 0x7950BCD7, 0x0791FBC0} } ,
4258 { {0xF5FC7133, 0x9C3A38AD, 0x6EFEFD0D, 0x7D8947B2, 0xCAFF4B05, 0x0E36F8F1, 0xF8791D1E, 0x1F6738A0},
4259 {0x3C5CE00C, 0xB93F2557, 0xDD003AA4, 0x40E97438, 0x964FC51B, 0xE7357F34, 0xD878625D, 0x381F8BE7} } } } ;
4260 static const fp12_t var_expected = { { { {0x7EBA5004, 0x53424A77, 0x372543DE, 0xD0D5E630, 0xED606B3D, 0xCA935907, 0xB32DE80D, 0x16FF6C1E},
4261 {0x3019A637, 0xA46D5CBB, 0xF4245296, 0xB5D2874B, 0x48747B36, 0x743CCF8F, 0x34E431E2, 0x047EFA60} } ,
4262 { {0x23C67E2B, 0xB56164A1, 0x5EB88C33, 0x2DBD07F6, 0x173CB9C2, 0x525FF7C0, 0xBD2BF933, 0xAAC78A6B},
4263 {0xF5D4CF89, 0x1F9A9FE9, 0x9791C2B5, 0x8A8192D3, 0x07E040A2, 0xEFC1B246, 0xD0F741E7, 0x7B52515D} } } ,
4264 { { {0x51B46EEC, 0xCE77DF56, 0xFE6E536D, 0xD7D936EC, 0x09BF6E36, 0x52B5253C, 0xDCAD7222, 0xA2B04E64},
4265 {0x56636BBB, 0xDD810D43, 0x3D19EE35, 0xAC021B69, 0xF130A37D, 0xCF3E4563, 0xE9B5010B, 0xACA28E2A} } ,
4266 { {0xC88CCE86, 0xF26439FC, 0xEEB5CB31, 0xEA38B8F8, 0x01C65BB1, 0x3CE0B22F, 0xFB1B6701, 0xB30E8AAB},
4267 {0x4BED963D, 0xCCF38C1B, 0xA5CE693C, 0xDCB78FEA, 0x2BC79FB2, 0xA21868D2, 0x44D39576, 0x6F3D85C5} } } ,
4268 { { {0xC483DB6E, 0xF32D513D, 0x14114887, 0x3A9A1D87, 0x47E471BD, 0xFB7CCCC1, 0xA52FE2C2, 0x34C96C95},
4269 {0xD76DF727, 0x2EFEA71D, 0x5ECE976A, 0x53BED96B, 0x89627876, 0xB3E39DC7, 0xE665EFEE, 0x129AAD5E} } ,
4270 { {0x1C5EAB12, 0x3FE2D62A, 0xB3955066, 0x111D231E, 0x9AE79F93, 0x41CB8799, 0x667E2236, 0x44CFFAB4},
4271 {0x742F3BD0, 0xCAEEDC2B, 0xD74D7F65, 0x7E02FD04, 0xFC0575E4, 0x6B85FC99, 0x508452FE, 0x68B88232} } } } ;
4273 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2061 a000");
4274 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2062 a001");
4275 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2063 a010");
4276 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2064 a011");
4277 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2065 a100");
4278 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2066 a101");
4279 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2067 a110");
4280 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2068 a111");
4281 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2069 a200");
4282 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2070 a201");
4283 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2071 a210");
4284 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2072 a211");
4287 static const fp12_t var_a = { { { {0x951E75D4, 0xF44DFB4B, 0x008F756B, 0xAD2FC0D1, 0x8719A03F, 0xAC43D23F, 0x10E88D92, 0xB816FB8E},
4288 {0x0CDCF03A, 0x1D322E3E, 0x6DD13CCE, 0x8CFDE28B, 0xB88780F1, 0xDB941D90, 0x79E795DF, 0x233A6C96} } ,
4289 { {0x729DD096, 0xD011EB50, 0xA3977AD0, 0x19842653, 0xDE78F882, 0x52DD6B5B, 0x3C84FAE7, 0x8DF9CB8A},
4290 {0x3BC737A7, 0x0C89997D, 0x405A77A6, 0xBB6A234C, 0x7B88AF73, 0x34D9E306, 0x1FCCCE86, 0xB59EB908} } } ,
4291 { { {0xF2D3A9B6, 0xACE10064, 0x7A2DAAD7, 0x0A31BCB2, 0x3FBEF2E2, 0x4450FA06, 0x332BDF0D, 0x729DE9B2},
4292 {0x5DE051B6, 0x1E68B0AF, 0x9EDD59B1, 0xF44D90C9, 0xF3B38B06, 0x946FCE54, 0x4D128DDE, 0x6F5E32A0} } ,
4293 { {0x39FA639A, 0xBC191D9C, 0xDDC7C577, 0x0A97691D, 0x24DD7E7B, 0x63E4C3AD, 0x294B3041, 0x0090F303},
4294 {0xD8394342, 0x0014F254, 0x586468EF, 0x7D70A165, 0xC52EE7AF, 0xCEF523B0, 0x1568D046, 0x1C032A29} } } ,
4295 { { {0x5289951B, 0xCBE98484, 0x5FCA1EA5, 0x39A9DF64, 0x1E0605CF, 0x3C05F96E, 0x55D32528, 0x935507C3},
4296 {0xE63B3DA7, 0xA6CFCACD, 0x96003A3D, 0x12C25EB9, 0xD149DF49, 0x5276C024, 0x862FFB6F, 0x484E2233} } ,
4297 { {0x1E03395E, 0x1929E06E, 0xC159DFA9, 0x68D3D9E2, 0x0CCE7C49, 0xE32710A5, 0xF60B917B, 0x19DB4525},
4298 {0x952B68DF, 0x54B51915, 0x69B54CA8, 0xBEC6C446, 0x93CC29D3, 0x8703CA0D, 0xB8B472CA, 0x38515531} } } } ;
4299 static const fp12_t var_expected = { { { {0x2A303D84, 0x84BFE7AE, 0x2CD82B90, 0x6A395D25, 0x72968B73, 0xDB6A8E33, 0xD3A1475D, 0xB1CF20CE},
4300 {0xD9A20ED0, 0x3A4C300C, 0xF5863653, 0xCD82333F, 0x816A4330, 0xDB8379A7, 0x37BE6AE6, 0x30F7B688} } ,
4301 { {0x8AF97FDF, 0xAF63F536, 0x1B12B8E9, 0xDDE2CE59, 0x5D76AB6F, 0x342E8875, 0xC9E58379, 0x83AF90F6},
4302 {0xEF9E4224, 0x1AF30480, 0xBD54811A, 0xE7C42529, 0x1E838B08, 0xAEC918CC, 0xAC6753F7, 0x9EDD6DA5} } } ,
4303 { { {0x0A53EBDC, 0xF5CCFDDB, 0xFB905CA9, 0x51ED0CF7, 0xDF12BAB4, 0x493107C5, 0xE677C075, 0x98E1F6FC},
4304 {0x2532B70F, 0xAAF75134, 0x2CC1AC44, 0x8EEE8BE8, 0xCEFB1C60, 0xBB17EF06, 0x8D06A816, 0x1A8EB773} } ,
4305 { {0x89E816A3, 0x35B7E561, 0xA5A6D3AD, 0x15E89884, 0xD8A68192, 0x1EE92665, 0x7BE76BA1, 0x3C681341},
4306 {0xD9B8627D, 0x1FA3FAC9, 0xE8A0DF28, 0x30BB3E05, 0x99D4B9CD, 0x67E6929C, 0x839D8B2A, 0x9D6AEAFC} } } ,
4307 { { {0x7518508B, 0x53F0FC8D, 0x2738C999, 0x9A5E03C3, 0x3C8B226D, 0x909E80E2, 0x4BD254F9, 0x252C5B18},
4308 {0x95325872, 0x6723D183, 0x19C30BA5, 0xF763C74E, 0x5EC7C4D2, 0x59DA694B, 0x5F78083B, 0xA7709FE3} } ,
4309 { {0x247A6A86, 0xB0B31F6D, 0x1BE527E2, 0x0A3FFDC7, 0xD94931D2, 0x0CD8281C, 0x50BAAEE6, 0x9DE4891B},
4310 {0x795A613E, 0x8ABA0F98, 0xEE82985E, 0x07E92713, 0x45B9C0A2, 0xA4D8D0E5, 0x8C4A6190, 0x5E45D43B} } } } ;
4312 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2073 a000");
4313 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2074 a001");
4314 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2075 a010");
4315 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2076 a011");
4316 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2077 a100");
4317 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2078 a101");
4318 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2079 a110");
4319 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2080 a111");
4320 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2081 a200");
4321 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2082 a201");
4322 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2083 a210");
4323 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2084 a211");
4326 static const fp12_t var_a = { { { {0xC068800B, 0x6CBA856E, 0x967C24CD, 0xA4F2A37C, 0xCD307F35, 0xB5CBE0C8, 0xE87B1394, 0x66EA0839},
4327 {0x98E7837A, 0x4B434CAA, 0xC2B4193E, 0x9EC6C3B7, 0xFB6CD0A6, 0xF3211713, 0xED22A739, 0x021FCBEB} } ,
4328 { {0xF346965A, 0x9C7CDD13, 0x34897985, 0x2BD41F84, 0xA8B408EF, 0xBC123704, 0xFC7E4F9B, 0x4FA4E76D},
4329 {0x392EB4FF, 0x282F8092, 0x7A84C678, 0xD34810EC, 0x74DEF497, 0x7ED9B043, 0x106C193E, 0x4A17E09E} } } ,
4330 { { {0x06398DDA, 0xD9C15F77, 0xC05DB1E7, 0xF88686D5, 0x7C307ECC, 0xCD77F468, 0xF5FFA5FE, 0x4003E8A4},
4331 {0x2BBF75A9, 0x28C4B923, 0x043A41A0, 0x1A966E68, 0x7C0800BB, 0x9C6B10FD, 0xB0B2CFC1, 0x864ABA60} } ,
4332 { {0xFBAF95C0, 0xBADAAF34, 0x1E6DE82C, 0xD4FE5F09, 0x29AF9ED9, 0x3EE45184, 0xCCA57734, 0x974BFCF8},
4333 {0x5B67B6A1, 0xE22F473B, 0x30D2B290, 0x7A4F4CEF, 0xFBFE0047, 0x4E175069, 0x2CCBF21A, 0x55E57935} } } ,
4334 { { {0x3FB95F10, 0xF84978D6, 0x1F2EC5EC, 0xEED255A5, 0x659BC1E1, 0x87B6EA76, 0xA8D6E6ED, 0x63AFBA4E},
4335 {0x7DE59288, 0xA7877C8A, 0x7A3D70D9, 0x065E9E85, 0xC90CA8EC, 0x666DD5F3, 0x9A496748, 0x50E8CA09} } ,
4336 { {0x81E4A6C8, 0x8BE834C8, 0x5C4839AF, 0x29EFF4FF, 0x144CE202, 0x17F74ADD, 0x8A44AA05, 0x5ACFB5A4},
4337 {0x2AD52FDB, 0x58678FCD, 0xD27889FD, 0x258AAF8C, 0x4E6CE130, 0x7F39BB02, 0xBEDDF7E8, 0xB476A331} } } } ;
4338 static const fp12_t var_expected = { { { {0x8E9E308B, 0xF46A5D36, 0x3685878A, 0x6946AE33, 0xFD09EE6C, 0xEDADE83A, 0x3B1D365C, 0x68602076},
4339 {0xC5865D15, 0xE5695AA6, 0x578427F8, 0x9C428992, 0x5AFA6BC9, 0x6DF3FBEB, 0x19979FE0, 0x7314DCCE} } ,
4340 { {0x48BE17FF, 0xEA7D357E, 0xC333993D, 0xEB58E9FD, 0xC32DEE87, 0x27A75ACC, 0x6FE6A11B, 0x8BC6DC92},
4341 {0x5BA76AF8, 0xF0B3143A, 0x81C6EA39, 0x46C36AB7, 0x52938CE0, 0x7589FC0C, 0x3FC3B1B5, 0x47126B64} } } ,
4342 { { {0x14377F10, 0x9DBBA944, 0x3A253D9A, 0x7F240D0D, 0x3BBC894A, 0x63CBEFAB, 0xD48BB5B8, 0x96A67738},
4343 {0x0DFF4DF0, 0xCA7C377E, 0x7DF834D3, 0x2A59C6E7, 0x4F64A10F, 0x95B41470, 0x926CA355, 0x7DB6F8B1} } ,
4344 { {0x0C955304, 0x4D4BDAFB, 0xD7CFFDE8, 0xC7D3D31B, 0x3D386E11, 0x225B71E9, 0xBFC2C47D, 0x5B6FF4FE},
4345 {0x19DA6127, 0xFD49AF12, 0x31ED7ABB, 0x03CDE122, 0x05961449, 0xF38A4D3B, 0x37B8DE0E, 0x4FCA380D} } } ,
4346 { { {0xC0AB1B92, 0x5A5142C4, 0xE4B5DC66, 0x448C75AD, 0xE37FBB0D, 0x56F128BF, 0xEE5BA7F3, 0x492F11AC},
4347 {0x2811E017, 0x99BC1860, 0xE156B31C, 0x5B897A49, 0x15BD32AB, 0x20F61CA7, 0xA27B2877, 0x06797ED0} } ,
4348 { {0xA7B0B939, 0xB6550E0F, 0x1779870B, 0x3E48B761, 0xC3DCD734, 0xEA70F3E6, 0xCA308C1D, 0x1423182E},
4349 {0x9FF6AE70, 0xB048F7EA, 0x6810CC19, 0x275B5577, 0xD6B25F5D, 0x1399EDE5, 0x1410A7A1, 0x40F266BD} } } } ;
4351 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2085 a000");
4352 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2086 a001");
4353 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2087 a010");
4354 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2088 a011");
4355 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2089 a100");
4356 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2090 a101");
4357 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2091 a110");
4358 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2092 a111");
4359 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2093 a200");
4360 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2094 a201");
4361 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2095 a210");
4362 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2096 a211");
4365 static const fp12_t var_a = { { { {0x5A20357B, 0x0887A115, 0x8ADE0C46, 0x1D1ECFAA, 0xBEB88DF2, 0xEDCAA378, 0x9E8E0297, 0x7DA39FA1},
4366 {0xB531F447, 0x514BA8C2, 0xC53969E1, 0x01C4F381, 0x6DE29EB7, 0x05E38858, 0x02DE7E3B, 0x8FACF43F} } ,
4367 { {0xC0D42838, 0xF4D27946, 0x04D5E50A, 0x05BE178B, 0x86BCDED6, 0x434EC7CE, 0x6F3EF720, 0x508E1357},
4368 {0x34AC7C14, 0x3EB2BD98, 0x36EFCE43, 0x051B66F7, 0x46B40658, 0x9296DA93, 0xE36E0BFD, 0x0D7D1F4C} } } ,
4369 { { {0xB14B00C2, 0x979B05FD, 0xAC4B41A6, 0xEFA47B46, 0xF272E772, 0x7BE03ED4, 0xC141E6B0, 0xB43115FF},
4370 {0xD6F57EDB, 0x21C81B2E, 0x456C0ACC, 0xDB2FB22E, 0x05ED7B2A, 0x8B265B91, 0x7D4F0860, 0x1C3110E9} } ,
4371 { {0xC2CF7F71, 0x2A972C44, 0x5B60C9C6, 0x546AA009, 0xB6F33F74, 0xFC701CA1, 0xCD4E8707, 0x6DC81BE0},
4372 {0xD74930BB, 0xE52E3DA2, 0x16E89F75, 0x2EC2AEA7, 0x7538AF9E, 0x7355356F, 0x40BBF3BB, 0x592686B8} } } ,
4373 { { {0xA1CE78C5, 0xBB9FE2DC, 0x54B7EBFF, 0x941E4AF1, 0x19033FD0, 0x500EBF61, 0x8D6A9799, 0xA3BCE550},
4374 {0x41065603, 0xFAFD4C38, 0x69F9A9F1, 0x8FB632FB, 0x3B1EFAA0, 0x5F679D58, 0x85E25ED2, 0xAC30CFA5} } ,
4375 { {0xB5750A66, 0x0E650915, 0xB45566A8, 0xB7A1F099, 0x1395BA76, 0x8A87BC04, 0xE955F823, 0x4CFD7509},
4376 {0xE490E288, 0x0B128C91, 0x8035DEF1, 0x91B0A1F6, 0x403E9ED3, 0x744FE8ED, 0xFF3C3435, 0x4EAEBC11} } } } ;
4377 static const fp12_t var_expected = { { { {0x2BD872D3, 0x594B9AC0, 0xA0F76579, 0x9F6177AA, 0x850EA9B9, 0xC13F148A, 0xBC43DF52, 0x7C99A11B},
4378 {0x87912A4C, 0x90D21DDB, 0x7414477B, 0xBCD6210C, 0x4A926684, 0xBD279789, 0xF42F1E0C, 0x58E0A782} } ,
4379 { {0x97E1E945, 0xC22E368D, 0x1608DF74, 0xAB772814, 0x9B802627, 0x162AA77D, 0x50E8325E, 0x9D3AA7E9},
4380 {0x924D468C, 0x26A2A4FC, 0x88B7D4ED, 0xCAF2C679, 0x135156DA, 0x2D55D689, 0xCD47DF91, 0x1E869ACB} } } ,
4381 { { {0xE5336C76, 0xB3B90DA6, 0x9DCAB0FE, 0x5A1CE692, 0x16ACFA06, 0xFD768229, 0xC8CDEEA4, 0x7DE48DB2},
4382 {0xEB1E4D76, 0xF31F1A0E, 0x2CAA52CC, 0x59708D43, 0xC6483100, 0x55FEBA82, 0x0FBDF0BF, 0x9363A0CD} } ,
4383 { {0x59CFC3DF, 0xFA7E37D7, 0x25C23CF6, 0x302EAE79, 0x6067AF51, 0x13A8A247, 0x9069ECDB, 0x7E5C5D98},
4384 {0x46CD816E, 0x4B030DDF, 0xF7F8BC66, 0xF806E4B5, 0x99FD3CC5, 0x9979B8A0, 0x4327496E, 0xAB8F01D1} } } ,
4385 { { {0xBD7A0908, 0xA67378F3, 0xFB3B58D3, 0x41F28831, 0xAEA295F0, 0x92EB9316, 0xE6347C12, 0x1CEFB2E0},
4386 {0x7D3C03F3, 0x79472328, 0xF582DAE1, 0x7E466E0E, 0x8E7EA3DB, 0x878EEC83, 0x98AB3DF3, 0xB9C99C0C} } ,
4387 { {0x78CD8E08, 0x203FCB94, 0x654AA2D6, 0xC1D4B76F, 0x1BFA06EC, 0x68EE81F3, 0x58F4F6DC, 0x1F3C486B},
4388 {0x6A3B8A4D, 0xDB56D97D, 0x1AE6FB7C, 0x841C0E5B, 0x72CF780B, 0xF85473FD, 0xB5274DB1, 0x9EA913C5} } } } ;
4390 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2097 a000");
4391 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2098 a001");
4392 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2099 a010");
4393 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2100 a011");
4394 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2101 a100");
4395 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2102 a101");
4396 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2103 a110");
4397 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2104 a111");
4398 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2105 a200");
4399 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2106 a201");
4400 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2107 a210");
4401 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2108 a211");
4404 static const fp12_t var_a = { { { {0x6824F8ED, 0xAFEC5370, 0xA52E42C6, 0x7584C8E4, 0x60944922, 0xDA41F8F9, 0xD8BAF71B, 0x4030E7D7},
4405 {0x4732D98C, 0xC7568D8C, 0x4DEFE11B, 0x6551C75F, 0xCD0896B6, 0x3F7DCE8E, 0x7EECB799, 0x91884400} } ,
4406 { {0x2F8F3C73, 0xCCE41054, 0x223A9EED, 0x7CF4E981, 0xD0ABE6A2, 0xF1D825CC, 0x77100961, 0x7CDCA480},
4407 {0x38B5ED1F, 0xE22394F6, 0x51C3309E, 0xE8AA0CE3, 0xD2DFD759, 0x6EC3CFEF, 0x3A2B1A21, 0x7CA999FC} } } ,
4408 { { {0x91BCD28C, 0x1E08F8D0, 0x6D6ABDB0, 0x09242B88, 0xC8C929DF, 0x6DE1F8B3, 0xDF370938, 0x93211DBA},
4409 {0xCEB5403B, 0x83A89E69, 0xCE2F4BC4, 0xFC45F241, 0xEBA29C30, 0x39F95A0F, 0x5001B251, 0x0F07C3EA} } ,
4410 { {0x7C3D4CD4, 0xCDD2A304, 0x835A467F, 0x25F5C6B0, 0x740D8E37, 0xC827B4A2, 0xDE4E6C5E, 0x219C505D},
4411 {0xE76E0687, 0xEDA7F07A, 0xCF0BE654, 0x39AF6C98, 0xBB6AAF5C, 0x69C8CD96, 0x93A5D157, 0x565C0D5E} } } ,
4412 { { {0x9FD04F38, 0x0E9E3ADB, 0x299021B5, 0xB5EE916A, 0xA08B00B7, 0xE5E0728C, 0xAB9C9D55, 0x1E73A5D5},
4413 {0x9EE01201, 0xB78C83E3, 0x0978BB95, 0xE7E25CC4, 0xB5EB21B1, 0xE2CC67D7, 0x8783F6B1, 0x55841EE5} } ,
4414 { {0x06EC745F, 0x68719074, 0xD01489FD, 0xCA703CFD, 0x5D817572, 0xD621325A, 0x2F6E7A98, 0x9D695FC5},
4415 {0x9E9C92EA, 0xCD9C83B1, 0xF8F802D6, 0xD20EA0F6, 0x81D40E0D, 0xD03F3EEE, 0xD4CEC11C, 0x194C5BA7} } } } ;
4416 static const fp12_t var_expected = { { { {0x4F892D70, 0x03CEF988, 0x27EA408F, 0x193DC2D4, 0x44AF810D, 0x574CD582, 0x9D726661, 0x7373E96C},
4417 {0xCC6A4308, 0x6282D3A8, 0x86E6A1A8, 0xE1940A53, 0x47F43B1E, 0x6BB7EBB4, 0xC266CC88, 0x70E79BF5} } ,
4418 { {0xF6B07980, 0x18848592, 0xC6765564, 0x183481F3, 0xC5758204, 0x7E684E44, 0xE03F5168, 0x21AD305C},
4419 {0xC9F01BC7, 0x897D0A47, 0xD78DAED6, 0xFAACE973, 0x769A3505, 0x95C5B16A, 0x780DBF22, 0xB2178439} } } ,
4420 { { {0x84748FA3, 0xDD30637F, 0xFB9F693C, 0xF0BA634B, 0xBD5A4A12, 0xFF9A1AA0, 0xE0C4B6DB, 0x72C3974F},
4421 {0x51E7DDC7, 0x530FF63D, 0xE4A68910, 0x884C300C, 0x1E9CFDBE, 0x8153B96D, 0x1267A193, 0x95D20468} } ,
4422 { {0x26370D73, 0x2ED28A1C, 0x7DAA8B19, 0x6A67D543, 0xF57685DD, 0x68253AC9, 0x61F9FB33, 0x154CB3D6},
4423 {0xF5180D53, 0x1E6DCBCF, 0x8B8EEA0A, 0x9411D458, 0x3A785D7F, 0xFC115998, 0xD5A84334, 0x71EFB306} } } ,
4424 { { {0x1BBAEE11, 0x12222651, 0x8C5EF5F9, 0xE4A677D4, 0x95DDD61C, 0x743232CE, 0x49C41CF8, 0x1352A9E9},
4425 {0x20958612, 0x17853E2F, 0x74604217, 0xB9D8C06E, 0x9DB6BD8C, 0x91D3952F, 0x6366C3FA, 0x47EE0668} } ,
4426 { {0xD594C553, 0xCC7CFDEF, 0x55015017, 0x589FA6DB, 0x09C79E5C, 0x83AB8FC2, 0x828314C6, 0x57F28A36},
4427 {0xED6AE4C0, 0xC71D8B01, 0xF4112A83, 0xB1F17C62, 0xE0A4E382, 0xCE33CC51, 0x003563F9, 0x47BF7696} } } } ;
4429 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2109 a000");
4430 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2110 a001");
4431 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2111 a010");
4432 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2112 a011");
4433 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2113 a100");
4434 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2114 a101");
4435 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2115 a110");
4436 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2116 a111");
4437 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2117 a200");
4438 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2118 a201");
4439 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2119 a210");
4440 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2120 a211");
4443 static const fp12_t var_a = { { { {0xCF470AB1, 0x145F6DE5, 0xC8644000, 0x7F94F9C6, 0x099B49BC, 0x312AB726, 0x76FCA315, 0x1A90FAD6},
4444 {0x7187B47D, 0xF323DCE6, 0x84DF95C6, 0x3663FF45, 0x76A3270B, 0x873C35F6, 0x62851577, 0x2BBCA3E6} } ,
4445 { {0xC632D4A9, 0x816776D4, 0x649D67C7, 0x54F538D8, 0xAFAC4096, 0xA7B60744, 0x530260C8, 0x51AD44E7},
4446 {0xE10835D4, 0x102983F1, 0x9313CB1A, 0x5BD8325D, 0x56D17E15, 0xA909B824, 0x48DA894F, 0xB545EB88} } } ,
4447 { { {0x37C32125, 0x857D06E0, 0x908E444A, 0xF64AF2A0, 0x7621A9A3, 0xDFD0EF89, 0xAD56A99B, 0x51C12EDF},
4448 {0x0EBC84E3, 0x6180BB4B, 0x87DA3002, 0x0BC3E2DB, 0xFF126485, 0xB2F2F3F8, 0x5334A695, 0x0C5270C4} } ,
4449 { {0xECA3A3D1, 0x3A7D7365, 0xFF103F44, 0x2D0F7AEA, 0x7B20B3A2, 0x110772A4, 0x010F1131, 0x905EBE7B},
4450 {0x6C19B51C, 0xD7C53708, 0xBA567DFD, 0x941DB4BA, 0xAEEE73C4, 0xAADB72FF, 0xE9ACD4DE, 0x391D336A} } } ,
4451 { { {0xD1119854, 0xBEF5D796, 0x4FAD1F5E, 0xEB3CB86E, 0xD309DC91, 0xD27AE9C4, 0x101BC315, 0x137AEE55},
4452 {0x83D9B56B, 0x9BB5AB04, 0x39CB7D22, 0x77163400, 0x2377E1F3, 0xBDAF7656, 0xF8427606, 0x74E024FA} } ,
4453 { {0x8E91F270, 0xFA1F882B, 0xA696D5AA, 0x97EC3726, 0xCAC9DA8B, 0x050FE35D, 0x1ED580B8, 0x6DE1B96A},
4454 {0xB46C8440, 0x69EA25F6, 0xC72190CC, 0x58F706C6, 0x72E2D222, 0x53B65DE5, 0x2A1CEC0D, 0x30EF3203} } } } ;
4455 static const fp12_t var_expected = { { { {0xB269DA97, 0xA3E1E50E, 0x22FF478B, 0x3024DAE1, 0xB9E85CDE, 0x8A432E87, 0x52B0C8EE, 0x537DA102},
4456 {0x30E16C71, 0x23AF4924, 0x8DB3BA15, 0x87BEB8D1, 0x336437A3, 0x158577ED, 0x0366A111, 0x6FE71EC6} } ,
4457 { {0xA22042F5, 0xA6AB00E0, 0xDE675572, 0x3996AEE9, 0x816C2C00, 0xC2EB2D7E, 0xEB70556F, 0x0D063A6C},
4458 {0x64CF93C5, 0x8C66CC84, 0xDBBCE2F3, 0x2EA26FF3, 0x425CEEAE, 0x29C9C723, 0xA54E1452, 0x90223680} } } ,
4459 { { {0xC32A94AB, 0xC70C3504, 0xF748E141, 0x3B7507C1, 0xA076EE27, 0x3F1F9676, 0x6E36791D, 0x49EA3ACE},
4460 {0xABC9229B, 0x53BEC8EF, 0x9B0D3FB9, 0xC4E14D9A, 0x7D574B61, 0x16B3A658, 0xA1DCD95A, 0x4206214E} } ,
4461 { {0x5F90C2C3, 0xA0B4D226, 0x417C2AE7, 0xF946F43D, 0x87EF3A89, 0x13D88C98, 0x69391036, 0x66C13E89},
4462 {0xD7128A07, 0xF9338F83, 0xBE34DADB, 0x758D744D, 0x5684AA17, 0x661BBEB1, 0xB18B69FB, 0xB111C77A} } } ,
4463 { { {0x65EE6FB3, 0x66342CFF, 0x6A1B565D, 0xCAD8FCFA, 0xDF5326EE, 0xD8810524, 0x3DC51F6B, 0x58932FA6},
4464 {0x8E7FE469, 0xAD9AF37F, 0xC650F70E, 0x6992C1FA, 0xF9D70721, 0x0AC0212E, 0x6F24BC64, 0xA07CD7D8} } ,
4465 { {0x1FD4362D, 0x261C21C3, 0x60539311, 0x89F97BC8, 0x5984B2B6, 0xB04502BF, 0x449143D4, 0x3EEABBCA},
4466 {0x3FDAF3E5, 0xF42D5983, 0x1F991493, 0x47EE8A2A, 0xE02E70B5, 0xEFE8D493, 0x26358E3C, 0x79DED8D9} } } } ;
4468 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2121 a000");
4469 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2122 a001");
4470 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2123 a010");
4471 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2124 a011");
4472 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2125 a100");
4473 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2126 a101");
4474 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2127 a110");
4475 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2128 a111");
4476 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2129 a200");
4477 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2130 a201");
4478 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2131 a210");
4479 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2132 a211");
4482 static const fp12_t var_a = { { { {0x8B55D7A8, 0xD5982791, 0x3465966E, 0x03CDAABD, 0x6C3A4686, 0x37F4314F, 0x9B4CDD5F, 0x9C0BCA7D},
4483 {0xA26FAE1D, 0xF0AF29C4, 0x886E5544, 0xFC0B6DCF, 0x254E1F9A, 0x32254188, 0x7DCDC125, 0x9A01F845} } ,
4484 { {0xA7A5A90C, 0xAC58A3DC, 0xB54A2A76, 0xAD020480, 0xCBA29FCE, 0x4E4B5D16, 0x8A6D207C, 0x188D9DE1},
4485 {0x5CC95E9D, 0x707CC802, 0xE52007B1, 0xD60CDC82, 0x0A71B805, 0xB4BE0B33, 0x8885E978, 0x06E20855} } } ,
4486 { { {0x9C3C15E9, 0xA9E5C007, 0x95A583BF, 0x3D6B0914, 0xAE5C95F8, 0x30D077FB, 0x899CC16F, 0x3B948E9B},
4487 {0x295DCA57, 0xF30300CD, 0x1D202BBF, 0xDB86778C, 0x6AF9B505, 0x0BC830AB, 0x728D8E55, 0x2C3CD5B1} } ,
4488 { {0x99B80CCB, 0x2EC33530, 0xF5BA8D6C, 0x7067AB81, 0x946F3F4B, 0xD1E2A70B, 0xB3E2A91B, 0x03312296},
4489 {0xF77195E8, 0xAF9BD552, 0x12ED318E, 0xC37E2DF6, 0xDAE966A0, 0x74340140, 0xE6B484D6, 0x28771C38} } } ,
4490 { { {0x89EE1863, 0x67499179, 0x54D49CFE, 0x1DF7C4E5, 0x66140A1C, 0x56BCD988, 0x1C353686, 0x8E5C28F9},
4491 {0xB882D8CB, 0xCE2830D7, 0xA4469223, 0xF01ED889, 0xB5341B99, 0x25A284A6, 0x66D8F699, 0x9BE88E74} } ,
4492 { {0x832C82C8, 0x273120B4, 0x833BAEA1, 0xCBEF1E01, 0x6DEE0009, 0x8FB908D9, 0x18A74178, 0x12569668},
4493 {0x917150A5, 0xC0D9D276, 0x95013C50, 0xF270402B, 0x6FBEFB99, 0x3E7F1918, 0x76C6F4F6, 0x1250F9C9} } } } ;
4494 static const fp12_t var_expected = { { { {0xA5CF4A2C, 0xBDEB6E39, 0x388FB1DC, 0x3859409A, 0xD55467E0, 0x93C90200, 0x0F85C777, 0x0AAA9C16},
4495 {0xCF1D10E9, 0xBE0BE699, 0xD717A272, 0xF0AF5938, 0xD78F4CFF, 0xCA590D7A, 0x1E066456, 0x23390DC8} } ,
4496 { {0x7FF0DCD5, 0x6DBC77F4, 0x4BA98F0C, 0xBBCCE8A1, 0xA88F3F71, 0x632B5A3D, 0x05911ADB, 0x00388FBF},
4497 {0x19224404, 0xADFBCDE6, 0x7F05A950, 0x72DD2F1A, 0x2538E09C, 0x7896B1F9, 0x3C03DC10, 0x319FD96E} } } ,
4498 { { {0x2B431E36, 0x6848219B, 0x8F3D8DC8, 0xF49102FE, 0x062BEF3A, 0xD8B073D2, 0x594780FB, 0xB7B114E2},
4499 {0x4BC38D98, 0x8758F5D9, 0x1C828A4F, 0x67C1FCA9, 0x27D619E0, 0x651024B3, 0x4F044E76, 0x4E073565} } ,
4500 { {0xC3F25CA2, 0xED055E6C, 0x192A7392, 0xF20C5A54, 0xB5EAAB21, 0x24CCB8D3, 0x3FB0393D, 0x2D5CBD8D},
4501 {0x26BB292E, 0x7A08089E, 0xAD773A7A, 0xA738D43B, 0x098C6910, 0xDEB52DCB, 0xEF450BF4, 0x24E7EE9A} } } ,
4502 { { {0xD28E7075, 0xC4E0B680, 0x0EBBFBE8, 0x55999280, 0x243587CC, 0x6C953EDC, 0x6670422B, 0x2541DD55},
4503 {0x8A4C85AC, 0x5CF0D38C, 0x79A29300, 0x3FE1CDBC, 0xD338EC19, 0x526AD8F5, 0xB1914237, 0x3AFDA86E} } ,
4504 { {0x417C81D9, 0xE3B9D032, 0xEFF7EB56, 0xF8BFE29E, 0xAD6DDD64, 0xD19C6F6D, 0x9B20B4E8, 0xB87B24C4},
4505 {0xBE881C0C, 0xD341CBCA, 0xBEBB984C, 0x530F1FF5, 0x13CF16A7, 0xE9FA6649, 0xE2F9C45A, 0x9D1302D2} } } } ;
4507 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2133 a000");
4508 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2134 a001");
4509 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2135 a010");
4510 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2136 a011");
4511 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2137 a100");
4512 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2138 a101");
4513 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2139 a110");
4514 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2140 a111");
4515 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2141 a200");
4516 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2142 a201");
4517 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2143 a210");
4518 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2144 a211");
4521 static const fp12_t var_a = { { { {0xBFCA2EF2, 0x0D09AEBC, 0x6057B49A, 0x9F853531, 0x158C8E1B, 0xD59F556E, 0x011CF873, 0x96186D4B},
4522 {0x916F1F27, 0x2361875D, 0xDF63052C, 0xD1D23A20, 0xD50750F2, 0x730ADC07, 0xA6C6AA25, 0x8D6560FA} } ,
4523 { {0xD981FB4F, 0x9DEB71D2, 0xDB58A90C, 0x41D2FC98, 0x178B590E, 0x8E8952CC, 0x9BE291A9, 0x9EE5D0EA},
4524 {0xF7E08553, 0x038E5649, 0x87159678, 0xA037A96F, 0x3215631C, 0x4A9E1B29, 0x0ACA90ED, 0x6E22BCE7} } } ,
4525 { { {0xA75B031D, 0x5913AC08, 0xB308B83C, 0x7FEBA753, 0x593C4B52, 0x2038E3E9, 0x08C80411, 0x2F8614F1},
4526 {0x78C170AA, 0xB4D27312, 0xD132F3FD, 0x49ED0EC9, 0xBCFA2DFB, 0x9EF1A2B4, 0xC9C21FC1, 0x3DEB7048} } ,
4527 { {0x3626A3B2, 0x389435E2, 0x14AA709C, 0x947F48D9, 0x551A05DF, 0x99A3F11E, 0x5949B5EA, 0x3F9BC6C3},
4528 {0x2AD32B35, 0x7B1288D8, 0x3246E947, 0x86372983, 0x24802259, 0xDFDF73F9, 0x9952A117, 0x593E71AD} } } ,
4529 { { {0xC9C1B081, 0x9BED2DC7, 0x5DBC712F, 0x2348B9D6, 0xBAF25C27, 0x527375B7, 0x756974C8, 0x67FE1018},
4530 {0xE9E47AA2, 0xC36F62F8, 0x79F3D96E, 0x41710F78, 0x70026724, 0x547DD472, 0xCF3846AB, 0xA3A40492} } ,
4531 { {0x9F65A2F1, 0xC3AB7937, 0x61935A3B, 0xD954103D, 0x03AA30CB, 0x9AA93974, 0xA8F459CF, 0x4D35A5E0},
4532 {0xFBED99C2, 0x6AFF3061, 0xB20E0BAD, 0x02A8E25E, 0x513D415F, 0x92DBDC31, 0x9800B5A2, 0x324E9E1F} } } } ;
4533 static const fp12_t var_expected = { { { {0x7A3F9423, 0xAE159DEF, 0xF4C6052C, 0x0B40FC6A, 0x09C37F61, 0xDAC3DF6F, 0x5E799D34, 0x55BE8211},
4534 {0x838B82CC, 0x2E65948E, 0x7336F490, 0x4468E66C, 0x8D6ED344, 0x5C038DBC, 0xF5228DEA, 0x30012A15} } ,
4535 { {0xAA82479C, 0xDD794004, 0xBFE7AF8E, 0x6E1D853A, 0x6E50B0DC, 0x788BC40B, 0xF413FC66, 0x2F1D84A7},
4536 {0x55C50BC5, 0xA07A89CE, 0xE1E81846, 0x5FD25B1B, 0xA91421F4, 0x3B8A40EC, 0xB426D833, 0x1DBD08E1} } } ,
4537 { { {0x7B9C48DC, 0xC7F5C947, 0x225E37E4, 0xB2F5018A, 0xB4BC24AE, 0xE1665E02, 0x9D6644BE, 0x7868095D},
4538 {0x3B99E2EF, 0xB6C20036, 0xAFE91599, 0xEB3AFC29, 0x4FFE30C0, 0x22F5EDBA, 0xB6FAB3C3, 0x3B199F81} } ,
4539 { {0x40ED580A, 0x5859DD2B, 0xA3051F2B, 0x0A8BDF13, 0xE48DAA78, 0xE9A3B65B, 0x2AA928B9, 0x2931F7ED},
4540 {0x01310779, 0xB426EA7A, 0x0F2A54B8, 0x569C4C12, 0xDEE83CB8, 0x2CC01732, 0x41404E2E, 0x5AB183BD} } } ,
4541 { { {0x8F78BDB2, 0xA5519470, 0x40FE1468, 0xCAF0D228, 0xAD4586C2, 0xEDF6FF95, 0x63C436CF, 0x96A01CC8},
4542 {0xDC30A258, 0x613C82C9, 0xF8FFD80D, 0xD72C4D3B, 0xC45455BF, 0x1DF7E865, 0x4671089A, 0x79FC51F0} } ,
4543 { {0xAB77EFA4, 0x00F70961, 0x7D296050, 0x30A9DBC5, 0x613D60AE, 0x2376D881, 0x6871B828, 0x138A7FBF},
4544 {0xDFFC0340, 0xD25141C0, 0x034B46D4, 0xBD16AE96, 0x191FD085, 0xAA907969, 0x7729DE74, 0x8551D5E3} } } } ;
4546 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2145 a000");
4547 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2146 a001");
4548 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2147 a010");
4549 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2148 a011");
4550 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2149 a100");
4551 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2150 a101");
4552 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2151 a110");
4553 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2152 a111");
4554 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2153 a200");
4555 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2154 a201");
4556 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2155 a210");
4557 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2156 a211");
4560 static const fp12_t var_a = { { { {0xDDD47DAF, 0x02ECD08A, 0x340BBB48, 0x3C9D4619, 0x3431C5CB, 0xED5BF0A0, 0x5C60924D, 0x502136D8},
4561 {0xDE1DBF1A, 0x2C2D5B81, 0x780AE043, 0x2043E837, 0x8DE0D85F, 0x277BA4CC, 0x475ADAFA, 0x09A8FC56} } ,
4562 { {0x7FA388C1, 0x16A8C8DF, 0x9C58D08D, 0x289A1E65, 0x70F214E5, 0xDFFE1A4C, 0x4F396A6E, 0x2BBC3CBD},
4563 {0x5D51E0B3, 0xCF5774B6, 0xA342F87F, 0x8941D60F, 0x16D2B686, 0x3BE6BCF2, 0x8F5B3603, 0x4C7D0D2F} } } ,
4564 { { {0xBC187445, 0x9052B582, 0xF73CC7C8, 0x79B675C9, 0x81A859AB, 0x5EF9C1EA, 0x58F72B37, 0x3636A387},
4565 {0xC41B1712, 0x30AB4E1E, 0x57FBD094, 0xC9257CFE, 0xE6CD2A63, 0xB04636E1, 0x71DA118C, 0x428E8019} } ,
4566 { {0xDFD86A7D, 0xB0F176ED, 0x15D55017, 0x362D090E, 0xF022D374, 0x9E8190E0, 0x9030F34C, 0x40579053},
4567 {0x6018DA66, 0xB0234B8F, 0xDAF953E5, 0x19E36F58, 0x7B049E96, 0xD50449F7, 0xE201A7D9, 0x93FCBF79} } } ,
4568 { { {0xD8BC4CB9, 0xF94D53B6, 0xDD6D07C8, 0xB7BB77CB, 0xD9454007, 0x0F564CE4, 0x889958FC, 0x126D07B1},
4569 {0xC04F616D, 0xF197F6F5, 0xB0DEAAA5, 0xF1AC7E59, 0x91BFCAC7, 0x3D3FCC77, 0x17A4140A, 0x28A69502} } ,
4570 { {0x349D3A53, 0x29FD8E8D, 0x47C51A87, 0xA8405A62, 0xEFD44858, 0x5DD7FD13, 0x58556BC1, 0x6FDB2D9B},
4571 {0xAE07DCDE, 0xD3C8B41C, 0x9E75EC03, 0x0C87FD7D, 0x2532350A, 0xB8DA4F43, 0x868AD620, 0x2BB5929A} } } } ;
4572 static const fp12_t var_expected = { { { {0x20005925, 0x80EDAD1E, 0x0441CD47, 0x27D7795D, 0xC40A27C0, 0x745E2685, 0x4E3FB73B, 0x851A6ACD},
4573 {0xEF0EDF8D, 0x9616ADC0, 0xBC057021, 0x9021F41B, 0x46F06C2F, 0x13BDD266, 0x23AD6D7D, 0x04D47E2B} } ,
4574 { {0x70E7DEAE, 0x0ACBA948, 0x386857EA, 0x1DD5E583, 0xE26A4F4D, 0xEDAF3B5B, 0xC7AC234B, 0x72E7EDBF},
4575 {0xDFBF0AA7, 0x6722FF33, 0x3BDD6BE3, 0xCE29C158, 0xB55AA01D, 0x1BA38CAE, 0xE7BD0916, 0x834855F8} } } ,
4576 { { {0x0F225470, 0xC7A09F9A, 0x65DA5387, 0x46641135, 0xEAC571B0, 0x2D2D0F2A, 0xCC8B03B0, 0x78252124},
4577 {0x620D8B89, 0x1855A70F, 0x2BFDE84A, 0xE492BE7F, 0xF3669531, 0x58231B70, 0xB8ED08C6, 0x2147400C} } ,
4578 { {0xA1024F8C, 0x57F0004F, 0x752697AF, 0xA49F5AD7, 0x2202AE94, 0xCCF0F6A6, 0xE827E7BA, 0x7D35978A},
4579 {0xB00C6D33, 0xD811A5C7, 0x6D7CA9F2, 0x0CF1B7AC, 0xBD824F4B, 0xEA8224FB, 0xF100D3EC, 0x49FE5FBC} } } ,
4580 { { {0x1D7440AA, 0xFC1DEEB4, 0x58F27387, 0x65669236, 0x1693E4DE, 0x855B54A8, 0xE45C1A92, 0x66405339},
4581 {0x913DCB04, 0x78434053, 0x42AB44F6, 0x825F157D, 0x72D12A3E, 0x9C501471, 0x2BE17819, 0x715D19E2} } ,
4582 { {0x4B64B777, 0x14760C1F, 0x8E1E7CE7, 0xDDA90381, 0xA1DB6906, 0x2C9C2CBF, 0xCC3A23F5, 0x94F7662E},
4583 {0x5703EE6F, 0xE9E45A0E, 0xCF3AF601, 0x0643FEBE, 0x92991A85, 0x5C6D27A1, 0x43456B10, 0x15DAC94D} } } } ;
4585 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2157 a000");
4586 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2158 a001");
4587 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2159 a010");
4588 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2160 a011");
4589 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2161 a100");
4590 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2162 a101");
4591 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2163 a110");
4592 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2164 a111");
4593 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2165 a200");
4594 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2166 a201");
4595 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2167 a210");
4596 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2168 a211");
4599 static const fp12_t var_a = { { { {0x9B75DCB9, 0x44C042B8, 0x108FC0AB, 0xBDF857D6, 0x25C4221D, 0x8493C9C9, 0x93C86D68, 0x2C6298FC},
4600 {0x3A93BA9F, 0x77714FF4, 0xAA05BE16, 0x61D55D11, 0x75487855, 0x5892DA8C, 0xE3C5F120, 0x04307B69} } ,
4601 { {0x1E3958D2, 0x8A23F8C8, 0xB084FC6E, 0x2080D008, 0xAD4BDA36, 0xB0968FCC, 0xCEA46D78, 0x8C1F539C},
4602 {0xAF220C13, 0x3F57695E, 0x19A1E8F6, 0x29EC05CB, 0xFC7766A9, 0x6C074C7A, 0x22FED44A, 0x5D89B557} } } ,
4603 { { {0xA8F4C39E, 0x7CD746B4, 0x0EDC0B64, 0x2C1981BF, 0xA4339AF4, 0x51FB0983, 0xA0BB686B, 0x58D2369A},
4604 {0x9A93F040, 0xCB59D5BA, 0x6F75E2A8, 0xDF9F6D92, 0x7A8FFEBB, 0x86D162E1, 0x7BC2ECD2, 0x1F30BE88} } ,
4605 { {0x68CA368E, 0xDAAE871E, 0x4E0EA9B3, 0x7A4E501A, 0x6785F352, 0x195AE2D1, 0xDC6DF80D, 0x997DDD90},
4606 {0xCA401EBD, 0xFC82D1B8, 0x711B4CBB, 0x3AD57EC3, 0xE986344E, 0x788E6692, 0x60D9EBA5, 0x721F9F99} } } ,
4607 { { {0xCAC13860, 0xA7AE6153, 0xD427E3EE, 0xE182302D, 0x925BF0B2, 0xF8D98DAB, 0x98FB5346, 0x98F87BB5},
4608 {0xE7A646DF, 0xF5279C7B, 0x516F8278, 0x20FF8DEB, 0x346D04CF, 0x57921976, 0x4771EAE6, 0x055ACCEA} } ,
4609 { {0x196B9168, 0x243031C9, 0x72A08A3F, 0x69701976, 0xB0CFF106, 0x25DFF123, 0xE8B5AAB7, 0x246AA11E},
4610 {0x670DCEF8, 0x14A428EE, 0xCF376100, 0x06099F3C, 0xD3A394E0, 0x65D7785F, 0xE60C685A, 0xB0E1BE89} } } } ;
4611 static const fp12_t var_expected = { { { {0xFED108AA, 0x21D76634, 0x7283CFF9, 0x6885023B, 0x3CD355E9, 0xBFFA131A, 0x69F3A4C8, 0x733B1BDF},
4612 {0xCE5FF79D, 0xBB2FECD2, 0x3F3ECEAE, 0x3A7384D9, 0xE4958105, 0xA9F99B7B, 0x11F266A4, 0x5F220D16} } ,
4613 { {0x0F1CAC69, 0x4511FC64, 0x58427E37, 0x10406804, 0x56A5ED1B, 0x584B47E6, 0x675236BC, 0x460FA9CE},
4614 {0x08A72057, 0x9F22F988, 0xF70CE41E, 0x1E7ED935, 0x282CF82F, 0xB3B3D473, 0xB18ED839, 0x8BCEAA0C} } } ,
4615 { { {0x547A61CF, 0x3E6BA35A, 0x876E05B2, 0x160CC0DF, 0xD219CD7A, 0xA8FD84C1, 0x505DB435, 0x2C691B4D},
4616 {0x4D49F820, 0x65ACEADD, 0x37BAF154, 0xEFCFB6C9, 0xBD47FF5D, 0x4368B170, 0x3DE17669, 0x0F985F44} } ,
4617 { {0x34651B47, 0xED57438F, 0x270754D9, 0x3D27280D, 0xB3C2F9A9, 0x8CAD7168, 0x6E36FC06, 0x4CBEEEC8},
4618 {0x163629AC, 0x7DB8ADB5, 0x22C99601, 0xA6F395B2, 0x1EB45F01, 0x39F7617F, 0xD07C63E7, 0x96199F2D} } } ,
4619 { { {0xE5609C30, 0x53D730A9, 0xEA13F1F7, 0x70C11816, 0xC92DF859, 0x7C6CC6D5, 0xCC7DA9A3, 0x4C7C3DDA},
4620 {0xA4E93DBD, 0xFA0B1316, 0x12F3B0DF, 0x1A089D46, 0xC427C742, 0xA9793AF0, 0x43C86387, 0x5FB735D6} } ,
4621 { {0x8CB5C8B4, 0x921818E4, 0x3950451F, 0x34B80CBB, 0xD867F883, 0x92EFF891, 0x745AD55B, 0x1235508F},
4622 {0x3386E77C, 0x0A521477, 0x679BB080, 0x0304CF9E, 0xE9D1CA70, 0x32EBBC2F, 0xF306342D, 0x5870DF44} } } } ;
4624 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2169 a000");
4625 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2170 a001");
4626 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2171 a010");
4627 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2172 a011");
4628 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2173 a100");
4629 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2174 a101");
4630 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2175 a110");
4631 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2176 a111");
4632 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2177 a200");
4633 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2178 a201");
4634 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2179 a210");
4635 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2180 a211");
4638 static const fp12_t var_a = { { { {0x688DE97E, 0xCE960E2C, 0x8A0249EB, 0xA30DD493, 0xD83517A2, 0x02005108, 0x22E6DA14, 0x34402FED},
4639 {0xAEA47979, 0xFB12A3F6, 0xF5C7E11E, 0x2932D9A1, 0x88D717B8, 0x424EB6F3, 0xB19A0CB9, 0x2E784161} } ,
4640 { {0xBE3AE32B, 0x6A1424C1, 0xC38C239E, 0xEF726633, 0x6C15F457, 0x4F4B017E, 0x5BEF76BD, 0xA4F09109},
4641 {0xEE075928, 0x8DB69E50, 0x5BFD2275, 0x5552B0C5, 0xA3A74847, 0xBAAD0EC7, 0x5DFD6315, 0x61FE2EF2} } } ,
4642 { { {0xEA5BEDD8, 0xF9042E09, 0x5830D3B1, 0x3A15C9C7, 0x5DD04B58, 0xF7216AE6, 0xE8CC3070, 0x7558D7F9},
4643 {0x3234A665, 0xE85B1389, 0x07394D69, 0x840F3DAB, 0x610AA5BA, 0xDEA2D9B1, 0xA0BF5893, 0xB29CE224} } ,
4644 { {0x99A28D97, 0xBA584A3D, 0xEC898786, 0x9C003CAA, 0x88071C15, 0x2C62CB2B, 0x1DCB93F1, 0x31E4055E},
4645 {0x6557C402, 0x706BF0FC, 0x68AFC7CB, 0xDC6E3540, 0xEC1D2F18, 0x04E10BB1, 0x2D64B5B7, 0x1253C79C} } } ,
4646 { { {0xB8857D48, 0x2F926757, 0x65A954C2, 0x6E796EDF, 0x094D303F, 0x5ED84C56, 0x90F51AB6, 0xA134AC72},
4647 {0x3C7E565D, 0xC2A34514, 0x830FBFD6, 0x0EBA8507, 0xFB5EB3DB, 0xAF112B8A, 0xFB51A5A4, 0x95F00617} } ,
4648 { {0x12E4F196, 0x19E8037B, 0x14E95785, 0x367B10AE, 0xEC11F6B1, 0x43EF7A5E, 0xD648C33D, 0x149AB82D},
4649 {0x5BA85B8A, 0xC3D33A71, 0x9D2488E3, 0x9C641893, 0x91ABCE7E, 0xBE247C2B, 0xBEEB03A7, 0x38D4EA7C} } } } ;
4650 static const fp12_t var_expected = { { { {0x3446F4BF, 0xE74B0716, 0xC50124F5, 0x5186EA49, 0x6C1A8BD1, 0x01002884, 0x91736D0A, 0x1A2017F6},
4651 {0x0868570A, 0xFD0096D4, 0x651FE032, 0x9E224321, 0x6E5CD0B6, 0x1ED789AF, 0xF8DC7471, 0x7445F011} } ,
4652 { {0x90338BE3, 0xB4815739, 0x4C020172, 0x8142096A, 0xDFFC3F06, 0x2555AEF4, 0xCE072973, 0xAF8217E5},
4653 {0x7703AC94, 0xC6DB4F28, 0xADFE913A, 0xAAA95862, 0xD1D3A423, 0xDD568763, 0x2EFEB18A, 0x30FF1779} } } ,
4654 { { {0xF52DF6EC, 0xFC821704, 0xAC1869D8, 0x1D0AE4E3, 0x2EE825AC, 0x7B90B573, 0xF4661838, 0x3AAC6BFC},
4655 {0x4A306D80, 0x73A4CE9D, 0xEDD89658, 0xCB907525, 0x5A7697B7, 0x6D019B0E, 0x706F1A5E, 0xB6584073} } ,
4656 { {0x7DE76119, 0xDCA369F7, 0xE080B366, 0x5788F4A5, 0x6DF4D2E5, 0x13E193CB, 0x2EF5380D, 0x75FBD210},
4657 {0x32ABE201, 0xB835F87E, 0x3457E3E5, 0x6E371AA0, 0xF60E978C, 0x827085D8, 0x16B25ADB, 0x0929E3CE} } } ,
4658 { { {0xDC42BEA4, 0x17C933AB, 0xB2D4AA61, 0xB73CB76F, 0x04A6981F, 0x2F6C262B, 0x487A8D5B, 0x509A5639},
4659 {0xCF55457C, 0xE0C8E762, 0x2BC3CF8E, 0x10E618D4, 0x27A09EC8, 0xD538C3FB, 0x1DB840E6, 0xA801D26D} } ,
4660 { {0x897278CB, 0x8CF401BD, 0x0A74ABC2, 0x9B3D8857, 0x7608FB58, 0xA1F7BD2F, 0xEB24619E, 0x0A4D5C16},
4661 {0xADD42DC5, 0xE1E99D38, 0xCE924471, 0x4E320C49, 0xC8D5E73F, 0xDF123E15, 0x5F7581D3, 0x1C6A753E} } } } ;
4663 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2181 a000");
4664 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2182 a001");
4665 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2183 a010");
4666 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2184 a011");
4667 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2185 a100");
4668 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2186 a101");
4669 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2187 a110");
4670 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2188 a111");
4671 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2189 a200");
4672 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2190 a201");
4673 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2191 a210");
4674 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2192 a211");
4677 static const fp12_t var_a = { { { {0x3BB7AF27, 0x78FB8BEB, 0xDB99874E, 0x079E3686, 0xC5E1E5AF, 0xC09F0B30, 0xC399FA9C, 0x020C89F3},
4678 {0x345472F6, 0x9240B2F6, 0x90D46BAB, 0x90465380, 0x3FE08D1B, 0x3D200D4A, 0x6B18927F, 0x1E4CAE2B} } ,
4679 { {0x56F17187, 0x90AC7F30, 0x0D230E3E, 0xADE9B124, 0x257893E8, 0x1661105F, 0xAE980024, 0x0AD59C54},
4680 {0xB044ED15, 0x921C30D2, 0xCDA07081, 0x11C61714, 0x2C5F443F, 0x81F09CF2, 0xB7D81DBD, 0x35A96380} } } ,
4681 { { {0x78C3FA9E, 0xDE336DF0, 0x0BE9D81A, 0xBA590CA0, 0x24F59C6F, 0xA9783CF5, 0xE9C8FA6B, 0x24463F60},
4682 {0x825B6EC4, 0x5F2C1D27, 0x58C58BEA, 0xD1CD173E, 0x142DA7A5, 0x0FB87B11, 0x984DAFFB, 0x954B525E} } ,
4683 { {0xCDB1DA60, 0x25DC70FD, 0xFDEEB0BA, 0xC8B81EEC, 0x1ED1F192, 0x2A4ABBF8, 0x4CA299D7, 0x5A72DB10},
4684 {0x52AD525C, 0xE08A4E63, 0x76DADDB8, 0x4FB2ADAD, 0xF5E92C1E, 0xC51F499D, 0xC2D9A710, 0x3863674B} } } ,
4685 { { {0xFE86FA75, 0x660AF256, 0x9D956A25, 0x884BC621, 0x0A8F60FC, 0x93C70D00, 0x6AFF6675, 0x7FDDA31E},
4686 {0x8F0D4663, 0x32053817, 0x01D344C6, 0x986C694D, 0x6278F37F, 0xAE268E2F, 0x2AA0C7DA, 0x424F1866} } ,
4687 { {0xB7E069C0, 0xE4007097, 0x90D514DD, 0x159F7461, 0xC41B1476, 0x16013641, 0x98E5DD4E, 0x1D559C93},
4688 {0x8500DC23, 0xB884EDE9, 0x3FF5D802, 0xE5D4CCE3, 0xD7617477, 0x1D52914E, 0xC53C0112, 0x5BC6F604} } } } ;
4689 static const fp12_t var_expected = { { { {0x4EF1F1E1, 0xBBF50ACE, 0xD808B34A, 0x0D57F193, 0x0CE237B2, 0xDDFFB3CE, 0x01DC6B62, 0x5E10145B},
4690 {0x1A2A397B, 0xC920597B, 0x486A35D5, 0xC82329C0, 0x1FF0468D, 0x9E9006A5, 0xB58C493F, 0x0F265715} } ,
4691 { {0xDC8ED311, 0xC7CD8470, 0x70CD76C2, 0xE07DAEE2, 0x3CAD8ECE, 0x88E0B665, 0x775B6E26, 0x62749D8B},
4692 {0x093890D8, 0x48855D42, 0xD10C27E4, 0x126BE1DA, 0xC020E6FA, 0x3EA87CAE, 0x7BFB7CF3, 0x77DE8121} } } ,
4693 { { {0x3C61FD4F, 0x6F19B6F8, 0x05F4EC0D, 0xDD2C8650, 0x927ACE37, 0xD4BC1E7A, 0x74E47D35, 0x12231FB0},
4694 {0xC12DB762, 0x2F960E93, 0x2C62C5F5, 0xE8E68B9F, 0x8A16D3D2, 0x87DC3D88, 0x4C26D7FD, 0x4AA5A92F} } ,
4695 { {0xE6D8ED30, 0x12EE387E, 0x7EF7585D, 0x645C0F76, 0x0F68F8C9, 0x95255DFC, 0x26514CEB, 0x2D396D88},
4696 {0xA956A92E, 0x70452731, 0xBB6D6EDC, 0x27D956D6, 0xFAF4960F, 0x628FA4CE, 0xE16CD388, 0x1C31B3A5} } } ,
4697 { { {0x30599788, 0x327CBE04, 0x3906A4B6, 0xCDAEB961, 0xAF38F558, 0x4793B4B5, 0x558F214F, 0x9CF8A0F0},
4698 {0x789CBD7F, 0x9879E0E4, 0xEB259206, 0x55BF0AF6, 0x5B2DBE9A, 0xD4C3754D, 0x355FD201, 0x7E315B94} } ,
4699 { {0xDBF034E0, 0xF200384B, 0xC86A8A6E, 0x0ACFBA30, 0xE20D8A3B, 0x0B009B20, 0xCC72EEA7, 0x0EAACE49},
4700 {0x7396885F, 0xDBB9BBCD, 0x0A36DBA4, 0x7C733CC2, 0x15A1FF16, 0x8C5976DD, 0x82AD6E9D, 0x8AED4A63} } } } ;
4702 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2193 a000");
4703 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2194 a001");
4704 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2195 a010");
4705 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2196 a011");
4706 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2197 a100");
4707 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2198 a101");
4708 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2199 a110");
4709 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2200 a111");
4710 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2201 a200");
4711 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2202 a201");
4712 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2203 a210");
4713 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2204 a211");
4716 static const fp12_t var_a = { { { {0x0D221640, 0x1ADE14B8, 0x3AFD0CC3, 0x01307670, 0x6377CD5A, 0x1595E2B0, 0x2EF81BF9, 0x2B9A4ABB},
4717 {0xC2B77587, 0x130D448F, 0xB4A2944C, 0xAF435435, 0x118942EF, 0xA11DF967, 0xC8322ADB, 0x6C7B036B} } ,
4718 { {0x06BF1153, 0xCF4E3BA2, 0x40D5C5D2, 0xAA563BEC, 0x4B9BFF29, 0x4F60287E, 0x3DAE3C37, 0x8535B4F5},
4719 {0x12E207E6, 0x23CC4C5F, 0x26A81105, 0xAF211795, 0x0EFA123A, 0x0D0BB6FD, 0xA93C838F, 0xA0AD650E} } } ,
4720 { { {0x71BE4D7A, 0x02EAA86E, 0xDE949962, 0xFE8B3DBF, 0x6C178F93, 0xB14D3AC8, 0x1CDB2A85, 0x2CD7AE37},
4721 {0x837BF492, 0x092AB402, 0x998D3AD1, 0xDD77AC1E, 0x0ABA9910, 0x71B29021, 0x1C9CF4B6, 0x5DB8263C} } ,
4722 { {0xFCB0D8D1, 0xF49A087C, 0xB8DFF722, 0x159F8439, 0xA37BC2DA, 0x6B86DBF9, 0x2062CF92, 0xAB7E62AC},
4723 {0x629DF893, 0x26D90435, 0x52E6EFE7, 0x737F5372, 0x83973A00, 0x1ED25B30, 0x166AFE49, 0x4FA3F161} } } ,
4724 { { {0x3080B569, 0x27B08072, 0xDF14657F, 0x35465252, 0xB8273EFC, 0xF480C353, 0x9D86BA95, 0x0F0B6C01},
4725 {0x3B4E2E2F, 0x1CE6CEDD, 0xD7A0A194, 0xEA31600C, 0x35FA8D27, 0xA65ECAFD, 0xCCE65C90, 0x5DB2D686} } ,
4726 { {0x611C51CC, 0x58965D87, 0xF3F54A9F, 0x3104ED52, 0x05820414, 0xEEF5F3EF, 0x2AD84E66, 0x90329906},
4727 {0xDC51223D, 0xCCC7B201, 0xED56DCD2, 0xFAD8EB90, 0x1DB3B95D, 0xD892E9E1, 0xB3C96031, 0xB0F512BC} } } } ;
4728 static const fp12_t var_expected = { { { {0x06910B20, 0x8D6F0A5C, 0x1D7E8661, 0x00983B38, 0x31BBE6AD, 0x8ACAF158, 0x977C0DFC, 0x15CD255D},
4729 {0x9271D511, 0x88FDE720, 0x448D39C9, 0x612A806B, 0x32B5E652, 0x4E3F2AE9, 0x04288382, 0x93475117} } ,
4730 { {0xB475A2F7, 0xE71E62A9, 0x8AA6D28C, 0x5EB3F446, 0xCFBF446F, 0x25604274, 0xBEE68C30, 0x9FA4A9DB},
4731 {0x897103F3, 0x91E6262F, 0x93540882, 0x57908BCA, 0x877D091D, 0x8685DB7E, 0x549E41C7, 0x5056B287} } } ,
4732 { { {0x38DF26BD, 0x01755437, 0xEF4A4CB1, 0xFF459EDF, 0x360BC7C9, 0xD8A69D64, 0x8E6D9542, 0x166BD71B},
4733 {0x41BDFA49, 0x84955A01, 0x4CC69D68, 0x6EBBD60F, 0x855D4C88, 0x38D94810, 0x0E4E7A5B, 0x2EDC131E} } ,
4734 { {0x2F6E86B6, 0xF9C44917, 0x46ABEB34, 0x9458986D, 0x7BAF2647, 0xB3739C32, 0x3040D5DD, 0xB2C900B7},
4735 {0x62651697, 0x12E3C6F3, 0x93AF6797, 0xC3488009, 0xEBBCE1DA, 0x0D195BCD, 0xAB44ED39, 0x84DBC811} } } ,
4736 { { {0xC9567502, 0x134F8511, 0xD9C62263, 0xA42BFF79, 0x8604E458, 0x77F08FDF, 0xEED2CB5F, 0x648F8561},
4737 {0x4EBD3165, 0x8DEAAC47, 0xD60C406D, 0x7EA18656, 0x44EE8B6E, 0xD0DF93B4, 0x86829C5C, 0x8BE33AA4} } ,
4738 { {0xB08E28E6, 0xAC4B2EC3, 0x79FAA54F, 0x188276A9, 0x82C1020A, 0x777AF9F7, 0x156C2733, 0x48194C83},
4739 {0x9F3EAB6C, 0xE5DB1DD9, 0xE0E75E0C, 0x86F54C18, 0x38CB2189, 0x69F9A326, 0x79F41E2D, 0xB58458BF} } } } ;
4741 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2205 a000");
4742 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2206 a001");
4743 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2207 a010");
4744 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2208 a011");
4745 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2209 a100");
4746 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2210 a101");
4747 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2211 a110");
4748 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2212 a111");
4749 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2213 a200");
4750 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2214 a201");
4751 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2215 a210");
4752 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2216 a211");
4755 static const fp12_t var_a = { { { {0xD6906E1F, 0x8D920BD9, 0xDF482503, 0xA80D1AC1, 0x2CFAB591, 0x5826C96C, 0x1A4A3A6C, 0x4A43E569},
4756 {0x51F9FD6B, 0x566F504C, 0x989DCA27, 0x9E9EC9A4, 0x78CC9D21, 0xC7FF3E59, 0x8191FB4A, 0xB2D9DB8E} } ,
4757 { {0x9F8FCEE4, 0x04283BE7, 0x1AD69733, 0xC683CC5C, 0x5CA6EA09, 0x5FB565BE, 0x02BC5565, 0x7E825331},
4758 {0xE8F2C4E0, 0x1B581A34, 0x1D55AA1E, 0x0D1DBF2C, 0xC459D5ED, 0xC29C8A28, 0x2AD47FA4, 0x0BB72EC4} } } ,
4759 { { {0x45371894, 0x408ECA74, 0xB6EA018F, 0xD19CD66E, 0x5ECA415A, 0x79737C1E, 0x388EF5FC, 0x3D406C21},
4760 {0x2D1AA7E3, 0xBC970CF9, 0x02F9350D, 0xC1EE000C, 0xBD478BCE, 0x5CD72C35, 0xE38E1552, 0xA562A4E7} } ,
4761 { {0xBBC19EB9, 0x016D00D1, 0x80FB19FA, 0x898DC8A8, 0x3A11B1C3, 0x4C4F35BE, 0x118EE977, 0x02D00824},
4762 {0xEE476684, 0x1BEE47FF, 0x0BF00105, 0x723EF3BA, 0x602C2356, 0x65A33083, 0x2176E25D, 0xA8BD4876} } } ,
4763 { { {0x6D71A76B, 0x463CC7BB, 0xDFA2511A, 0xC6BED1D9, 0x88F6CACC, 0xCA85A0FC, 0xA2A90850, 0x18AC76BD},
4764 {0x3822D063, 0x59D59046, 0x3EDCCD16, 0x1B572E4F, 0xEB16B64D, 0xEE8AF909, 0x9945E64B, 0x7E4576AE} } ,
4765 { {0x436B4DFB, 0x525EFEF3, 0xCCF0F613, 0x7B5DC79C, 0x828CFBA0, 0x2EB20C3D, 0xBF3F5199, 0x920F35FC},
4766 {0xF5C01674, 0xD6A3294D, 0x0B72EA05, 0xE0221B2D, 0x867CDA09, 0x4E5E38E5, 0x00F1AF64, 0x1590168B} } } } ;
4767 static const fp12_t var_expected = { { { {0x9C5E515D, 0x46404AC5, 0x59E00225, 0x5D8F63B1, 0xC06E9FA3, 0xA9C392EB, 0xAD348B4A, 0x822BC215},
4768 {0xDA131903, 0x2AAEECFE, 0xB68AD4B7, 0x58D83B22, 0x6657936B, 0xE1AFCD62, 0x60D86BB9, 0xB676BD28} } ,
4769 { {0xCFC7E772, 0x82141DF3, 0x0D6B4B99, 0xE341E62E, 0x2E537504, 0xAFDAB2DF, 0x815E2AB2, 0x3F412998},
4770 {0x74796270, 0x0DAC0D1A, 0x0EAAD50F, 0x868EDF96, 0x622CEAF6, 0x614E4514, 0x156A3FD2, 0x05DB9762} } } ,
4771 { { {0x229B8C4A, 0xA047653A, 0x5B7500C7, 0x68CE6B37, 0x2F6520AD, 0x3CB9BE0F, 0x9C477AFE, 0x1EA03610},
4772 {0x47A36E3F, 0x5DC2CB55, 0x6BB88A2A, 0xEA7FD656, 0x88950AC1, 0xAC1BC450, 0x11D678BD, 0xAFBB21D5} } ,
4773 { {0x8EF6E9AA, 0x802DC541, 0xAAB97CA0, 0x4E4FBAA4, 0xC6FA1DBC, 0x23D7C914, 0x28D6E2D0, 0x5E71D373},
4774 {0xF723B342, 0x8DF723FF, 0x05F80082, 0x391F79DD, 0xB01611AB, 0xB2D19841, 0x10BB712E, 0x545EA43B} } } ,
4775 { { {0x67CEEE03, 0xA295A8B6, 0x5A0D1830, 0xECE83F3D, 0xEE6CAA40, 0xE2F2FEB3, 0xF163F23C, 0x69600ABF},
4776 {0xCD27827F, 0xAC620CFB, 0x09AA562E, 0x17346D78, 0x9F7CA001, 0x74F5AABA, 0x6CB2613A, 0x9C2C8AB8} } ,
4777 { {0x52CBC14B, 0x28A6C452, 0xD0B46AAD, 0xC737BA1E, 0x6B37C2AA, 0x15093454, 0x7FAF16E1, 0xA6116A5F},
4778 {0xFAE00B3A, 0xEB5194A6, 0x85B97502, 0xF0110D96, 0xC33E6D04, 0x272F1C72, 0x8078D7B2, 0x0AC80B45} } } } ;
4780 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2217 a000");
4781 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2218 a001");
4782 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2219 a010");
4783 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2220 a011");
4784 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2221 a100");
4785 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2222 a101");
4786 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2223 a110");
4787 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2224 a111");
4788 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2225 a200");
4789 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2226 a201");
4790 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2227 a210");
4791 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2228 a211");
4794 static const fp12_t var_a = { { { {0x2C2DCF53, 0xA8E25725, 0x2D95578A, 0x0133A457, 0x42DF5451, 0xE85D0603, 0xFEED9FBC, 0x3BCFADAC},
4795 {0xD9567C9B, 0x3242C680, 0x7424D000, 0x7410DCE0, 0xEA787530, 0x0524B402, 0x4D90E939, 0x853EA1C5} } ,
4796 { {0x7A94CA0F, 0x0585F683, 0xA7ABAD28, 0x2B47BF60, 0x22A202A0, 0x9B7057B5, 0xF4FA055F, 0x48039E12},
4797 {0x2823C0CF, 0x5300D368, 0xED44B22C, 0x44E6B7A8, 0xC5DAD088, 0xFA07E283, 0xF258E576, 0x0FB42DED} } } ,
4798 { { {0x11E6D40D, 0x6D709247, 0x4A5CF60F, 0x85BB65BD, 0x6E292B52, 0x4B80383E, 0xB677EC63, 0x1CC82803},
4799 {0x78D1054E, 0x529C9387, 0xCB62B8C9, 0x945748A6, 0xA34072D1, 0x28109721, 0xA5BD2586, 0x03CEB090} } ,
4800 { {0x2947B8FA, 0x1F4660CF, 0x0D31FBDF, 0x746A0BCB, 0x557D9A93, 0x1781AA72, 0x985AD63D, 0x2600F2E5},
4801 {0x8E8860CD, 0x9768725D, 0x05191C8C, 0x527906C9, 0xB2BF2305, 0xF6221E9A, 0x5BD50007, 0x2237FB5B} } } ,
4802 { { {0x86E436BE, 0x9D315081, 0x5960AE27, 0x19680647, 0xF6E698A7, 0x7C352141, 0x70FF997B, 0x03B72736},
4803 {0x7E7F178B, 0xBF457F72, 0x6DDC2947, 0x436DB715, 0xFDD40061, 0xE0208ACD, 0x4A90757D, 0x3E389EB1} } ,
4804 { {0xB9B59AD2, 0xA93C9978, 0x2743A702, 0x1F599C13, 0x047A161A, 0x295EB374, 0x53CE2377, 0x758B23BF},
4805 {0xEF338EEB, 0xADBB1052, 0x4E462649, 0xE7EC2819, 0x87FCB4C5, 0xC64F6C78, 0x26420EAE, 0x52169197} } } } ;
4806 static const fp12_t var_expected = { { { {0x472D01F7, 0xD3E8706B, 0x01069B68, 0x0A22A87C, 0x4B60EF03, 0xF1DEB137, 0x9F863DF2, 0x7AF1A637},
4807 {0x1DC1589B, 0x9898A819, 0xA44E57A3, 0xC39144C0, 0x1F2D7F72, 0x00428837, 0xC6D7E2B1, 0x9FA92043} } ,
4808 { {0x6E607F55, 0x823A401A, 0xBE11C637, 0x9F2CB600, 0x3B42462A, 0x4B685A10, 0x9A8C70C4, 0x810B9E6A},
4809 {0xC527FAB5, 0xA8F7AE8C, 0xE0DE48B9, 0xABFC3224, 0x8CDEAD1E, 0xFAB41F77, 0x193BE0CF, 0x64E3E658} } } ,
4810 { { {0x3A098454, 0x362F8DFC, 0x0F6A6AAB, 0xCC66892F, 0xE105DA83, 0x23704A54, 0xFB4B6446, 0x6B6DE362},
4811 {0xBC6882A7, 0xA94E49C3, 0x65B15C64, 0xCA2BA453, 0xD1A03968, 0x14084B90, 0x52DE92C3, 0x01E75848} } ,
4812 { {0x94A3DC7D, 0x8FA33067, 0x8698FDEF, 0xBA3505E5, 0x2ABECD49, 0x8BC0D539, 0xCC2D6B1E, 0x13007972},
4813 {0x785A4AB4, 0xCB2B7E07, 0xECC87DE9, 0x32C559B4, 0x0350D65D, 0x78C13D83, 0xCDF9EE18, 0x6E25CD0E} } } ,
4814 { { {0xC3721B5F, 0xCE98A840, 0xACB05713, 0x8CB40323, 0xFB734C53, 0xBE1A90A0, 0x387FCCBD, 0x01DB939B},
4815 {0xF055A613, 0x5F1A0491, 0x212A0447, 0x2B3FB1DB, 0xA8DB450B, 0x6DC0739C, 0xC557A8D3, 0x7C261EB9} } ,
4816 { {0x5CDACD69, 0x549E4CBC, 0x93A1D381, 0x0FACCE09, 0x023D0B0D, 0x94AF59BA, 0xA9E711BB, 0x3AC591DF},
4817 {0x28AFE1C3, 0x5654CD02, 0x115F02C8, 0x7D7EEA5D, 0xEDEF9F3D, 0xE0D7E471, 0xB330756B, 0x8615182C} } } } ;
4819 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2229 a000");
4820 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2230 a001");
4821 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2231 a010");
4822 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2232 a011");
4823 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2233 a100");
4824 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2234 a101");
4825 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2235 a110");
4826 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2236 a111");
4827 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2237 a200");
4828 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2238 a201");
4829 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2239 a210");
4830 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2240 a211");
4833 static const fp12_t var_a = { { { {0xCB3E712C, 0x43C58FF5, 0x07D53D81, 0x4C965737, 0xC69702B0, 0x128A4B94, 0x15D0CF7D, 0x0AC90ECD},
4834 {0x5122A76B, 0x814451AD, 0x808AD977, 0x4A96C5E5, 0xE1307B26, 0xB58BA448, 0xE43ED2B6, 0x80850247} } ,
4835 { {0x906647FE, 0xAA275177, 0x1DD88DA7, 0xF22837FC, 0x16086EA4, 0x5A6657DF, 0xCCB94888, 0x7B6E7986},
4836 {0xF1B7E7D8, 0x9DB6108C, 0x497017CF, 0xA4269C18, 0x865462E1, 0xFC76007D, 0x79932923, 0x71D13CD6} } } ,
4837 { { {0xD094B772, 0x6278353C, 0xCF6C0548, 0x31A6E0A9, 0x14FC6294, 0x800EC6A5, 0x4D04D9BE, 0x62F8848E},
4838 {0x5C4FEFD3, 0xA142B50D, 0x2D1A7812, 0x6F1BB9CD, 0x35E39A76, 0x2EEAAE8F, 0x1B749DE7, 0x0F82482B} } ,
4839 { {0x18341F7C, 0x2AEA6B80, 0x171AC9F5, 0xB6730789, 0x73ABD61D, 0x31DC7588, 0xAC74227E, 0x81B600F7},
4840 {0x5E00CD4B, 0x6F838660, 0xF25525A0, 0x64421778, 0xEBC10FC5, 0x1A04FA65, 0x3D8C70B5, 0x83EBF3B4} } } ,
4841 { { {0xD7A8D90E, 0x0533E6D5, 0x5AC182E3, 0x59FD82D4, 0xCEBDDA1C, 0x5E974D62, 0xFFCF237B, 0x23F9B7CF},
4842 {0x047069BA, 0x278EDC61, 0x9CEC9BD1, 0x7C49D4D6, 0xE30ED3DE, 0xD339A522, 0x964EEBA4, 0x35BEDEB4} } ,
4843 { {0x572013B3, 0x349D5955, 0x67EFFBFC, 0x214584C9, 0xB019D3B3, 0x3C864D22, 0x5B2BBFAC, 0x16A15FB0},
4844 {0x3A73CFF4, 0x2B13AA37, 0x9D7A8108, 0xDC3CFD3F, 0x490ED45D, 0xAE069320, 0xDA268022, 0x1482EAA0} } } } ;
4845 static const fp12_t var_expected = { { { {0xE59F3896, 0xA1E2C7FA, 0x83EA9EC0, 0x264B2B9B, 0x634B8158, 0x894525CA, 0x8AE867BE, 0x05648766},
4846 {0x59A76E03, 0x40196DAF, 0x2A815C5F, 0xAED43943, 0x1A89826D, 0xD876005A, 0x122ED76F, 0x9D4C5085} } ,
4847 { {0xC83323FF, 0xD513A8BB, 0x0EEC46D3, 0x79141BFE, 0x8B043752, 0x2D332BEF, 0x665CA444, 0x3DB73CC3},
4848 {0x78DBF3EC, 0xCEDB0846, 0x24B80BE7, 0xD2134E0C, 0xC32A3170, 0xFE3B003E, 0x3CC99491, 0x38E89E6B} } } ,
4849 { { {0x684A5BB9, 0x313C1A9E, 0xE7B602A4, 0x18D37054, 0x8A7E314A, 0x40076352, 0x26826CDF, 0x317C4247},
4850 {0x5F3E1237, 0xD0189F5F, 0x00C92BAC, 0xC116B337, 0x44E31215, 0x1525857D, 0xADC9BD08, 0x64CAF376} } ,
4851 { {0x0C1A0FBE, 0x957535C0, 0x8B8D64FA, 0xDB3983C4, 0x39D5EB0E, 0x18EE3AC4, 0xD63A113F, 0x40DB007B},
4852 {0xE01680F3, 0xB7390808, 0xE3668273, 0x3BA9E20C, 0x9FD1CCBD, 0x0AB2AB68, 0x3ED5A66F, 0x9EFFC93B} } } ,
4853 { { {0xEBD46C87, 0x8299F36A, 0x2D60C171, 0x2CFEC16A, 0x675EED0E, 0xAF4BA6B1, 0xFFE791BD, 0x11FCDBE7},
4854 {0x823834DD, 0x93C76E30, 0x4E764DE8, 0x3E24EA6B, 0x718769EF, 0x699CD291, 0x4B2775D2, 0x1ADF6F5A} } ,
4855 { {0x5CA62427, 0x99C5F183, 0x1E33EDA1, 0x1A2B98B5, 0x01FE2EB4, 0x9BF354C7, 0x4DA54DEA, 0x685A7F39},
4856 {0x9D39E7FA, 0x1589D51B, 0xCEBD4084, 0xEE1E7E9F, 0x24876A2E, 0x57034990, 0x6D134011, 0x0A417550} } } } ;
4858 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2241 a000");
4859 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2242 a001");
4860 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2243 a010");
4861 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2244 a011");
4862 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2245 a100");
4863 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2246 a101");
4864 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2247 a110");
4865 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2248 a111");
4866 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2249 a200");
4867 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2250 a201");
4868 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2251 a210");
4869 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2252 a211");
4872 static const fp12_t var_a = { { { {0xAA3E3A7B, 0x34BD55C9, 0xA4838A40, 0x9ECDF1D6, 0x2F20B754, 0x2E5D91A7, 0x15D8C0AF, 0x501223A6},
4873 {0xB3C1C773, 0x1A1920F8, 0xF516ABFC, 0x3771A7BE, 0xD36AAA05, 0x2DDC3836, 0xFE60CC91, 0x398E6977} } ,
4874 { {0xD932E88B, 0xCB35AA55, 0xB651D913, 0x32756396, 0xAFA5832E, 0xF38E0C79, 0x417B3469, 0xAEFE62F9},
4875 {0x15006B5B, 0xD7B62F65, 0xEEF4FF5F, 0x0D5F382F, 0x83241200, 0x30724DE4, 0xB84A67E1, 0x9CC9FFD7} } } ,
4876 { { {0xB24284FA, 0xF713F781, 0xD71F9AC9, 0xC8BA67FF, 0x2099DA6A, 0x791CA2BA, 0x359620B2, 0x32BB6550},
4877 {0xD055EF83, 0x8379A29F, 0x6062C5AD, 0x6AE762EA, 0xEB4115C0, 0xC49652CE, 0xFCB1977A, 0x620AF585} } ,
4878 { {0xE2BC5D97, 0xFA388C42, 0xAB9F936C, 0x7AF36896, 0x5F68D389, 0xEEC4F65F, 0x453A90EB, 0x656D39BC},
4879 {0x305A6CDB, 0x7EC910B0, 0x90C0C6D9, 0x868953E0, 0x882FE679, 0x385E59C0, 0xBE9DD70B, 0x343E3901} } } ,
4880 { { {0x56F5986B, 0x5558E8B0, 0x193660A5, 0xA0EC64BE, 0x88B260E8, 0xC6759191, 0x0878F989, 0x0FAFD40F},
4881 {0x60E5BDD8, 0x6AFB67F0, 0x2FD4CF0D, 0xC7F27CCA, 0xC1914626, 0x243337D5, 0xF69D58B4, 0x3FFA88F3} } ,
4882 { {0x3B157BF9, 0xC90712FA, 0x444BC10F, 0xD27BBB01, 0xF9177FFE, 0xB05AC39E, 0x51AFFB6E, 0x3B1E1CD8},
4883 {0xF4924A58, 0x27177E2C, 0xABF49313, 0x0FD7582C, 0x3D98E280, 0x4E65D5CA, 0x9693ABFC, 0x245F0C78} } } } ;
4884 static const fp12_t var_expected = { { { {0x8635378B, 0x99D5EFBD, 0xBC7DB4C3, 0xD8EFCF3B, 0x4181A084, 0x14DEF709, 0x2AFBCE6C, 0x8512E134},
4885 {0x0AF6FE07, 0x8C83D555, 0xE4C745A1, 0x2541AA2F, 0x13A699DD, 0x149E4A51, 0x1F3FD45D, 0x79D1041D} } ,
4886 { {0x9DAF8E93, 0x65121A03, 0xC564DC2D, 0xA2C3881B, 0x81C40671, 0x77773472, 0xC0CD0849, 0xB48900DD},
4887 {0x3B964FFB, 0x6B525C8B, 0x61B66F53, 0x90387268, 0xEB834DDA, 0x15E95527, 0xFC34A205, 0xAB6ECF4C} } } ,
4888 { { {0xD921427D, 0xFB89FBC0, 0xEB8FCD64, 0x645D33FF, 0x104CED35, 0x3C8E515D, 0x1ACB1059, 0x195DB2A8},
4889 {0x9941120F, 0x41341628, 0x9A6D527A, 0xBEFC87C5, 0x1F91CFBA, 0xDFFB579D, 0x1E6839D1, 0x8E0F4A24} } ,
4890 { {0x22744919, 0xFC938AFA, 0xC00BB959, 0x47028A9B, 0x59A5AE9F, 0x7512A965, 0x42ACB68A, 0x8FC06C3F},
4891 {0xC94350BB, 0x3EDBCD30, 0xB29C5310, 0x4CCD8040, 0xEE093817, 0x19DF5B15, 0xFF5E599A, 0x7728EBE1} } } ,
4892 { { {0xDC90E683, 0x2A23B930, 0x76D71FF6, 0xD9FF08AF, 0x6E4A754E, 0x60EAF6FE, 0xA44BEAD9, 0x64E1B968},
4893 {0x3072DEEC, 0xB57DB3F8, 0x17EA6786, 0x63F93E65, 0xE0C8A313, 0x12199BEA, 0xFB4EAC5A, 0x1FFD4479} } ,
4894 { {0xCEA0D84A, 0x63FACE55, 0x0C61D02B, 0xF2C6B3D1, 0x267D04D9, 0xD5DD9005, 0x48E76BCB, 0x7A98DDCD},
4895 {0x7A49252C, 0x938BBF16, 0x55FA4989, 0x07EBAC16, 0x1ECC7140, 0x2732EAE5, 0x4B49D5FE, 0x122F863C} } } } ;
4897 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2253 a000");
4898 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2254 a001");
4899 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2255 a010");
4900 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2256 a011");
4901 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2257 a100");
4902 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2258 a101");
4903 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2259 a110");
4904 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2260 a111");
4905 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2261 a200");
4906 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2262 a201");
4907 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2263 a210");
4908 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2264 a211");
4911 static const fp12_t var_a = { { { {0xFFEA4967, 0x57CF54D5, 0x939A66CB, 0xEC0EC16B, 0x4F0AB8C6, 0x9EEDB379, 0x35DF516F, 0x31ED6BA0},
4912 {0xF5AE082D, 0xD546AA35, 0x0A05B7F6, 0x54266093, 0x3871B61E, 0xC75EDCA5, 0x546E655E, 0x483C7164} } ,
4913 { {0x4DBABF61, 0x40396264, 0xA982290D, 0x043C15AC, 0x679CF84B, 0xC006918E, 0x0BF6F879, 0x7A72A5AC},
4914 {0x8BE367B4, 0xD9ED77EF, 0x124B42DD, 0x968AF718, 0x34235B86, 0xEF497941, 0x6653D982, 0x289571BF} } } ,
4915 { { {0xB0DFDF28, 0x05F44CEB, 0x97DDDD6E, 0x6240115B, 0x0A7032E5, 0x8D8C859B, 0x2602ADEC, 0x25A521CF},
4916 {0xCDBA8C58, 0xCF1317EA, 0x9A72A8AB, 0x9CAC049D, 0x3D4323FB, 0x43EBC4A5, 0x002B10AC, 0x94F64239} } ,
4917 { {0x7F7E924B, 0x668823A3, 0x02A8CD32, 0xD7E50204, 0x90F18B92, 0xA76304CA, 0x1C1EC928, 0x690FE255},
4918 {0x6006BCB5, 0x9B61D1DA, 0xEA45C4A8, 0xE4C6A52F, 0x545E1869, 0xA36C1C20, 0xD739C246, 0x88E919E8} } } ,
4919 { { {0xFC94D4F8, 0x651DDAA2, 0xCEA29F2F, 0x0368162B, 0x9B50D054, 0x0DBFBECB, 0x42886643, 0x6099F300},
4920 {0xB496F244, 0x5E76D58B, 0xDC2DADD7, 0x7BFCFAE0, 0x0B844479, 0x1C8E283F, 0xE0C8894C, 0x26663B6F} } ,
4921 { {0x39887BC8, 0x43D45E28, 0x765113DA, 0x13AF7522, 0x5D27F94D, 0xECEF097A, 0x2C2BF6DB, 0x4FDEC2C6},
4922 {0x152D4E1D, 0x784C48F8, 0xB4257A12, 0x998E7237, 0xDEAA315F, 0xFED5C179, 0x11D90600, 0x18FC20D1} } } } ;
4923 static const fp12_t var_expected = { { { {0xB10B3F01, 0x2B5EEF43, 0x34092309, 0xFF903706, 0x5176A13D, 0x4D2707F2, 0x3AFF16CC, 0x76008531},
4924 {0xABED1E64, 0xEA1A99F3, 0xEF3ECB9E, 0xB39C0699, 0x462A1FE9, 0xE15F9C88, 0x4A46A0C3, 0x81280813} } ,
4925 { {0xD7F379FE, 0x1F93F60A, 0xBEFD042A, 0x0BA6E126, 0xDDBFC100, 0x5DB376FC, 0x260AEA51, 0x9A432237},
4926 {0xC5F1B3DA, 0xECF6BBF7, 0x0925A16E, 0x4B457B8C, 0x9A11ADC3, 0x77A4BCA0, 0xB329ECC1, 0x144AB8DF} } } ,
4927 { { {0xD86FEF94, 0x02FA2675, 0xCBEEEEB7, 0xB12008AD, 0x85381972, 0x46C642CD, 0x930156F6, 0x12D290E7},
4928 {0x66DD462C, 0xE7898BF5, 0xCD395455, 0xCE56024E, 0x9EA191FD, 0x21F5E252, 0x80158856, 0x4A7B211C} } ,
4929 { {0x70D56373, 0xB2BB56AA, 0x6B90563C, 0xF57B5752, 0xF26A0AA3, 0xD161B09A, 0xAE1ED2A8, 0x9191C08B},
4930 {0xE11978A8, 0xCD282DC5, 0x5F5ED1F7, 0x7BEC28E8, 0xD420510F, 0xCF663C45, 0x8BAC4F37, 0xA17E5C55} } } ,
4931 { { {0x7E4A6A7C, 0xB28EED51, 0xE7514F97, 0x01B40B15, 0xCDA8682A, 0x86DFDF65, 0x21443321, 0x304CF980},
4932 {0xDA4B7922, 0xAF3B6AC5, 0x6E16D6EB, 0xBDFE7D70, 0x85C2223C, 0x0E47141F, 0xF06444A6, 0x13331DB7} } ,
4933 { {0x1CC43DE4, 0x21EA2F14, 0x3B2889ED, 0x89D7BA91, 0x2E93FCA6, 0xF67784BD, 0x1615FB6D, 0x27EF6163},
4934 {0xBBACC15C, 0xBB9D6954, 0x444EACAC, 0x56500F6C, 0x99465D8A, 0xFD1B0EF2, 0xA8FBF114, 0x6987DFC9} } } } ;
4936 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2265 a000");
4937 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2266 a001");
4938 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2267 a010");
4939 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2268 a011");
4940 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2269 a100");
4941 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2270 a101");
4942 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2271 a110");
4943 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2272 a111");
4944 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2273 a200");
4945 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2274 a201");
4946 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2275 a210");
4947 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2276 a211");
4950 static const fp12_t var_a = { { { {0xBFEA5958, 0x82447447, 0x0B7A487A, 0x4C7869ED, 0x9CFC6D60, 0xBA3593EF, 0x30323D0F, 0x44460371},
4951 {0x1078C3CF, 0x8A387602, 0xF7833BA2, 0xB87E611F, 0x8A6278D5, 0xD900A3EA, 0x9D92DFDA, 0x46775B1A} } ,
4952 { {0xE4515EEF, 0xE11F61E6, 0x2F49EE91, 0x8051550B, 0xB4610EA5, 0x180E982B, 0xE214DDF3, 0x760C8F04},
4953 {0x11B77E70, 0x780AD3C0, 0x96D22902, 0x7E0C87AE, 0xB9C20EBA, 0x84B10736, 0xBB75BBFB, 0x205C3BA0} } } ,
4954 { { {0xEB7313C1, 0x61F67322, 0xC9E9EF37, 0x4F74A71E, 0x45EBF199, 0x07856C11, 0x99AE4C5D, 0x000ADA93},
4955 {0x4B6897D4, 0x5CC81FA7, 0x1576FF29, 0x1DA0E258, 0xA3A1A653, 0x036113AC, 0xDF462130, 0x3CDA37F0} } ,
4956 { {0xE6A9B370, 0x45929D18, 0x538D0A26, 0xE60A129F, 0x7FD8418E, 0xB20471AE, 0xE8C63719, 0x250B5603},
4957 {0xE55CBAB5, 0x9E685011, 0x394F3DF4, 0x95A5A941, 0xC996CBF8, 0xB4AE81B5, 0x3F261455, 0x169707C2} } } ,
4958 { { {0xC1E6D0A8, 0x0D6269CA, 0xB25FBFCC, 0x9C6564BB, 0x817752B6, 0x8C85B329, 0x65C52CC6, 0xAEFC088D},
4959 {0xCD440FA1, 0xDC373094, 0x5CB9C4F5, 0x71D106B9, 0x3C989AC7, 0x22301E8C, 0x4E18ABF9, 0x50032B11} } ,
4960 { {0xAAB2C3CF, 0x7A768F25, 0x0B50F682, 0x0D9D36BD, 0xA6D74B49, 0x43FEE47C, 0xE420A792, 0xA48F61A3},
4961 {0xD0A01466, 0xF83DC671, 0x44835CFB, 0x6B56F947, 0xFA6339B9, 0x20A185DF, 0x83B96742, 0x1488288B} } } } ;
4962 static const fp12_t var_expected = { { { {0xDFF52CAC, 0x41223A23, 0x85BD243D, 0x263C34F6, 0xCE7E36B0, 0xDD1AC9F7, 0x98191E87, 0x222301B8},
4963 {0xB9527C35, 0xC4937FD9, 0x65FD8D74, 0x65C806E0, 0xEF228145, 0xEA30802A, 0x6ED8DE01, 0x80457CEE} } ,
4964 { {0x233EC9C5, 0x7006F5CC, 0x01E0E6EC, 0x49B180D6, 0x8421CC2D, 0x09B77A4B, 0x9119DD0E, 0x981016E3},
4965 {0x08DBBF38, 0x3C0569E0, 0x4B691481, 0x3F0643D7, 0x5CE1075D, 0xC258839B, 0x5DBADDFD, 0x102E1DD0} } } ,
4966 { { {0x26CFA42E, 0x30727E6A, 0xCF30E73F, 0x314329DF, 0x4CE73DA7, 0x0172E43E, 0xECE69443, 0x5D0F3CAA},
4967 {0xA5B44BEA, 0xAE640FD3, 0x0ABB7F94, 0x8ED0712C, 0x51D0D329, 0x01B089D6, 0x6FA31098, 0x1E6D1BF8} } ,
4968 { {0x7354D9B8, 0x22C94E8C, 0xA9C68513, 0x7305094F, 0x3FEC20C7, 0xD90238D7, 0xF4631B8C, 0x1285AB01},
4969 {0xA3C477A8, 0xCEAB6CE1, 0x06E38E9D, 0xD45BAAF1, 0x8EBCAAD6, 0x58076F10, 0x3FA2783F, 0x68555342} } } ,
4970 { { {0x60F36854, 0x06B134E5, 0xD92FDFE6, 0x4E32B25D, 0xC0BBA95B, 0x4642D994, 0xB2E29663, 0x577E0446},
4971 {0x17B8221E, 0x6D92DD23, 0x1898D21E, 0x427159AD, 0xC83D923E, 0x0EC83D7B, 0xC71BC411, 0x850B64E9} } ,
4972 { {0x866F7C35, 0xBCB28C6B, 0xEFE46AE4, 0x105771AE, 0xFD5CEA7F, 0x9FAFA073, 0x121FC1DD, 0xAF518033},
4973 {0xE8500A33, 0xFC1EE338, 0xA241AE7D, 0xB5AB7CA3, 0xFD319CDC, 0x1050C2EF, 0xC1DCB3A1, 0x0A441445} } } } ;
4975 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2277 a000");
4976 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2278 a001");
4977 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2279 a010");
4978 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2280 a011");
4979 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2281 a100");
4980 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2282 a101");
4981 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2283 a110");
4982 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2284 a111");
4983 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2285 a200");
4984 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2286 a201");
4985 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2287 a210");
4986 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2288 a211");
4989 static const fp12_t var_a = { { { {0x0CFB7A27, 0x8C9261ED, 0xC3603566, 0x0F22AC09, 0x8C999C6E, 0xCB731598, 0x7BAF71FB, 0x50C9F0C9},
4990 {0x9A929A52, 0x124F55BC, 0x213E80DB, 0x6975D971, 0xEC4ED39D, 0xC1F3538E, 0x528E9313, 0x1116E890} } ,
4991 { {0x95E2DFC0, 0x863B9C19, 0x7EF74BF7, 0xBD4DFA17, 0x0FBFC0AD, 0x5309942C, 0x7FF63C27, 0x3B93A74F},
4992 {0x9E8AD5A8, 0x8BC1F02F, 0xB5E98701, 0xDD6782FD, 0x89801B97, 0x4C40BF64, 0x70EF9C97, 0x1C1D2E0D} } } ,
4993 { { {0x3291CD4F, 0xE7C89BCB, 0x232D7278, 0x6FF1B256, 0x4E7B5C1D, 0x4D10F32F, 0x857A6994, 0x2E4B9853},
4994 {0xE0304241, 0x05445671, 0x3414BD86, 0xF429EFC5, 0x4109051E, 0x61B5202F, 0x1202661C, 0x393929C7} } ,
4995 { {0x11049D2C, 0x7174F53A, 0xD61DDC51, 0xBEE6D238, 0xA502ABCE, 0x69183068, 0x610F060E, 0x32533CBD},
4996 {0xB6C9E9BB, 0x5FDFAD5A, 0xB4392A5F, 0xB214AFA4, 0x5DF54F5D, 0xC1476951, 0xAEDCA290, 0x77F42BC5} } } ,
4997 { { {0x9DDD4410, 0x256A743A, 0xFC38C101, 0x839F94E3, 0xB05A4132, 0x99FFFF91, 0x2928021D, 0x90A13D11},
4998 {0x06769D7A, 0xBD14042C, 0xBD091F3E, 0xD868560C, 0x22DAC195, 0x892285F5, 0x38022086, 0x112AC658} } ,
4999 { {0x2308D8BD, 0x45E9F085, 0x6519F815, 0xC5A35995, 0xF9479BBE, 0x12A1E386, 0xF208B841, 0x173D2588},
5000 {0x80E191C4, 0x7D27AA99, 0x68DE6018, 0xB19BC63C, 0x5F5F33ED, 0x06D7AA52, 0xE50918BE, 0x6B700A9B} } } } ;
5001 static const fp12_t var_expected = { { { {0x3793D761, 0xC5C075CF, 0x4BEC0A56, 0x911A2C55, 0xF03E1311, 0x6369B901, 0xDDE72712, 0x856EC7C5},
5002 {0x4D494D29, 0x8927AADE, 0x909F406D, 0xB4BAECB8, 0x762769CE, 0xE0F9A9C7, 0x29474989, 0x088B7448} } ,
5003 { {0xCAF16FE0, 0xC31DCE0C, 0xBF7BA5FB, 0xDEA6FD0B, 0x07DFE056, 0xA984CA16, 0xBFFB1E13, 0x1DC9D3A7},
5004 {0xCF456AD4, 0xC5E0F817, 0xDAF4C380, 0xEEB3C17E, 0x44C00DCB, 0xA6205FB2, 0xB877CE4B, 0x0E0E9706} } } ,
5005 { { {0x4A5F00F5, 0xF35B92BE, 0x7BD2A8DF, 0x4181AF7B, 0x512EF2E9, 0xA438A7CD, 0xE2CCA2DE, 0x742F9B8A},
5006 {0xA12E3B6E, 0x82197011, 0x04464E66, 0x039DCE33, 0x4A75C76A, 0xAE8ABE4D, 0xA910A122, 0x79A66444} } ,
5007 { {0x08824E96, 0xB8BA7A9D, 0x6B0EEE28, 0x5F73691C, 0x528155E7, 0x348C1834, 0xB0878307, 0x19299E5E},
5008 {0x0C7B0F2B, 0x2F671B86, 0xC45884D3, 0x62932E22, 0x58EBEC89, 0xDE53E2DE, 0xF77DBF5C, 0x9903E543} } } ,
5009 { { {0x4EEEA208, 0x92B53A1D, 0xFE1C6080, 0x41CFCA71, 0xD82D2099, 0xCCFFFFC8, 0x9494010E, 0x48509E88},
5010 {0x033B4EBD, 0x5E8A0216, 0x5E848F9F, 0xEC342B06, 0x916D60CA, 0x449142FA, 0x1C011043, 0x0895632C} } ,
5011 { {0x429A86AC, 0x226C3D1B, 0x1CC8EBAE, 0xEC5A831B, 0x269512B9, 0x07011FF9, 0x9913CA35, 0x68A86225},
5012 {0xC070C8E2, 0x3E93D54C, 0x346F300C, 0xD8CDE31E, 0x2FAF99F6, 0x036BD529, 0xF2848C5F, 0x35B8054D} } } } ;
5014 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2289 a000");
5015 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2290 a001");
5016 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2291 a010");
5017 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2292 a011");
5018 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2293 a100");
5019 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2294 a101");
5020 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2295 a110");
5021 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2296 a111");
5022 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2297 a200");
5023 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2298 a201");
5024 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2299 a210");
5025 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2300 a211");
5028 static const fp12_t var_a = { { { {0x523CA342, 0x51113D1C, 0x9FB463DD, 0x026AB982, 0x45A6AD50, 0x3D6A27F8, 0xD08FF79F, 0x041BA966},
5029 {0xB139CC49, 0x4387DBB5, 0x3BB55648, 0xB891E9D4, 0xD1A3D3A0, 0xCA8C989A, 0xEA527BE0, 0x6E46E6FA} } ,
5030 { {0x59E9F9B1, 0x07429C65, 0xD053F935, 0xD38C3E99, 0xF0D1F3E3, 0xC980DC30, 0x99ED87D6, 0x6051E686},
5031 {0x6529DC49, 0xEDCD828D, 0xFBF66550, 0xA43FBFE8, 0x75EF7A65, 0xA5719938, 0xBC731476, 0x42B7385F} } } ,
5032 { { {0xE00EB043, 0x6C35505A, 0xB4E397DC, 0xEC5A496A, 0xF16D823E, 0xB1DCA04E, 0xE2F52973, 0x019D3AC3},
5033 {0xAAA8754C, 0x9ECF5857, 0xABC76370, 0x6F3A02D0, 0x89834755, 0xA7C9D323, 0x118A84DC, 0x50EA4D93} } ,
5034 { {0xF6E51DC5, 0xC1B03BAD, 0xC39BB003, 0x78C117F7, 0x77A91F8E, 0x23337CC2, 0x40061B78, 0x285EBD48},
5035 {0xCCCC1E74, 0xB7AAE7E8, 0x9356FAB9, 0x52471027, 0x896A0EBE, 0x23FF3AA1, 0xDC8AF371, 0x42B35E09} } } ,
5036 { { {0x8800E8D7, 0x85DD0F51, 0xE46E8855, 0xD0937B8D, 0xA181D653, 0x8D878C4B, 0x47DD0E6C, 0x9FD4A4AA},
5037 {0x5998F117, 0xD7D771B2, 0x362E0249, 0xC6EB161B, 0x3348A0AD, 0xA9B225A6, 0x5492744D, 0x0122147C} } ,
5038 { {0xC3455FCF, 0x7B478F75, 0x3AD34A87, 0x8D2DB6B7, 0xCA748FFA, 0xA39BAB9B, 0xCD08AA25, 0x6FC44AFD},
5039 {0x1DCB7191, 0xE139BDC2, 0x5984CF84, 0x83FD835A, 0x8329E258, 0x0BCB874C, 0xED331E19, 0xB5120F38} } } } ;
5040 static const fp12_t var_expected = { { { {0x291E51A1, 0xA8889E8E, 0x4FDA31EE, 0x01355CC1, 0x22D356A8, 0x9EB513FC, 0x6847FBCF, 0x020DD4B3},
5041 {0x89B30072, 0xA13B32B3, 0x88169AC7, 0xE5D1CB3A, 0x12C32EAA, 0xE2F67A83, 0x9538AC04, 0x942D42DE} } ,
5042 { {0x5E0B1726, 0x0318930B, 0x5265EC3E, 0x734EF59D, 0x225A3ECC, 0xE2709C4E, 0x6D0631FF, 0x8D32C2A4},
5043 {0x63AB0872, 0xF65E061F, 0xE837224B, 0x5BA8B644, 0xE4E9020D, 0xD068FAD1, 0xFE48F84F, 0x7E656B90} } } ,
5044 { { {0x211D726F, 0xB591ED06, 0xC4ADBB91, 0xFFB5FB05, 0x22A805F9, 0x569E7E5D, 0x118A02CE, 0x5DD86CC3},
5045 {0xD5543AA6, 0x4F67AC2B, 0x55E3B1B8, 0xB79D0168, 0xC4C1A3AA, 0x53E4E991, 0x88C5426E, 0x287526C9} } ,
5046 { {0xAC88A930, 0x604F62AF, 0x4C09C7A5, 0xC5E9624C, 0xE5C5D4A1, 0x8F49EC96, 0x40127BD0, 0x71392E05},
5047 {0x66660F3A, 0xDBD573F4, 0xC9AB7D5C, 0x29238813, 0xC4B5075F, 0x91FF9D50, 0xEE4579B8, 0x2159AF04} } } ,
5048 { { {0x75168EB9, 0x4265CC81, 0x5C7333CE, 0x71D29417, 0x7AB23004, 0xC473F45B, 0x43FDF54A, 0xACF421B6},
5049 {0xDDE292D9, 0x6B62FDB1, 0x0552F0C8, 0x6CFE615E, 0xC3959531, 0x52894108, 0x4A58A83B, 0x5D9AD99F} } ,
5050 { {0x92B8CA35, 0x3D1B0C93, 0x07A594E7, 0xD01FB1AC, 0x8F2B8CD7, 0x4F7E0403, 0x0693C327, 0x94EBF4E0},
5051 {0xBFFBD316, 0xF01423B9, 0x96FE5765, 0xCB8797FD, 0xEB863606, 0x0395F1DB, 0x96A8FD21, 0xB792D6FD} } } } ;
5053 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2301 a000");
5054 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2302 a001");
5055 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2303 a010");
5056 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2304 a011");
5057 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2305 a100");
5058 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2306 a101");
5059 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2307 a110");
5060 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2308 a111");
5061 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2309 a200");
5062 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2310 a201");
5063 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2311 a210");
5064 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2312 a211");
5067 static const fp12_t var_a = { { { {0xB2960B7A, 0xA3FE20C1, 0x579AD211, 0x75F0BF53, 0x3C6FE9E5, 0x599F7E47, 0xA6167869, 0x26F17791},
5068 {0xC48641D0, 0xF73F38E1, 0x2D129448, 0x70210DA1, 0x62723105, 0x5D25739E, 0x1DABFAB9, 0x0DA9D454} } ,
5069 { {0x2877097E, 0x3C4D033B, 0x5D981D0C, 0xDC2E5690, 0xCF0BA29A, 0xD220D42D, 0xE9803E16, 0x7E15E886},
5070 {0x5FCAF3C4, 0x77ACB4F0, 0xA1441200, 0xEC9E5C83, 0xF5374752, 0xE724102D, 0x57A8F8CF, 0x2733DAAF} } } ,
5071 { { {0xEC2BDE99, 0xCA7BCD61, 0xB3452B5C, 0xDF06C79A, 0xA6823D6E, 0x8D5CBC98, 0x69C59D3A, 0x10A40EBD},
5072 {0x1846E031, 0x0315A359, 0x62B88A3D, 0x5D8E4013, 0xA6BC9C1F, 0x40838F60, 0x91E5F6FD, 0x323E5ED9} } ,
5073 { {0x8E3C074F, 0x0D2D1C38, 0x53BDB033, 0x2BA7DE2D, 0x705AC8E9, 0x370DFD16, 0x3CEE189F, 0x9E26B943},
5074 {0x1FFA4D98, 0x7C931FBE, 0x0EEB3169, 0x8EB4870D, 0xC5BA7607, 0x3340CCAB, 0x8212F9E8, 0x10891BA5} } } ,
5075 { { {0x796A004B, 0x05C88C7F, 0xA2B537AD, 0x9A849283, 0xCBC7D8ED, 0xC19B3FF1, 0x76456B63, 0x7266F2BB},
5076 {0xBC2DADA5, 0x04307FF7, 0xFF29EE01, 0x53C76EC4, 0xE8B47FFD, 0xDBD1E6A8, 0x5C887769, 0xB736C970} } ,
5077 { {0x5CAC1C17, 0xF57558A8, 0x4648E81E, 0x44FC7290, 0x94601F64, 0x5B8F8DDA, 0x6DC43A7E, 0x15111EB4},
5078 {0x9F4D1A49, 0xFB89AE03, 0x4EB68F81, 0xF85EAD05, 0xDF22096F, 0x847482BB, 0x5655D85D, 0x89D0746E} } } } ;
5079 static const fp12_t var_expected = { { { {0xD94B05BD, 0xD1FF1060, 0xABCD6908, 0xBAF85FA9, 0x9E37F4F2, 0xACCFBF23, 0xD30B3C34, 0x1378BBC8},
5080 {0xE24320E8, 0x7B9F9C70, 0x96894A24, 0xB81086D0, 0x31391882, 0xAE92B9CF, 0x0ED5FD5C, 0x06D4EA2A} } ,
5081 { {0x943B84BF, 0x1E26819D, 0x2ECC0E86, 0x6E172B48, 0xE785D14D, 0x69106A16, 0x74C01F0B, 0x3F0AF443},
5082 {0x2FE579E2, 0x3BD65A78, 0xD0A20900, 0x764F2E41, 0xFA9BA3A9, 0xF3920816, 0xABD47C67, 0x1399ED57} } } ,
5083 { { {0xA72C099A, 0xE4B52B89, 0xC3DE8551, 0xF90C3A1D, 0xFD326391, 0xC45E8C81, 0xD4F23CB1, 0x655BD6BF},
5084 {0x3D398A66, 0x01021685, 0x1B9834C2, 0x384FF65A, 0xFD4F92EA, 0x1DF1F5E5, 0xE9026993, 0x7628FECD} } ,
5085 { {0xF8341DF5, 0x060DD2F4, 0x141AC7BD, 0x1F5CC567, 0xE21EA94F, 0x19372CC0, 0xBE867A64, 0xAC1D2C02},
5086 {0x0FFD26CC, 0xBE498FDF, 0x877598B4, 0xC75A4386, 0xE2DD3B03, 0x19A06655, 0xC1097CF4, 0x08448DD2} } } ,
5087 { { {0x6DCB1A73, 0x025B8B18, 0x3B968B7A, 0x56CB1F92, 0x8FD53151, 0x5E7DCE2E, 0xDB3223C6, 0x963D48BE},
5088 {0x8F2CF120, 0x018F84D4, 0xE9D0E6A4, 0x336C8DB2, 0x1E4B84D9, 0x6B99218A, 0x4E53A9C9, 0xB8A53419} } ,
5089 { {0xDF6C2859, 0xFA31F12C, 0x8D6063B2, 0xAC070F98, 0xF421548C, 0xAB77F522, 0x56F18B53, 0x67925EBB},
5090 {0x80BCA772, 0x7D3C1BDA, 0x11973764, 0x85B82CD3, 0x99824992, 0x3FEA6F93, 0x4B3A5A43, 0xA1F20998} } } } ;
5092 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2313 a000");
5093 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2314 a001");
5094 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2315 a010");
5095 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2316 a011");
5096 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2317 a100");
5097 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2318 a101");
5098 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2319 a110");
5099 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2320 a111");
5100 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2321 a200");
5101 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2322 a201");
5102 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2323 a210");
5103 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2324 a211");
5106 static const fp12_t var_a = { { { {0x22FEBDDD, 0x5D32C9B4, 0x2242E837, 0x82E3351D, 0xE8EBC1CB, 0x779D94FD, 0xB66322B6, 0x5148FA1C},
5107 {0x5506F070, 0x032C119A, 0x803451CE, 0xF64213BD, 0x67B2CD00, 0xBFBA09B0, 0xA30F0319, 0x7088A976} } ,
5108 { {0xFA30212D, 0xFDDA1224, 0x5C732E74, 0xED170598, 0x24320AD2, 0xC6B90E23, 0x266BF031, 0x2D322542},
5109 {0xAA417167, 0xFC8AF642, 0x5B74A33E, 0x050BC52C, 0x7DFA3295, 0x5DFD640C, 0xBA44F566, 0x94DCB698} } } ,
5110 { { {0xEE8F88A9, 0xD85106D3, 0x8587EA24, 0x4BFDE475, 0x90E9DEFF, 0x3CC5F217, 0x91A23CAC, 0x3974876D},
5111 {0xABF6525E, 0x0816698F, 0xE3C00EAC, 0x20AF1089, 0x5F4BD6BD, 0x706BF83F, 0x4FC92E07, 0x5E275CE1} } ,
5112 { {0xD18839BA, 0x2D336495, 0xBEAC9DC2, 0xF067E741, 0x07F7CB68, 0xFF82ED0C, 0x0D3E5BDD, 0x2D2BFDA9},
5113 {0xA7F95930, 0x8746E122, 0x5E300841, 0x7E178672, 0x897EEDE9, 0x471A460F, 0x5709D2DA, 0x792F7863} } } ,
5114 { { {0x69CAF082, 0x7E997E03, 0x6F358FBD, 0xF9770D25, 0xA85C4AC9, 0x8CDEA346, 0x6EF59D76, 0xA2AB302C},
5115 {0xC69FD76B, 0x1CC2531D, 0x7C7CDB5F, 0x859AA6C6, 0x65E3F179, 0x79B4D801, 0xC7399BF2, 0x11A41D48} } ,
5116 { {0x47C611AF, 0x8C790546, 0x93962AC2, 0x14DE5E17, 0x25EB2140, 0x8FC53CFA, 0xCB8CFB39, 0x5CE16683},
5117 {0xFE6C79CA, 0xA3105948, 0x7FA9C577, 0x29E7E684, 0xEA7F5AC5, 0xCA6EF62B, 0xD53FBA2F, 0x800F6608} } } } ;
5118 static const fp12_t var_expected = { { { {0xC295793C, 0x2E10A9B2, 0xFB5D63BF, 0x4AFA70DE, 0x9E6725C0, 0xB97EF8B4, 0x7B40FF6F, 0x85AE4C6F},
5119 {0x2A837838, 0x019608CD, 0xC01A28E7, 0x7B2109DE, 0x33D96680, 0xDFDD04D8, 0x5187818C, 0x384454BB} } ,
5120 { {0x2E2E2AE4, 0xFE644DEB, 0x987586DD, 0x0014591C, 0x3C0A4A44, 0x610CB547, 0x3345662D, 0x73A2E202},
5121 {0x0636D301, 0xFDBCBFFA, 0x97F64142, 0x0C0EB8E6, 0xE8EE5E25, 0xACAEE03B, 0x7D31E8C7, 0xA7782AAD} } } ,
5122 { { {0xA85DDEA2, 0xEB9FC842, 0x2CFFE4B5, 0x2F87C88B, 0x7266345A, 0x9C132741, 0xE8E08C6A, 0x79C41317},
5123 {0xD5FB292F, 0x040B34C7, 0xF1E00756, 0x90578844, 0xAFA5EB5E, 0xB835FC1F, 0xA7E49703, 0x2F13AE70} } ,
5124 { {0xE8C41CDD, 0x1699B24A, 0xDF564EE1, 0x7833F3A0, 0x03FBE5B4, 0xFFC17686, 0x869F2DEE, 0x1695FED4},
5125 {0x53FCAC98, 0xC3A37091, 0x2F180420, 0xBF0BC339, 0xC4BF76F4, 0x238D2307, 0xAB84E96D, 0x3C97BC31} } } ,
5126 { { {0xB4E57841, 0xBF4CBF01, 0xB79AC7DE, 0xFCBB8692, 0x542E2564, 0x466F51A3, 0x377ACEBB, 0x51559816},
5127 {0x94660603, 0x0DD86E67, 0xA87A5D53, 0x4C5629B3, 0x5CE33D97, 0xBA8A9A36, 0x83AC3C0D, 0x65DBDE05} } ,
5128 { {0xD4F92325, 0xC5B3C77B, 0x34070504, 0x93F8055C, 0xBCE6D57A, 0x4592CCB2, 0x05D5EBB1, 0x8B7A82A3},
5129 {0x7F363CE5, 0xD1882CA4, 0x3FD4E2BB, 0x94F3F342, 0xF53FAD62, 0xE5377B15, 0x6A9FDD17, 0x4007B304} } } } ;
5131 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2325 a000");
5132 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2326 a001");
5133 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2327 a010");
5134 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2328 a011");
5135 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2329 a100");
5136 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2330 a101");
5137 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2331 a110");
5138 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2332 a111");
5139 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2333 a200");
5140 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2334 a201");
5141 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2335 a210");
5142 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2336 a211");
5145 static const fp12_t var_a = { { { {0xD7A74C63, 0x580C2218, 0x8E60B945, 0x1911B03B, 0x1BA10AB1, 0xFA52B45C, 0x378805CD, 0xA5777D02},
5146 {0xD1FBDB02, 0x4471A971, 0x1B300BD5, 0x15CF2392, 0x091C8BEB, 0x5BEE40E0, 0x35B38FC9, 0x448E580B} } ,
5147 { {0xC74F17DE, 0x22CD3186, 0x0507CEF0, 0x21F0344D, 0x665EDD9C, 0xFD3F776F, 0x089B3A16, 0x047E276C},
5148 {0xB53B5812, 0x5AF2E085, 0x11DADB31, 0xBCCF41EF, 0x358114F6, 0x71A1EB49, 0x9CD9B058, 0x3773573F} } } ,
5149 { { {0x02248595, 0x6D895BA8, 0xDC3043FC, 0x85522BB3, 0x25B48EBC, 0x0AF4C6B2, 0xD2F7B0BB, 0x43F80E00},
5150 {0x3580002F, 0x8830488E, 0xE8682207, 0x97F2D6BA, 0x3064CCA1, 0x9D0FF6AF, 0x3FC3EDE9, 0x3F12B7D4} } ,
5151 { {0xB6DFB2BA, 0xF970886C, 0x3A08AF0C, 0xDE974914, 0xB3B47D90, 0xD2944179, 0x6BA0F4E0, 0x6C6E7A53},
5152 {0x5B87E14E, 0xB154686D, 0xBA530556, 0x396F884E, 0x4D22BA85, 0xB9400B80, 0x13B98644, 0x14641A93} } } ,
5153 { { {0xEE379214, 0xC737375E, 0xAF126ACA, 0xF3274541, 0x5AE08CEB, 0x49B63202, 0xA8963D30, 0x0C68D81C},
5154 {0x32F101C2, 0xF4E02188, 0x8E00D7B4, 0x9A7EB40B, 0xCA166572, 0xD556075A, 0xCE0AA8F1, 0x1DE4BFB6} } ,
5155 { {0x1C584DA2, 0x17DE647D, 0x87606DA4, 0x024178FA, 0x9F8340B8, 0x99E9CFB0, 0x5EA92699, 0x224FE4A4},
5156 {0x3141D392, 0xB2AA0934, 0x24877070, 0x2D0153EC, 0x1E49654F, 0x35F91AB2, 0x24790B25, 0x3139EF0F} } } } ;
5157 static const fp12_t var_expected = { { { {0x1CE9C07F, 0x2B7D55E5, 0x316C4C46, 0x1611AE6E, 0xB7C1CA33, 0x7AD98863, 0x3BD370FB, 0xAFC58DE2},
5158 {0xE8FDED81, 0xA238D4B8, 0x0D9805EA, 0x8AE791C9, 0x048E45F5, 0xADF72070, 0x9AD9C7E4, 0x22472C05} } ,
5159 { {0x63A78BEF, 0x116698C3, 0x8283E778, 0x10F81A26, 0xB32F6ECE, 0x7E9FBBB7, 0x044D9D0B, 0x023F13B6},
5160 {0xDA9DAC09, 0xAD797042, 0x88ED6D98, 0x5E67A0F7, 0x9AC08A7B, 0x38D0F5A4, 0xCE6CD82C, 0x1BB9AB9F} } } ,
5161 { { {0xB2285D18, 0xB63BF2AC, 0x585411A1, 0xCC31EC2A, 0xBCCB8C38, 0x032A918E, 0x898B4672, 0x7F05D661},
5162 {0xCBD61A65, 0x438F691F, 0xDE7000A7, 0x558241AD, 0x4223AB2B, 0x4C38298D, 0x3FF16509, 0x7C932B4B} } ,
5163 { {0x5B6FD95D, 0x7CB84436, 0x1D045786, 0x6F4BA48A, 0xD9DA3EC8, 0x694A20BC, 0xB5D07A70, 0x36373D29},
5164 {0xADC3F0A7, 0x58AA3436, 0x5D2982AB, 0x9CB7C427, 0x26915D42, 0x5CA005C0, 0x89DCC322, 0x0A320D49} } } ,
5165 { { {0x771BC90A, 0x639B9BAF, 0xD7893565, 0xF993A2A0, 0x2D704675, 0x24DB1901, 0x544B1E98, 0x06346C0E},
5166 {0x197880E1, 0x7A7010C4, 0xC7006BDA, 0x4D3F5A05, 0x650B32B9, 0xEAAB03AD, 0x67055478, 0x0EF25FDB} } ,
5167 { {0x8E2C26D1, 0x0BEF323E, 0x43B036D2, 0x0120BC7D, 0x4FC1A05C, 0xCCF4E7D8, 0x2F54934C, 0x1127F252},
5168 {0x18A0E9C9, 0x5955049A, 0x1243B838, 0x9680A9F6, 0x0F24B2A7, 0x9AFC8D59, 0x923C8592, 0x189CF787} } } } ;
5170 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 2337 a000");
5171 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 2338 a001");
5172 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 2339 a010");
5173 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 2340 a011");
5174 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 2341 a100");
5175 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 2342 a101");
5176 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 2343 a110");
5177 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 2344 a111");
5178 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 2345 a200");
5179 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 2346 a201");
5180 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 2347 a210");
5181 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 2348 a211");
5184 static const fp12_t var_a = { { { {0xE009F7D3, 0x5829AB6E, 0x94709DF8, 0x17E86E73, 0x6C5245C8, 0xA4FCD42B, 0x87EB2DF2, 0x477C7B69},
5185 {0x0C95774C, 0xF31EE624, 0x44838DCC, 0xAA557FE4, 0x87A171FC, 0x34E89F11, 0x9C38F311, 0x8BE07CD8} } ,
5186 { {0xE9DF09E0, 0xB7CE228E, 0x8D91DA0C, 0xD03725DF, 0x73816638, 0x6BADCC84, 0x5ADA417F, 0x069B925D},
5187 {0xA95B336A, 0xCBF90177, 0x49F1D37D, 0x919C4CEB, 0x2D35C99A, 0x5DAC350D, 0x6C78642F, 0x9E354BA7} } } ,
5188 { { {0xAA77537C, 0x4D81EFA3, 0xC3E19FBD, 0x74C551FF, 0x3D9288C8, 0xF13E966F, 0xF77ED469, 0x2937844C},
5189 {0xFEB352C5, 0x3ADB92D3, 0xB196B091, 0xA31132DE, 0x91BCF294, 0x9E8CB32C, 0xEE1E14BF, 0x027412A0} } ,
5190 { {0x5C0AC76F, 0x6B39A6ED, 0x63C0D247, 0x5083E070, 0x941E63C4, 0x17C1CE58, 0x79DC0F82, 0x3D9B6641},
5191 {0x66084D9E, 0x815AC291, 0xEB1B96B8, 0x2B93773D, 0x7F4DEBC0, 0x7252C7B6, 0x2F8927C4, 0x25A83093} } } ,
5192 { { {0x639D6F30, 0x34D172BF, 0xA17EC291, 0xF3F61333, 0x018FF764, 0x6435F8D8, 0x8842F9BE, 0x8F87AD6A},
5193 {0x58A13DFE, 0xD85E378E, 0xE2ECA518, 0x426AB35E, 0xBC331470, 0xB367EB13, 0x52979AC8, 0xA235B64A} } ,
5194 { {0xAC4FB1C3, 0x80863755, 0x99A0C811, 0x99E6F841, 0x931E1E35, 0x6F9514CB, 0x262BE3ED, 0x41007466},
5195 {0x3AA9B56A, 0x48C80D0A, 0xD7DEA1B1, 0x136D1038, 0xB714FCB5, 0x4C1D91FC, 0x2DE0F5A1, 0xB0710718} } } } ;
5196 static const bigint_t var_b = {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
5197 static const fp12_t var_expected = { { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
5198 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
5199 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
5200 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
5201 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
5202 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
5203 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
5204 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
5205 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
5206 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
5207 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
5208 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
5210 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2349 a000");
5211 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2350 a001");
5212 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2351 a010");
5213 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2352 a011");
5214 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2353 a100");
5215 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2354 a101");
5216 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2355 a110");
5217 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2356 a111");
5218 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2357 a200");
5219 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2358 a201");
5220 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2359 a210");
5221 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2360 a211");
5224 static const fp12_t var_a = { { { {0x33746CD9, 0xE244D933, 0x85E099CA, 0xD5D6A3BA, 0xC28BAD01, 0x7888561C, 0xD077AEA8, 0x73638220},
5225 {0xC41A682B, 0xF2A72536, 0xCBF23761, 0xC2B694C9, 0xDB9A80AB, 0x80780FFC, 0x9A593CE3, 0xADDE64A2} } ,
5226 { {0xA4699119, 0xFBC47F72, 0x627BDBD2, 0x09EBBE55, 0x72DBCE2D, 0x9C534724, 0x46D5B036, 0x0E43F118},
5227 {0x4D871D01, 0x0673B2D8, 0xAEBF4550, 0x792F509A, 0xBCEF33F4, 0xED8BB754, 0xE795A1E1, 0x47DBC9F3} } } ,
5228 { { {0x7E6DA60C, 0x38477583, 0x831ACFA9, 0x611C679F, 0x6C845BA7, 0x7A1FC6A6, 0xF2264376, 0x49A6C413},
5229 {0x6C8D0D57, 0xC48A4018, 0x539C1784, 0x764BFC15, 0xBB4CAF5C, 0xBC3CD875, 0xA051F0A8, 0x3D36768E} } ,
5230 { {0xCA762D62, 0xC72F7DEC, 0x0471A0B5, 0xB0715000, 0x12C83E5A, 0x16F5E554, 0xAD79BF71, 0x2F2A0B7F},
5231 {0x56D5DC07, 0x233AA8C1, 0x45890CD6, 0x8BE47683, 0x629C4AFE, 0xD3CBCCEF, 0xCB8D46A4, 0x1ECE6F3B} } } ,
5232 { { {0x477F77CE, 0xA7A953BA, 0xF91CFA15, 0x97109ADC, 0xC04D6AE7, 0x79872967, 0x01FF4ACA, 0x56745BBF},
5233 {0x1049A80D, 0x31B2C3D7, 0x032DD623, 0x4E03B519, 0xCCA532E0, 0xEB3C1947, 0xFC4764F3, 0x340510F1} } ,
5234 { {0x06D6B6EE, 0x9CA2081D, 0xFACB67D5, 0x5A6BA4DE, 0x47914E6B, 0x76FF883F, 0x7519FC83, 0x774CC625},
5235 {0x7B40DCC5, 0xFA93B8E2, 0x2E4A57DF, 0x3694A049, 0x6112F47E, 0xEDB2EE08, 0xB266F4EE, 0x54B68B0B} } } } ;
5236 static const bigint_t var_b = {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
5237 static const fp12_t var_expected = { { { {0x33746CD9, 0xE244D933, 0x85E099CA, 0xD5D6A3BA, 0xC28BAD01, 0x7888561C, 0xD077AEA8, 0x73638220},
5238 {0xC41A682B, 0xF2A72536, 0xCBF23761, 0xC2B694C9, 0xDB9A80AB, 0x80780FFC, 0x9A593CE3, 0xADDE64A2} } ,
5239 { {0xA4699119, 0xFBC47F72, 0x627BDBD2, 0x09EBBE55, 0x72DBCE2D, 0x9C534724, 0x46D5B036, 0x0E43F118},
5240 {0x4D871D01, 0x0673B2D8, 0xAEBF4550, 0x792F509A, 0xBCEF33F4, 0xED8BB754, 0xE795A1E1, 0x47DBC9F3} } } ,
5241 { { {0x7E6DA60C, 0x38477583, 0x831ACFA9, 0x611C679F, 0x6C845BA7, 0x7A1FC6A6, 0xF2264376, 0x49A6C413},
5242 {0x6C8D0D57, 0xC48A4018, 0x539C1784, 0x764BFC15, 0xBB4CAF5C, 0xBC3CD875, 0xA051F0A8, 0x3D36768E} } ,
5243 { {0xCA762D62, 0xC72F7DEC, 0x0471A0B5, 0xB0715000, 0x12C83E5A, 0x16F5E554, 0xAD79BF71, 0x2F2A0B7F},
5244 {0x56D5DC07, 0x233AA8C1, 0x45890CD6, 0x8BE47683, 0x629C4AFE, 0xD3CBCCEF, 0xCB8D46A4, 0x1ECE6F3B} } } ,
5245 { { {0x477F77CE, 0xA7A953BA, 0xF91CFA15, 0x97109ADC, 0xC04D6AE7, 0x79872967, 0x01FF4ACA, 0x56745BBF},
5246 {0x1049A80D, 0x31B2C3D7, 0x032DD623, 0x4E03B519, 0xCCA532E0, 0xEB3C1947, 0xFC4764F3, 0x340510F1} } ,
5247 { {0x06D6B6EE, 0x9CA2081D, 0xFACB67D5, 0x5A6BA4DE, 0x47914E6B, 0x76FF883F, 0x7519FC83, 0x774CC625},
5248 {0x7B40DCC5, 0xFA93B8E2, 0x2E4A57DF, 0x3694A049, 0x6112F47E, 0xEDB2EE08, 0xB266F4EE, 0x54B68B0B} } } } ;
5250 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2361 a000");
5251 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2362 a001");
5252 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2363 a010");
5253 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2364 a011");
5254 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2365 a100");
5255 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2366 a101");
5256 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2367 a110");
5257 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2368 a111");
5258 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2369 a200");
5259 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2370 a201");
5260 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2371 a210");
5261 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2372 a211");
5264 static const fp12_t var_a = { { { {0x6D3978BF, 0x4EEADE9D, 0x3E5D67A1, 0x3094F68E, 0xB2349112, 0xD95625FF, 0xBE8A92BC, 0x0407C322},
5265 {0x333F0B07, 0xFDA69861, 0x1765B864, 0x2E9AD253, 0xF6ED200C, 0x24ACD14A, 0x242A390A, 0xA981312A} } ,
5266 { {0xB47863EB, 0x8FD17277, 0xE6774395, 0x46DC72A8, 0xA3D1697B, 0x7B7221C8, 0x2466F19C, 0x83308587},
5267 {0x59789CE9, 0x2C1C2EF7, 0x6878B389, 0x7006EBD6, 0xC08D69A6, 0xCA7798FC, 0x44867334, 0xADEF9D7E} } } ,
5268 { { {0x396118A1, 0x15432443, 0xE7C4F21E, 0x1D9EE69B, 0x3A67F6F0, 0x567458E4, 0x94722F02, 0x1A8482C8},
5269 {0xC0035446, 0xAF7CDCB7, 0x4351F857, 0x1DAE9911, 0x5B0C9BB0, 0x443FC3B0, 0x6CC2C7EB, 0x3F130EEF} } ,
5270 { {0x0D6EFAC5, 0x9FEF138B, 0x863ABEFE, 0x816D4495, 0xC6A91F31, 0x089CD45C, 0x339C0F29, 0x6D42AE51},
5271 {0xDE3141EB, 0x66700F06, 0x452B9658, 0xA8CE018A, 0x555F18BF, 0x66BF5F70, 0x1CCF170E, 0x9472750A} } } ,
5272 { { {0x007EEBFF, 0xE1C9E2D7, 0xD31D7A48, 0x2D8CDD34, 0x14BD0E3D, 0x58C891CC, 0x8CA0E750, 0x92DA886E},
5273 {0x99C607A7, 0xCBF02B71, 0x5B9408CE, 0x9506DFC2, 0x7AAFB27A, 0x48F6B5D0, 0x2E552BE4, 0x7E59BB73} } ,
5274 { {0x51CDAB86, 0x2C4C7FC7, 0xE99DD780, 0xC62CE223, 0x1ABF744B, 0x57637B35, 0x24BE3DCA, 0xA3E17958},
5275 {0x49ED1C3C, 0x4B17A0A2, 0x12EAE72F, 0xFCD57DFD, 0x029394D6, 0x1575CE87, 0x1178E12B, 0x4E26381C} } } } ;
5276 static const bigint_t var_b = {0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
5277 static const fp12_t var_expected = { { { {0x783EF04B, 0x9C8EE326, 0x7B8BBD51, 0x8D8FBF63, 0xB13EA1F0, 0x8C78C94B, 0x057185A6, 0xA7E90DD3},
5278 {0x991DC163, 0x115E050F, 0x58EA1978, 0x7F034C73, 0x6769AA42, 0x39A30206, 0x222ADC57, 0x874FCBBC} } ,
5279 { {0x135176D3, 0x1EB39C45, 0x5CD56A23, 0xE02B705D, 0x7CC5347C, 0x6B324154, 0x30293098, 0xAB98C2EE},
5280 {0x114D358F, 0x56B087F7, 0x4D9894EA, 0x98681A4E, 0x5F2056AD, 0xECF8B7B7, 0x5699DCD7, 0x69C7697D} } } ,
5281 { { {0xFA520677, 0x82B72913, 0x48AA9225, 0x5791AB23, 0xA9D67A24, 0x51ABFB46, 0xA326696B, 0xB0516644},
5282 {0xAB194188, 0xD93637B2, 0x745D9957, 0xF9B644E2, 0x89A968BF, 0x553AA163, 0x1C97718C, 0xAB2D52BC} } ,
5283 { {0x4B03937C, 0xBF315985, 0x7FC3671E, 0x59567034, 0xE683E557, 0xE7E01220, 0xC7E9BE1A, 0x2663AF5A},
5284 {0x82AB6A9E, 0x866EABEB, 0xFB788DAD, 0x1641FF4D, 0xE765602C, 0x8EE75C20, 0x255E1F4D, 0x4D3DBBA8} } } ,
5285 { { {0x0A601233, 0x2655F099, 0x96231D5C, 0x568E15C9, 0x5EFEA6DD, 0xA3FF6E11, 0x6E5C69FE, 0x7190E26C},
5286 {0x4FC419F3, 0xD23A1438, 0xDA0D49C6, 0x4044EBD3, 0x36BBFCA5, 0x616FBA48, 0x291ECB7B, 0x6C095B0D} } ,
5287 { {0xA0C3ECE7, 0xDA8240EC, 0xDAA0D9E2, 0x452974E7, 0xACAA7B0A, 0x098D5B86, 0x551C1D00, 0x703B6AAD},
5288 {0xFEADE0DE, 0xC0D7D487, 0x1AA6C56B, 0xF25A2D86, 0x41E6B463, 0xAB1331C4, 0x3F353197, 0x1E60613C} } } } ;
5290 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2373 a000");
5291 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2374 a001");
5292 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2375 a010");
5293 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2376 a011");
5294 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2377 a100");
5295 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2378 a101");
5296 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2379 a110");
5297 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2380 a111");
5298 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2381 a200");
5299 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2382 a201");
5300 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2383 a210");
5301 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2384 a211");
5304 static const fp12_t var_a = { { { {0x2358AE25, 0xA6D2EA67, 0xCE1184E8, 0x47757809, 0x55D9A129, 0x2E35E68B, 0x7B37DE36, 0xA81DFD53},
5305 {0x96D01594, 0xE23DCE5F, 0xB81A660E, 0x1A93EB2D, 0x58B5F9C0, 0xC7A40072, 0x8545F494, 0x6F726AC0} } ,
5306 { {0x39EC3591, 0x7423E888, 0x5E45AFC8, 0xC61C1797, 0x4FD584EE, 0x24081682, 0xC19D413C, 0x03F111E4},
5307 {0x6106B477, 0x423F72B1, 0xD572FFB8, 0x98B97E7D, 0xADCC0E0E, 0xF53FBC11, 0x7538770D, 0xB76D44C3} } } ,
5308 { { {0xC14A20BA, 0xEB13BE8A, 0xE60DAB53, 0xF454F762, 0x1FD0656E, 0x641480AD, 0x16EED8B0, 0x1D6A6F4C},
5309 {0x07D19CF1, 0xC6480649, 0x33C76A4A, 0xE884008B, 0xC877B51F, 0x2829A99E, 0xD8592749, 0x32B20DA4} } ,
5310 { {0x6D0F2652, 0x69F576B5, 0x3BDD9DB4, 0x31AA4BE3, 0xC194B8A8, 0xF8A55957, 0x47DF412C, 0x0BDB3EC5},
5311 {0x6BD95B68, 0x71AB5E3A, 0xD9023942, 0xCDB0E993, 0x60403780, 0x75FA4AA0, 0xA549BBDD, 0x1D39275F} } } ,
5312 { { {0x57766163, 0x9E7F11EC, 0x33E106BA, 0x8CD41EC8, 0x349B37FF, 0xCDD27369, 0x1F576929, 0x7F06DF12},
5313 {0x3BFB05ED, 0x6D817C13, 0x58EBCA14, 0xCE2286CF, 0xF1A45C1D, 0x2C73E6F0, 0xAFC40F09, 0x32E06FDA} } ,
5314 { {0x0215014F, 0xC26BA1F4, 0x577F6B92, 0x6F04E27C, 0xE5E2A3BC, 0xB7C8AEBE, 0xFB940E3E, 0x5261FF72},
5315 {0xB90F23A3, 0x51391F05, 0xEB880B53, 0xB7A6D146, 0xBE33F371, 0xD58BADFD, 0xD86094E8, 0x157996EE} } } } ;
5316 static const bigint_t var_b = {0x0FDD15B8, 0x8784FC44, 0x421DE879, 0x8E23C39A, 0x4216763D, 0x1FEB0D26, 0x47F491A2, 0x75F22E57};
5317 static const fp12_t var_expected = { { { {0xB0B96957, 0x87796833, 0x7B4A16F3, 0xC538CC21, 0x3BD0E36D, 0xE6C9B5AD, 0xF9BCE085, 0x36E837AC},
5318 {0x414919A0, 0x8BCE4B75, 0xF0607D70, 0x70E6F76E, 0x32D297EE, 0x48A8E93A, 0x817E1BA6, 0x6D4B357E} } ,
5319 { {0x0C25C6DC, 0xCCF22929, 0x67908914, 0x42654CF1, 0xC3374D65, 0x5945DDE0, 0x9FF31290, 0x0047A1E0},
5320 {0x3961E71A, 0x33CCB14B, 0x703F39BB, 0xE2E16B4A, 0xC6BA1556, 0x61378582, 0xF42A7629, 0x4047869C} } } ,
5321 { { {0x42E96DB6, 0x0E5EA4E3, 0x52AA7E22, 0xC9F5FDEE, 0x8F9D97C0, 0x7C40AED1, 0xEA0935A0, 0x049F5E97},
5322 {0x0338DF9E, 0xDE66BB73, 0xEB589736, 0xF3C8AEE5, 0xB0677296, 0x1DB9519C, 0x02FB4B2B, 0x96D2DE64} } ,
5323 { {0x4D191B04, 0x14E3F833, 0x59B7F653, 0xD1F0F9D3, 0xE3399FD4, 0x91241D81, 0x6D026386, 0x72B43D24},
5324 {0x2C2185C6, 0xA589227F, 0xFBA40F44, 0x43B2D70E, 0xBCF2D470, 0xE1EAD8B4, 0xF2A5589E, 0xA84E0163} } } ,
5325 { { {0xEC4CF6F9, 0x1304EABA, 0x3614948C, 0x22FCAFCB, 0x659B04AF, 0x4528AFDB, 0x28A8F764, 0x5CF304AD},
5326 {0x0C8972F5, 0xCB3F8C61, 0xFC3EA02E, 0x843F2A17, 0xA8C32618, 0xD6124648, 0x72D024EF, 0x2C726425} } ,
5327 { {0xDB35A956, 0x8DB9893B, 0xA9C54B0E, 0x687438E8, 0x21758939, 0x710336BF, 0x50134010, 0x7456CADC},
5328 {0x0734453E, 0x75FA0595, 0x2F6C75A8, 0xAC332791, 0x5E793D78, 0xF57647DF, 0x0F783C0D, 0x9869F76C} } } } ;
5330 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2385 a000");
5331 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2386 a001");
5332 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2387 a010");
5333 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2388 a011");
5334 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2389 a100");
5335 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2390 a101");
5336 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2391 a110");
5337 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2392 a111");
5338 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2393 a200");
5339 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2394 a201");
5340 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2395 a210");
5341 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2396 a211");
5344 static const fp12_t var_a = { { { {0x1B8F7A5D, 0xEAD017BC, 0xCCC8B18E, 0xA14E610B, 0x2ED9CD8F, 0x99E7F520, 0x2E409D93, 0xA01D4006},
5345 {0xD3B194F1, 0xBEAB9346, 0xD64D7A7D, 0x6E2614AC, 0x6C90EC41, 0x08691A77, 0xC1EDD89C, 0x039BF45E} } ,
5346 { {0x36B853B2, 0x8A6D04DB, 0x2A95FC02, 0x934EECFA, 0x7081B867, 0x75CCD29B, 0x6DF0B6F2, 0xB6E7D098},
5347 {0x89F20ADF, 0xA0015BBA, 0xD4925969, 0x7A24FD7E, 0xD9BDD55B, 0x6916D238, 0x09756B63, 0x7CEAC543} } } ,
5348 { { {0x4D287B67, 0x24D4B926, 0x53F0098F, 0x58E7FDB6, 0x4F0F3F4A, 0x4D108519, 0x6FB52725, 0x5F82D9D5},
5349 {0xD954069D, 0xC9F36AE2, 0x0A751A31, 0x0AEAB314, 0xEECA2179, 0x525F17B4, 0xDE15E2B4, 0x98612EC4} } ,
5350 { {0xA893F868, 0x89D91AC3, 0x4645A4DA, 0x05D1EE6A, 0xA5316E4E, 0xA09600D5, 0xE96520F1, 0x914D1FF2},
5351 {0xC9BDAAE3, 0x1F6190BD, 0x791202A5, 0x284AB07D, 0x80833F00, 0x58796892, 0xC4753DF6, 0x6080C731} } } ,
5352 { { {0x221A39C0, 0xDA69D3FB, 0x31C556C2, 0x760ED45C, 0x0B1CE537, 0xC9133BB1, 0x0943C004, 0x1BBFC0AC},
5353 {0x9978CD75, 0x8B5D7B1E, 0x55F60CD6, 0xE11EBE77, 0x6E613CB9, 0x56F6549C, 0xF09ABCED, 0x11B979AE} } ,
5354 { {0xCE6E7EAE, 0xA5780BF0, 0x009376C9, 0xD6E63020, 0x7F6505F0, 0x65AC0857, 0xE52139DD, 0x89F2E114},
5355 {0x3A9958FB, 0xA1749BBA, 0x87E38FB5, 0x8287A718, 0x92F49A50, 0xCDB73B1A, 0x3E260AB4, 0x3FD51F69} } } } ;
5356 static const bigint_t var_b = {0x309950AC, 0x1A0335FC, 0x7F24E2D7, 0x4CF06F60, 0xE84F88A2, 0x2D8168D5, 0x0DB8F192, 0x81B5B5A9};
5357 static const fp12_t var_expected = { { { {0xAE35CA10, 0x06B42DD7, 0x628C3A57, 0x51BFC3EA, 0x0E3DF7C1, 0x6495B4A7, 0x7845F7B8, 0x3B3A13B7},
5358 {0x3C686491, 0x7C96F27C, 0xA5EA7886, 0xB1CFD0A3, 0x9EFE1186, 0xDD80E45D, 0xA258E6D6, 0x41BF32D0} } ,
5359 { {0x577B0FAE, 0x5CF2BEF2, 0xD72AA5FD, 0xF912862A, 0x87D5C874, 0xEC537299, 0xA3FD5D57, 0x07650064},
5360 {0x7F52B8D6, 0x09F3D6FB, 0x7920C04D, 0x47AF6795, 0x4239FBE0, 0x8D938FB9, 0xF5068F9C, 0x35F80834} } } ,
5361 { { {0xE4A8AD82, 0x4F26A293, 0xE815AC87, 0x8DD28820, 0x5A7A40FA, 0x44455534, 0x8CDDD4F1, 0x102E059A},
5362 {0xFE5D4AD9, 0xE71EA601, 0xF9F4BC44, 0x3118A49A, 0x687C894C, 0xCBF777C1, 0x3E164B2D, 0x69FDA051} } ,
5363 { {0xACB0A693, 0x07E0E82C, 0x2189804F, 0x29F6ED0B, 0x6650C57E, 0x4F3AF391, 0x73D5FA79, 0x7DB87BFE},
5364 {0x30AC70DB, 0xDCFF4CB1, 0x24B83E71, 0xCF626A55, 0x98D06FE2, 0x30564919, 0x20816FA5, 0x3CB415E0} } } ,
5365 { { {0xE3AB4AFE, 0xC31D513F, 0xC2265B27, 0x71DCC74D, 0x62EC8C7D, 0x707C27A8, 0x6C09B166, 0x2CFD480A},
5366 {0x23022773, 0xEC0D77C0, 0x03529ED8, 0xC5DC81C4, 0x2849FACB, 0x948AD7F6, 0xFA9EE39E, 0xAA6EC47E} } ,
5367 { {0x4BEFAA8B, 0x88BE373E, 0x144B35C2, 0xA4F13220, 0x81110F78, 0x654604D9, 0xB50B73EA, 0x17C6DF6C},
5368 {0x8B849219, 0xFF44D28B, 0x3C4FEA05, 0x06643510, 0x72F79344, 0x6C1634B0, 0x77845D57, 0x53C64D1D} } } } ;
5370 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2397 a000");
5371 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2398 a001");
5372 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2399 a010");
5373 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2400 a011");
5374 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2401 a100");
5375 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2402 a101");
5376 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2403 a110");
5377 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2404 a111");
5378 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2405 a200");
5379 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2406 a201");
5380 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2407 a210");
5381 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2408 a211");
5384 static const fp12_t var_a = { { { {0x3DFF5611, 0xF44C67BE, 0xD6BB8F6C, 0x5CA3ED9B, 0x960D3263, 0x45BFBDCC, 0x59D0E3BD, 0x66D9829C},
5385 {0xF58D35C4, 0x6341A868, 0x6FB5D199, 0xB1D9843C, 0xC916E64D, 0x233EE311, 0x4A3BB829, 0x95DBCBC3} } ,
5386 { {0x21E78C84, 0x67B9F376, 0x0ECCB2A7, 0x0E71ACD8, 0x186EF4C3, 0x97B3EFE5, 0x842625BB, 0x8A2C9616},
5387 {0x7DFD0474, 0xBDA83E2C, 0x0549AD68, 0x0355373F, 0x6F2F4F3B, 0xAACD710D, 0x7A9413CE, 0xAA5E41E4} } } ,
5388 { { {0x35ED3E20, 0x38F24449, 0xFBC3A5EC, 0xF7A4FE50, 0x70A499B9, 0x5D45D0F0, 0x8261C86B, 0x3767EC1D},
5389 {0xDF2A6750, 0x596C0AC3, 0x9259C638, 0x01BBB5CD, 0x80090DFC, 0x247D1A63, 0x56307BB1, 0xA703999C} } ,
5390 { {0xA83768A6, 0x880B1B71, 0xCC69E09A, 0x47931AB5, 0x9DE85DD4, 0x11251BB8, 0xE7509BEE, 0x5F365210},
5391 {0x036870E6, 0x595472EF, 0x216544C4, 0xD7519622, 0xD997485F, 0x0D9E9219, 0xE5E8B426, 0x71594C2D} } } ,
5392 { { {0x25791149, 0x9A0A6481, 0xA17E7E23, 0xBA0D603A, 0xDD3BC929, 0xE0DA8D91, 0xE5093BF6, 0x1601109B},
5393 {0xDA1283CB, 0x2E9E4152, 0x1FCC6BD4, 0xC42C89A0, 0xB29D89E7, 0x1DCBF7A3, 0x9A5D2E8E, 0xA0CF2480} } ,
5394 { {0x4FB66F74, 0xA9861F1D, 0xEEA0267D, 0x1ECE0C3D, 0x3DD367E9, 0x32A0AA88, 0x5F1BFF83, 0x608C587E},
5395 {0x279FB1B6, 0xAEFCB80C, 0x058E3E0A, 0x85D60FE5, 0x266687F0, 0x9DD9053D, 0x376119D4, 0x5D7A89F3} } } } ;
5396 static const bigint_t var_b = {0x2E4C2305, 0xF989FB98, 0xA5A515E1, 0x14F1F7B5, 0x9A7D4111, 0xB5938030, 0xAB84A059, 0x356BD5B0};
5397 static const fp12_t var_expected = { { { {0x2AF2E645, 0x0C8EA2D9, 0xDA1AC7E8, 0xEEAE5491, 0xC94FAB0C, 0x99065E61, 0x541478DA, 0x47F1ED4A},
5398 {0x16BD0783, 0x4566D2BB, 0xBC5669D2, 0x0A300095, 0x5B51A49A, 0xB9C62E5A, 0xB3C58DAB, 0x8F8843FD} } ,
5399 { {0x30421B00, 0x4CA298F3, 0xF07FA1A2, 0x2906AA5E, 0x9E6470BE, 0xE71352EC, 0x5E2F1958, 0xABCAE77F},
5400 {0xD1014B42, 0xDBE76430, 0x5AF63F13, 0xC424D3AF, 0x01948836, 0xE5EE3E7A, 0x02B4B9D3, 0x6634AC49} } } ,
5401 { { {0xC3BDE2F5, 0x23232F6B, 0x673F64CB, 0x5DA57AB3, 0xD05B7BC0, 0x65FD6353, 0x67C8CF3A, 0x4BB75449},
5402 {0xE765EC09, 0x9657DA02, 0xFF466145, 0x12EF98C0, 0xB7418F90, 0x19B06789, 0xDBC3BBB4, 0x795D740A} } ,
5403 { {0x680E3001, 0xA1AE9F58, 0x4259029D, 0xAC2FC61D, 0x9D487B13, 0xB3AD4DB4, 0x600D2932, 0xA211F0A5},
5404 {0xB05B96C0, 0xD5DB2584, 0x1735F91B, 0xCBF507E6, 0xC5C8CFF9, 0x1E112A11, 0x959C4161, 0x8A499EF0} } } ,
5405 { { {0xA970CAB7, 0x2B66FF3B, 0xF78404A1, 0x21FA4B6E, 0x7F760438, 0x0910554A, 0xC68A9188, 0x7390BFD0},
5406 {0x35AF7412, 0x859A7C60, 0x47FE70AC, 0xC5A19430, 0x285EE971, 0x1ADEF66B, 0xF0823A6A, 0x717B7517} } ,
5407 { {0x4476CE7A, 0x0FD1DCD2, 0x67136B16, 0x74FC26C2, 0xD56D4BB7, 0x22FE5D39, 0x7DA44D86, 0x17F14EA9},
5408 {0x5AF242E4, 0x8E654CB4, 0xF0E3E6D0, 0xFF241793, 0xC1EF6B79, 0x16A763BD, 0xF31FE459, 0xA628255D} } } } ;
5410 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2409 a000");
5411 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2410 a001");
5412 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2411 a010");
5413 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2412 a011");
5414 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2413 a100");
5415 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2414 a101");
5416 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2415 a110");
5417 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2416 a111");
5418 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2417 a200");
5419 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2418 a201");
5420 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2419 a210");
5421 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2420 a211");
5424 static const fp12_t var_a = { { { {0x7C900CD1, 0x98E503BB, 0x16626E8F, 0x34A0D43C, 0x9407FB56, 0xD579FCB8, 0x9A1A8BC7, 0x1C2C4E55},
5425 {0x66355188, 0x75CDE72B, 0xFB42EF71, 0x9351482E, 0x0E0B3D5C, 0xEB38E642, 0x724E6909, 0x2184CAD9} } ,
5426 { {0x3D798506, 0x29900649, 0x7DFF9A7E, 0xF3B39FF8, 0x0532E056, 0x35808646, 0x7CA93E2C, 0x761BEE15},
5427 {0xEF233A29, 0x95D96E27, 0xFBD0FF0F, 0xE1BCA3AC, 0x990ED18D, 0x153D4BBC, 0x847F9046, 0x3A2FEECF} } } ,
5428 { { {0x6078CBDD, 0x1FD76645, 0x087559AE, 0x9DCB4B21, 0xD9F38795, 0xFC816735, 0x2CF15F0F, 0xA8E0AD24},
5429 {0x688E6AA6, 0x6D8C3363, 0xF3B6CE27, 0x41648EE3, 0x9FF36547, 0x026774BF, 0xFE73614D, 0x2AD4713D} } ,
5430 { {0x7C988993, 0x7261A3E1, 0x71083DB7, 0x8C09725A, 0xAD037902, 0x4CC07441, 0x2EB71735, 0x55221F6C},
5431 {0x97E5A509, 0xC51931E7, 0x4D478E3C, 0xD577676C, 0xF5ECF911, 0x56CF1375, 0x688A09B2, 0xA7BC2B49} } } ,
5432 { { {0xCF058692, 0x39FEB6D5, 0xAA44CAD3, 0xE8361327, 0x28D9C7C8, 0x6EB610DD, 0x4A47F023, 0x79F2303D},
5433 {0x5AFB9388, 0x64110CC8, 0xCEBDB434, 0x8F972F90, 0xF3D8DAB5, 0x44B0B810, 0x5FE3913B, 0xA986CF51} } ,
5434 { {0x57E73C6B, 0x64FA64FE, 0xBA083A8A, 0xDADACBC1, 0xC91A5BD1, 0xE2DDA2A4, 0x6E12759E, 0xB2E0F30E},
5435 {0x9092E83E, 0x09E6E895, 0x56EDB520, 0xB4F5D1F0, 0x0865D3DA, 0x45C7387E, 0xB6280ABC, 0x9F1483E4} } } } ;
5436 static const bigint_t var_b = {0x71353FE2, 0x9937E40E, 0x962C9048, 0xDE918FEA, 0x80C6BBBF, 0x22C92A19, 0x12CC4AB5, 0x144DA083};
5437 static const fp12_t var_expected = { { { {0xCD184A2D, 0x9FB0FF06, 0xF8255AE5, 0xAB5975B2, 0xFAE72259, 0x1C5A5D83, 0x7975CC15, 0xB36C4FED},
5438 {0x4D9B76BD, 0xB0C9480D, 0xD29E6A59, 0xABA8F68E, 0x160AABCF, 0x6B53A6E8, 0x28369356, 0x6C15FBDA} } ,
5439 { {0x93DBB92C, 0x54FE6A5F, 0xFFD56040, 0x27B9B807, 0x691AC5DB, 0x2CF1DF83, 0xBFAE3C2C, 0x28C7325B},
5440 {0x5AB43170, 0x663047B1, 0xD082AEDE, 0x55F11EE5, 0xA4775B60, 0x2D8C2EEF, 0x0F1A589D, 0x2FE615E9} } } ,
5441 { { {0x54588A31, 0x0C1249D9, 0xC7BF56FA, 0x2018FE34, 0x922287CD, 0xC9CA804B, 0x3F67A720, 0x7BC1D9CD},
5442 {0xB739B7A7, 0xF8CB052F, 0x36C7DCF7, 0x5059A1C9, 0xEC004E59, 0xFA3EDA62, 0x7B91884B, 0xB278DD68} } ,
5443 { {0x5E3744C4, 0x56F404A1, 0xE81D50D8, 0x8ECE1F74, 0x02D5802C, 0x1787424B, 0x6A76EA95, 0x8A1D3854},
5444 {0xE20B8111, 0x3D3E7910, 0xAE432DA3, 0xF9A44F3A, 0xA4D3A877, 0x17E34DFB, 0xA357CFDA, 0x26892E32} } } ,
5445 { { {0x934CA28A, 0x32A5517B, 0xF5281FD8, 0x048166ED, 0x1016BFA0, 0x4A75ADD0, 0x8DD43B44, 0xB12F2B33},
5446 {0xEF07A67D, 0xFBE35790, 0xE85CDB48, 0xBE595C85, 0x710171BA, 0x55F3170E, 0x4DDA2B23, 0x1D26D461} } ,
5447 { {0x2DD24A94, 0xC328EF67, 0xC834DC0D, 0xDD25C1D0, 0x4FB9256F, 0xB1C27285, 0x09B7CCD1, 0x5581EB65},
5448 {0xDC6B7472, 0xDFD27928, 0x8DD29556, 0x5123A890, 0x832A8704, 0xE1D9C59E, 0x0C055F90, 0x5A230988} } } } ;
5450 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2421 a000");
5451 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2422 a001");
5452 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2423 a010");
5453 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2424 a011");
5454 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2425 a100");
5455 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2426 a101");
5456 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2427 a110");
5457 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2428 a111");
5458 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2429 a200");
5459 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2430 a201");
5460 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2431 a210");
5461 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2432 a211");
5464 static const fp12_t var_a = { { { {0xFE7E8469, 0x2059CC48, 0x8463DF3D, 0xF1EA333C, 0x00103A63, 0x699B5B62, 0x3EFD9FF6, 0x597368D5},
5465 {0x83F3F598, 0x3AB04D85, 0xBC401271, 0x882EACCF, 0xDA187746, 0x769AE3E1, 0x04DD2395, 0x41F68A82} } ,
5466 { {0xB8DAE85D, 0xD61F4F2C, 0xE07B87C0, 0xACBA0DEC, 0xCF66F833, 0x854A1167, 0x2A39F1A3, 0xB6545FE7},
5467 {0x8DF8561F, 0x86ACB732, 0x4AEF28FA, 0x41D77C91, 0x66EDD73F, 0xFC27D399, 0x25992C6A, 0x40574BCC} } } ,
5468 { { {0x262A92E8, 0x8EB20345, 0x9007364F, 0x0F586115, 0x3FBBA4A9, 0xB5CD26A0, 0x9BB572C9, 0x70E72F9C},
5469 {0x0EE555A1, 0x272D3E81, 0xAB1645FD, 0xF37DB635, 0xE85BE294, 0x66F7DAEF, 0xC2F21525, 0x4818B0C3} } ,
5470 { {0x995307F4, 0x328CAA3C, 0x06465654, 0x7D7B4C8A, 0x1F627517, 0x206D5B9E, 0xA814E100, 0x8DD02D28},
5471 {0x176AB4F5, 0x55A6E731, 0x98788A1F, 0x0FDBDE5E, 0x4CA91435, 0xEA86BE2E, 0x1F4FAF94, 0x90DF3759} } } ,
5472 { { {0x0900A32D, 0x2CCD04AB, 0x16D5A3B9, 0xA0F1A43A, 0x63CDA018, 0xA884DB50, 0x1E89B41E, 0x9E45A65E},
5473 {0x09083E9D, 0x06D9761A, 0x8D6507A4, 0xF0D12BEA, 0x0E9858A0, 0x3E2B82FF, 0xF245CEC9, 0xAECEC1F8} } ,
5474 { {0xEECA7763, 0xC4EBE960, 0x1B445975, 0x919A2DCD, 0xECCE431E, 0xD30D12C9, 0x4B590077, 0x723D568C},
5475 {0xBE838538, 0xEB037B02, 0x145DA124, 0xC82ED520, 0xF7234DCC, 0x5041B543, 0x8F29F4C7, 0xA706256E} } } } ;
5476 static const bigint_t var_b = {0xF78E891B, 0xD302FA28, 0xAA109EB8, 0x6C1F4713, 0x128BEB2C, 0x02A231B3, 0x69BC5870, 0x22B16D82};
5477 static const fp12_t var_expected = { { { {0x479D36C9, 0x5F757AB6, 0xE3CD27D7, 0xF7FF30B1, 0x253C2CA0, 0xE24B4F1F, 0x30A88B91, 0x0A518B69},
5478 {0xB6FA59DA, 0x9587CE89, 0x3347312A, 0xCA266B7F, 0xB203469A, 0xB53329CC, 0x17792F47, 0x839088D1} } ,
5479 { {0xC25E6321, 0x711FBDDB, 0xE870F104, 0x4ADB3B06, 0x43DA5B0D, 0x2A10DBED, 0x0F515666, 0x5F25F90C},
5480 {0x7C0DD269, 0x15F1BC1B, 0x7E91FCDE, 0xFFA8B107, 0x4897C59B, 0xA60C2E96, 0x041EB21F, 0x2270566E} } } ,
5481 { { {0x20E807FB, 0x29E47233, 0x1187C96F, 0xF3F79025, 0xE8D1AEC1, 0x21211224, 0x338B81D0, 0x2C97200B},
5482 {0xD59B78F2, 0xBB1F585C, 0x81674094, 0x86C5F175, 0x5FDF5366, 0x3D51CB01, 0xE549F8AC, 0xB0C261CE} } ,
5483 { {0x28EA07CA, 0xE1274AF7, 0x12EA64DF, 0xC443C0D1, 0x0E7F5072, 0xD61841B4, 0x7E30E67B, 0x73BA5A72},
5484 {0xB9F8B1B2, 0x2046764A, 0x27F780E0, 0x5D9E36CE, 0x25EFF34E, 0xE2E5FFE8, 0x0D01C9AE, 0x358E906F} } } ,
5485 { { {0xD428C623, 0x78D64EF3, 0x0116EAEB, 0xCBB54DD7, 0xF876CFA1, 0x730DBF85, 0xA804CD17, 0x547D2BDF},
5486 {0xAA7E72D0, 0x45E795B8, 0xD913DAEE, 0x3EEC2FFA, 0xAC01AED9, 0x027EC660, 0x46363878, 0xABA12C08} } ,
5487 { {0x05409CFC, 0xFACE5889, 0xF8A804B2, 0x4370EFEB, 0x9966DA25, 0x881BD47A, 0x5A749865, 0x41F6943B},
5488 {0x09E1BABD, 0x2E68AB30, 0x0A8C07F7, 0x4AF09505, 0xB156A78D, 0x8CD8E85B, 0xA02B1FE1, 0x98EA104D} } } } ;
5490 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2433 a000");
5491 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2434 a001");
5492 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2435 a010");
5493 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2436 a011");
5494 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2437 a100");
5495 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2438 a101");
5496 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2439 a110");
5497 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2440 a111");
5498 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2441 a200");
5499 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2442 a201");
5500 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2443 a210");
5501 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2444 a211");
5504 static const fp12_t var_a = { { { {0xFD703157, 0x41D14AB7, 0xA8C8043D, 0x0EDFC979, 0xA53BEDD8, 0x1E9D97C9, 0x15092FFC, 0x3016EAFA},
5505 {0x75DE590D, 0x1444ACDD, 0x8990144D, 0x32AF1EB2, 0xE42404AC, 0xB234CFB8, 0x432AF047, 0xA79F9B91} } ,
5506 { {0x792E2FF8, 0x26B34D14, 0x349A7757, 0x3F47007E, 0x6B0D8393, 0x3798E648, 0x0ECBB636, 0x63AE3BE1},
5507 {0xACEF3746, 0xBFA6150B, 0x340B425C, 0x2BFCCFE7, 0xCA710932, 0xDC2DCC57, 0xEE417620, 0x7C68107C} } } ,
5508 { { {0x19605ECD, 0x7A09E8EA, 0x7896A4AB, 0x0246A375, 0x78466949, 0xAD8EEF86, 0x5A6AB7B6, 0xB4F7EE94},
5509 {0x7A864A6E, 0xBB6F23C9, 0x838A229B, 0xC073E4C7, 0x789ABBC8, 0x083FD825, 0xA0AFB27C, 0x324B64B5} } ,
5510 { {0xCC9BC042, 0x905559C4, 0x9785F018, 0x6ED3A2AF, 0x57B9E4D2, 0x91F504E9, 0xFE82DCA4, 0x5164B17E},
5511 {0xF851BA50, 0xF1924DAC, 0xB2508B22, 0x3FBE839B, 0x9E4C1BBB, 0x495862E9, 0xE8D1ED43, 0x6CEBF2D4} } } ,
5512 { { {0x96753C03, 0xC54F8D98, 0x68525DE8, 0xEF746B47, 0x42295649, 0xAAE8110E, 0xF90F8D38, 0x1EBA63A3},
5513 {0x916718B2, 0xA45177B4, 0x7EEBC153, 0x0ADB8E7C, 0x219D293F, 0xD9B7DC9C, 0x498A0691, 0x5C8C4DDE} } ,
5514 { {0x5AEA443E, 0xE6F924F1, 0x809D2116, 0xD32ADB06, 0x165FB093, 0xCB5C4ACC, 0x60FFAB0C, 0x673C8FBE},
5515 {0x5644C6B7, 0x15ED09FA, 0xF09F0E8E, 0x27EC513C, 0xD64D2B80, 0xE393F8BC, 0x20A3FCC0, 0x3321018F} } } } ;
5516 static const bigint_t var_b = {0xCF192285, 0x62A941C6, 0x2D0DA609, 0xC1717F69, 0xA029CEC0, 0x887FDE60, 0x8650F9D5, 0x6A0CF1EB};
5517 static const fp12_t var_expected = { { { {0xB6CEA551, 0xC451F2E6, 0x9EBCFAA7, 0xE4E709C3, 0x1B46B6BB, 0x902283F1, 0xFDCDC7A8, 0x3B39EC03},
5518 {0xAF397362, 0xE9B7AC7B, 0x056FEB10, 0x0EE93346, 0x8918FE14, 0xCBE8DDCA, 0xED1B7C2D, 0x7295179D} } ,
5519 { {0xD6E03304, 0x3649E624, 0xAFE8FC96, 0x545C5C7A, 0xF0A8EE92, 0xB14670A9, 0x4CEFBA6D, 0xAA2A4CCF},
5520 {0xF61317F5, 0x8C9161D6, 0x3A76123D, 0x908AF4F5, 0x0C46B77B, 0x0D8B2059, 0xA9298E2F, 0x9BB9C3DA} } } ,
5521 { { {0x8ADA1FA2, 0x0A4F85B3, 0xA790BF3B, 0xC0AC7DF9, 0x0E804BAD, 0x292B2703, 0x4CB6A903, 0x2A68AF77},
5522 {0x17D6812A, 0x6CD10B1B, 0x244B5A3F, 0x08794C97, 0x93D4822F, 0xFA079C27, 0x71EA8ADE, 0xA75FF138} } ,
5523 { {0x05B2B28E, 0x16126C6B, 0x7FAABACC, 0xF7B4F59E, 0xC0EA6FAE, 0x7029150E, 0x73A2ACF8, 0x496B302C},
5524 {0xF363ED4E, 0xE7272B46, 0x3AF1D2FF, 0x1FAC3B20, 0x61AC5C0B, 0x9837E06D, 0xE9727BBA, 0x83BF7743} } } ,
5525 { { {0x435F21C8, 0xCAC7E3CA, 0x19AB9A61, 0x8EBBB383, 0x267733D3, 0x361EAF0B, 0x66561611, 0x01C4C7DE},
5526 {0x8459C55B, 0xF804986A, 0xF424FB85, 0xEC28F84A, 0x0BBCD814, 0xB332F8C5, 0xE2755C9D, 0x02FE14D0} } ,
5527 { {0x35ACCF52, 0xAF6FAC4D, 0x6CA3E049, 0x386FAB9C, 0x341BE591, 0xE735DD7D, 0xE0AED08F, 0x2A9F499A},
5528 {0x14EB00C3, 0x66B2357E, 0x5833D58B, 0x9E63E8D1, 0x2AD4F941, 0x54A4EF29, 0x8389AC5B, 0xB1766073} } } } ;
5530 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2445 a000");
5531 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2446 a001");
5532 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2447 a010");
5533 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2448 a011");
5534 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2449 a100");
5535 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2450 a101");
5536 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2451 a110");
5537 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2452 a111");
5538 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2453 a200");
5539 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2454 a201");
5540 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2455 a210");
5541 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2456 a211");
5544 static const fp12_t var_a = { { { {0x342B773F, 0xC0BE9871, 0xF7A7FA3F, 0x193ED011, 0x8F3B971A, 0x0588755B, 0x4DCD103A, 0xB317EDEC},
5545 {0x094CD2B0, 0xC9720FA0, 0x36D678E8, 0xA37A5F3A, 0xEC8F112D, 0xA097D52D, 0xD48D244C, 0x13225BCC} } ,
5546 { {0x9322DE9A, 0x997573C1, 0x8142627A, 0xFBF15FB3, 0x729F1AB6, 0x8117EEEF, 0xB811616F, 0xA3AEB1FF},
5547 {0x08D148E1, 0xB7D6F786, 0x08FCE060, 0x2F3E4259, 0x926E4084, 0xD8501AA0, 0x490DE9E1, 0x3C967AF9} } } ,
5548 { { {0x2452CADB, 0xCC999546, 0x145B1ED1, 0x7F3BDFC8, 0xD5BF61D5, 0x284A8756, 0x989DBAAE, 0x7A93933D},
5549 {0x0B22A900, 0x58973F24, 0x4E5685EA, 0x5E26EC11, 0x3792E389, 0x9CC35B6D, 0xAB5C1CCC, 0x7D690D85} } ,
5550 { {0xEA43AFF9, 0xE3A10C2A, 0x0D03E5C9, 0x3DC2696D, 0x60637A91, 0xBA37C418, 0x611195D9, 0x53473228},
5551 {0xBD9EF844, 0xA9F9BD0B, 0x5E4529CA, 0xD5ABA970, 0x8784EFB0, 0x1FBFEBEE, 0xF65E9CFB, 0x9DAC54E8} } } ,
5552 { { {0x66AEA2E6, 0xB6B93F85, 0x84880626, 0xC6A4B87C, 0x9E9D9822, 0x67086A32, 0x88BBA574, 0x847FEFAC},
5553 {0x596063C3, 0x9BC89E87, 0xA95F20DF, 0xFD61951D, 0x73093A39, 0x6ED0B6E3, 0xD3CCB0EF, 0x53184DCE} } ,
5554 { {0x5033BBFD, 0xF535950D, 0x0CACA5AC, 0x358B23CB, 0x1BF3226D, 0x33528751, 0x206BD469, 0x426E6D39},
5555 {0xE97DE9E5, 0xBB7261BE, 0x57484E32, 0xF4ED9067, 0x209205F7, 0x30226AAA, 0x60FCF381, 0xB3FB4826} } } } ;
5556 static const bigint_t var_b = {0x9D7AF728, 0x69AE9F6D, 0xDC294AFD, 0xA526A76D, 0xCB92E96F, 0x0BBAD4FD, 0x79B0BD84, 0x79853082};
5557 static const fp12_t var_expected = { { { {0xC177D5CB, 0x8FAF9670, 0x1C532CD9, 0x3C4F0714, 0x0005F032, 0x3140957E, 0x5EF50512, 0x4D76F705},
5558 {0x3FC3E56A, 0x68A7934A, 0xA17D7F3F, 0xD05D17BE, 0x79506A54, 0xDA317A9E, 0xD0012627, 0x632F36FD} } ,
5559 { {0xD57ABC4F, 0x1E490078, 0x4FB239A3, 0xFFC5D934, 0x9E713163, 0x6DAE1D93, 0x8913ACD3, 0x32E30E00},
5560 {0xFC9CB59E, 0x8170AA53, 0x2752EAAC, 0x7F2BACC7, 0x466CAC5C, 0xD9975D5C, 0xC63EA409, 0x3ADBB6F9} } } ,
5561 { { {0xE2453421, 0xF5AA7F8E, 0x6B28FF70, 0x72C650A6, 0xBD597A65, 0x0C73C468, 0xE081EE36, 0x28A00338},
5562 {0x42B48045, 0x5E9A635E, 0x45AD00C6, 0x961194B6, 0xFAF21B00, 0x8DB2779F, 0x4C07FCDC, 0x0159262D} } ,
5563 { {0xB2DB2DFF, 0x6AF0ED1F, 0x395F20F0, 0x9CF5B4B4, 0x551D5719, 0x2F7A0CF6, 0x94E48113, 0x9CC1E2FD},
5564 {0x7ED8211E, 0x177F74B2, 0xE29E6C71, 0x23DFBFED, 0x7640883B, 0xE40E2F2E, 0x4C83DE3E, 0x6A907428} } } ,
5565 { { {0x23903448, 0x4A7460DE, 0xDD4D2AB9, 0xA662B4F1, 0xE380CDAF, 0xF0ED58EA, 0xA3576944, 0x0C81697A},
5566 {0x2E52DC87, 0x2F6954E6, 0x6F9E4632, 0xA06EF36A, 0xAAE8F561, 0xEBC8D353, 0x7AAB571E, 0xB5D0A0FC} } ,
5567 { {0xCE9FCC24, 0xD2138BEF, 0x7F9D24DF, 0xCB5867C5, 0x4714A461, 0x1C170911, 0x90E1FADD, 0x7281F6CA},
5568 {0x330C5FA7, 0x9E67FE79, 0x0221FF5D, 0xCA85CCFB, 0x6AA46A32, 0x45BE410F, 0x214784EC, 0xA5AC783A} } } } ;
5570 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2457 a000");
5571 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2458 a001");
5572 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2459 a010");
5573 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2460 a011");
5574 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2461 a100");
5575 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2462 a101");
5576 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2463 a110");
5577 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2464 a111");
5578 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2465 a200");
5579 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2466 a201");
5580 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2467 a210");
5581 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2468 a211");
5584 static const fp12_t var_a = { { { {0xD3F76FC8, 0xC74994B1, 0xE47D6982, 0x8C11972E, 0x5E078521, 0x6587408B, 0x003C5BFE, 0x1D9B1B36},
5585 {0x59BA9D41, 0x000599B9, 0x106F0AC7, 0xDD3FB06C, 0x4BDEF881, 0xCB76A4EA, 0xA85E9341, 0x92B7EAC8} } ,
5586 { {0xFEDAD057, 0xE6932F50, 0xCE137396, 0x15749969, 0xA4FC4CB7, 0x36989B71, 0x54B19EDE, 0x0DE963E9},
5587 {0xB40E1508, 0x56343BB7, 0xC122B2BF, 0xE058FAAF, 0xE4E0A4E9, 0x3EE02330, 0xC36E236C, 0x8D1C39A8} } } ,
5588 { { {0xECE593F7, 0x4C85C19D, 0xC6B711DB, 0x0C2C77E7, 0xBA670ABC, 0xC339C103, 0xBA00DB1C, 0x6351A73D},
5589 {0x016FB4B6, 0xECE555E0, 0xF82F8A50, 0x332C2BD8, 0x08E61B86, 0xA1D8DBBE, 0xB78F24DC, 0x5566DF35} } ,
5590 { {0x58202264, 0x171C51AE, 0x567530EC, 0xAF77E91C, 0xB24749CC, 0x7CE8AEAF, 0x20FF0547, 0x139A8122},
5591 {0x13FA3D2B, 0xA0C85DEC, 0x4E893FCD, 0x798DE090, 0x3152A6B5, 0x592B6826, 0x82772CB2, 0x596C6A8F} } } ,
5592 { { {0x403CCB7D, 0x07724BCA, 0x0E39F7EC, 0xA3A2DC59, 0xAC3A3E6F, 0x6D554F7E, 0x8A2B0245, 0x52FC370D},
5593 {0x9411F58B, 0x8A16125B, 0x77508B2B, 0xC4829752, 0xB20C6EE9, 0x729E4046, 0xCB2BF2E7, 0x6765B595} } ,
5594 { {0x7DF8BCC1, 0x8AA27EB6, 0x73FF70F2, 0xA79BF446, 0xD86FEC4B, 0xD570ADD2, 0xB0844B70, 0xA202FABB},
5595 {0x0CFB13CF, 0x7D55BA26, 0x88904710, 0x58E70DBB, 0xFEA77B5A, 0x2D1113A8, 0x442D8737, 0x0F0D08F7} } } } ;
5596 static const bigint_t var_b = {0x19664BE0, 0xEA68CB77, 0x6CF3DFD4, 0x236C5A7E, 0x0AAE5ECA, 0x86C74860, 0x02E2B688, 0xE116D581};
5597 static const fp12_t var_expected = { { { {0x7A451A14, 0x0D61ACFC, 0x3085DB98, 0xF894F14B, 0x9D569E9A, 0x782AB0E5, 0x365E4663, 0x324E84D4},
5598 {0xA6C1429D, 0xF605565A, 0xBCB9A904, 0xF07E6860, 0x56385F3A, 0x13111402, 0x41ACB5BB, 0x60A669B0} } ,
5599 { {0x8A3ACAE4, 0x2E5E0D0A, 0x68A7EFE5, 0x36F61CE6, 0x533F4D04, 0x974714AC, 0xBC1E43D8, 0x65591907},
5600 {0x8056D06D, 0xAFA1DECE, 0x9DC36DBB, 0x4A40A413, 0xA7B1C2F7, 0x73806C42, 0x28B7F4FA, 0x723E149B} } } ,
5601 { { {0xCDE3C6DE, 0x8A2600CD, 0x7509A5F6, 0xB2E6A637, 0x6DBE0882, 0x93D0C318, 0x02709686, 0x84D4AC0A},
5602 {0xB4781A4C, 0x98E60E06, 0x8B4D0C78, 0x97C8E53B, 0x7830368C, 0x25643110, 0x99479DA4, 0x28D8DEAF} } ,
5603 { {0x0FD77CB0, 0x1D66F742, 0xCC5892C7, 0x997F4B78, 0x3895A27B, 0xE40C2AE0, 0x96D72D3B, 0xA6D625AC},
5604 {0x0D64874C, 0x31B49541, 0x368BCF3E, 0x4F7BB7AA, 0xFE20F05B, 0x5D01FB0B, 0xBD212EBA, 0x37D17F69} } } ,
5605 { { {0xB931D2F5, 0x5FF4E429, 0x9FE1D84A, 0x904B2F47, 0xE68367B1, 0x7628E4C3, 0xF5E0D0BE, 0x877E9942},
5606 {0x709BB947, 0xE63E1AE1, 0x2AFA088F, 0x7C0A64B4, 0x1AC60CDE, 0xECFF36F9, 0x116B6965, 0x5C950A1C} } ,
5607 { {0x80BE58A7, 0xE690C1A9, 0x56D66521, 0x7FE84013, 0x47CEA139, 0xC1977628, 0x40E1CEE4, 0x3CC1BA5A},
5608 {0x95A12EB3, 0x905B3D43, 0x3EC60682, 0xAD0B0C0B, 0xBD664385, 0x7E729F79, 0x630888C3, 0x8970CE4A} } } } ;
5610 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2469 a000");
5611 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2470 a001");
5612 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2471 a010");
5613 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2472 a011");
5614 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2473 a100");
5615 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2474 a101");
5616 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2475 a110");
5617 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2476 a111");
5618 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2477 a200");
5619 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2478 a201");
5620 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2479 a210");
5621 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2480 a211");
5624 static const fp12_t var_a = { { { {0xBD7B8DF5, 0x5B0F71E9, 0xC14737CE, 0xCD2D458F, 0x94063AF6, 0x42154635, 0x6921EC06, 0x59662F33},
5625 {0x7A99E1F0, 0x6000CE1D, 0x2133D9CC, 0x105CF214, 0x6928BF88, 0xCCE99A6E, 0x9999FBAD, 0x704134F1} } ,
5626 { {0x88DD603C, 0x16F7152C, 0x1A3A57DF, 0xF1C89017, 0x3E635B19, 0x2C260D0B, 0x5A731209, 0x28FF7EE6},
5627 {0x6F382D44, 0x62D18C9D, 0x905ADD92, 0x6A5D70EC, 0x761C4862, 0xEEA8A121, 0x55CC4D88, 0x96FDF8BB} } } ,
5628 { { {0x2CEB7589, 0x2A8CAEC2, 0x97910000, 0x26AA9FA0, 0xE6518EA0, 0x91B1A619, 0xC4E44363, 0x32259168},
5629 {0x92D06D9B, 0xC1E367C4, 0x2641C14B, 0xE94AAB23, 0x63A6CAAB, 0x6D357D1F, 0xBD278A1E, 0x1227BC33} } ,
5630 { {0x4292B2EE, 0x54CD9F11, 0x069DF733, 0x23F4C2A1, 0x623532B1, 0xDE84F55D, 0xA9341E6B, 0x808BBD39},
5631 {0xE6B922CA, 0xCBBF9816, 0xCB476765, 0x564850CF, 0xCAD6EDED, 0x626BA7B5, 0x8A80CD62, 0x26EDDF76} } } ,
5632 { { {0x61830EA4, 0xC7F00ED5, 0x830D2551, 0x5D2FC3E3, 0x190F9EE2, 0x4409B090, 0xFF0192E3, 0x247B486D},
5633 {0x4A70FF6C, 0xCC58B40E, 0xDE3819A7, 0x082B877D, 0x17D3248B, 0x8DF55C80, 0x7C269336, 0x43F1F053} } ,
5634 { {0x9D8D8E17, 0x0F6A9B78, 0xE771E2D5, 0xAA556470, 0xD096357A, 0x591188EC, 0x3C8C69F9, 0x363B32BD},
5635 {0xBAFB1D39, 0xAE93EE4D, 0xF8080EC5, 0xD3F3B639, 0x999FB842, 0x9EA27395, 0xC266FED4, 0x214564E7} } } } ;
5636 static const bigint_t var_b = {0x909DC84C, 0x502239B0, 0x030492DD, 0x0B5B3F5C, 0x268E10A0, 0x1672DD26, 0x16C947B6, 0xB6418EF2};
5637 static const fp12_t var_expected = { { { {0x6AB92545, 0x8A00EE60, 0xC309A6B4, 0xC7A9C4FC, 0x6285BD74, 0x878C35FA, 0x4E361A03, 0xB055B9F3},
5638 {0x41BC8368, 0xC74ED4E4, 0xA4F46589, 0x5194444B, 0x68C85826, 0x28BD3040, 0xF7A3F6B6, 0x2910D14A} } ,
5639 { {0xDF13A5B0, 0xFD080F8E, 0x99E4B83B, 0x0304CE11, 0x440EF723, 0xCB957609, 0x76CB6312, 0x6B31B463},
5640 {0xD45E6811, 0x7B1874D9, 0xEB5CF47B, 0x6CBF25D6, 0x3CD0E3A9, 0x41813E3A, 0xA0D98ABC, 0x89DF5271} } } ,
5641 { { {0x635FCA0D, 0xE9571A7D, 0x2DEA8BF8, 0xFA53CED6, 0x2C714B3A, 0x4ADF1774, 0xC4053F3B, 0x0026CC62},
5642 {0xD55A4397, 0xACE695E1, 0xE9E2342A, 0x802B8FD5, 0x1933DD65, 0x8614E12A, 0x2B804E9B, 0x6C97E4DD} } ,
5643 { {0x54704B80, 0x19634155, 0x776BDAEE, 0x2BDF9C03, 0x6E8D1CD3, 0x5246C557, 0xAC9EEC4E, 0x35D55768},
5644 {0x8A47EE76, 0x11607351, 0x5BA5BA85, 0x1469B29C, 0xFBE723EF, 0x6F03EA6C, 0xB182D85E, 0xB7354B5A} } } ,
5645 { { {0x200C7D45, 0x2EF14F61, 0xEC01C0B7, 0xB8FA8FDE, 0xEF19FE53, 0x92404E12, 0xA8E7C0A3, 0x713D5495},
5646 {0x08E961ED, 0x320B03EC, 0xBD74E6A9, 0x24C91638, 0x4C910A80, 0x7274BA62, 0xD4E9C41D, 0x0914FEB4} } ,
5647 { {0x5E4D86F4, 0x3D54CEA2, 0x21C63CF9, 0x3467797C, 0x83B7D457, 0xF6E51287, 0xA9BF17FC, 0x6807F152},
5648 {0xA56DACE5, 0x7CCBED25, 0x5EA48BB3, 0xD4893F50, 0x82704F3B, 0x951ADB84, 0x0A51A028, 0xAFEBE014} } } } ;
5650 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2481 a000");
5651 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2482 a001");
5652 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2483 a010");
5653 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2484 a011");
5654 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2485 a100");
5655 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2486 a101");
5656 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2487 a110");
5657 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2488 a111");
5658 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2489 a200");
5659 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2490 a201");
5660 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2491 a210");
5661 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2492 a211");
5664 static const fp12_t var_a = { { { {0xADA9F3DB, 0x7B7239D1, 0x96A11D3A, 0x09F9A991, 0x4F5612CE, 0xC5A1B302, 0x590F6075, 0x25BC47B6},
5665 {0xC507534F, 0x04E6CB66, 0x609462F6, 0x6C107237, 0xE7EA4FF6, 0x51F1AAA7, 0xC2E3C1A8, 0x842E4B79} } ,
5666 { {0xAA3A08EF, 0x37722B3D, 0x4C2C6689, 0xE379026D, 0xAB188560, 0x3F3D3D99, 0x3998ECA0, 0x57009FD8},
5667 {0xED591FB5, 0xD71C0C33, 0x4B221B84, 0xB5BBD0C4, 0x3A9C5876, 0xF6988A0B, 0xB38FE967, 0x7C9A61C0} } } ,
5668 { { {0xE4C7F1D1, 0xFB5796E1, 0xA22A1541, 0x5F3B1D78, 0xE4735FD8, 0x4E42624A, 0xD4A868A4, 0x617AEB77},
5669 {0xB879EC2D, 0xD22C2E41, 0x9069AD51, 0x52C56D87, 0x865E9BCE, 0x643BB47B, 0x4D945171, 0x95BB3560} } ,
5670 { {0xF1159F61, 0x9A8030F5, 0xFD005D70, 0x9FC52FCC, 0xB557E440, 0x1F287A10, 0xF82F4AB3, 0xAC8746A9},
5671 {0x7824A8ED, 0x8C7BD4C0, 0x5E87CC91, 0xCB95982C, 0x2CC4089E, 0x221797DD, 0x09D5B4D1, 0x5B80FDAD} } } ,
5672 { { {0xAE0674BB, 0xB5255DB1, 0x487A1ACC, 0xB034D8F3, 0xEFC960A0, 0xEFEE4EAD, 0x4A642B1F, 0x761C6016},
5673 {0x94FB151D, 0x7EE8811A, 0xDF73F2D2, 0x2DB4CECE, 0x33C78675, 0x7A01864F, 0xE107A38C, 0x334FBC0F} } ,
5674 { {0x6C75745B, 0xCE23C5E4, 0xA9954BD3, 0x453A8824, 0x75A2AE87, 0xC2356C7A, 0xAC76E3FA, 0x4CC4D2A1},
5675 {0x3CDCD623, 0xDE413C39, 0x2DA04E3B, 0xB803F08B, 0x7B7901EA, 0x41DAF9CD, 0xEEEE3F67, 0x10762CDE} } } } ;
5676 static const bigint_t var_b = {0x61BB0C0E, 0xE7442558, 0xBCDBBCD7, 0x70E13803, 0xBE75A2EC, 0x7F1EB1BF, 0x5E781DD6, 0x145083C3};
5677 static const fp12_t var_expected = { { { {0x4F610DEC, 0x364C691E, 0xF5308571, 0x2B825CD4, 0x39FC9B5D, 0xE68D2EC9, 0x42796B10, 0x07E3C11E},
5678 {0x510CE961, 0x69E2906D, 0x3FC684F4, 0x843E74F3, 0xFE4FF803, 0x15BE2A22, 0xA3FE8340, 0x39979BCF} } ,
5679 { {0xFC3E1155, 0x99B06C1D, 0x9380186E, 0x7FBB2A44, 0x3FE97884, 0x3E2B4F90, 0x71CECE97, 0x542FA1EC},
5680 {0x366BFECD, 0x796B4973, 0x71A62443, 0xF204CB9A, 0x207795A4, 0xB4101A94, 0xCD7118A1, 0x0BCCC9A8} } } ,
5681 { { {0x74C8BCBB, 0x5BC2881B, 0xA3DD23E8, 0x8B682904, 0x980FD0D0, 0x9ED41F3D, 0xFC734BDD, 0x18D21419},
5682 {0x9FB78719, 0xC6B5B048, 0x33013BEE, 0x4B45B620, 0x0223D9ED, 0xD115567A, 0xC94190BD, 0x109084D6} } ,
5683 { {0xF95DF751, 0x50B001F1, 0x43661859, 0x503878A1, 0x182115BE, 0x26FE9A69, 0xC4F0C8FB, 0x6585C762},
5684 {0x260270F4, 0x5C3A7B68, 0x5FEDFEB8, 0x93CAAB4E, 0x842297B0, 0xD3410C59, 0x9E249933, 0x5AB782D2} } } ,
5685 { { {0xC00629FC, 0x181A1A1C, 0x265A193F, 0x97901BE7, 0x16ED9840, 0xC7DC9F2D, 0x9FC27019, 0x90FE9C7B},
5686 {0xD9D577F2, 0xC974641D, 0x3F2E3398, 0x096D6933, 0x4835F6A8, 0x3D3D5045, 0x233F784B, 0x2730D394} } ,
5687 { {0x11F7DDE2, 0xB7978E81, 0x6EDEE5D8, 0xFF3C92ED, 0xB9C9B1FD, 0x37BF4379, 0x5A31EFE1, 0x43F70992},
5688 {0xE2406A48, 0xEFEBE303, 0x2A057DFF, 0xED8A83D3, 0xBC5B46C2, 0xDA6FE28F, 0x1DB5574D, 0x170CB7CA} } } } ;
5690 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2493 a000");
5691 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2494 a001");
5692 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2495 a010");
5693 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2496 a011");
5694 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2497 a100");
5695 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2498 a101");
5696 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2499 a110");
5697 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2500 a111");
5698 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2501 a200");
5699 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2502 a201");
5700 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2503 a210");
5701 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2504 a211");
5704 static const fp12_t var_a = { { { {0xEDF2B7BF, 0x442F0C6B, 0xDE536825, 0x2DC874A7, 0xE28C7E36, 0xE9E1BA23, 0x16B7871B, 0x0A90625C},
5705 {0x1C11F2F1, 0xC8DE26C6, 0x8D992A0B, 0x916FE680, 0x2630A11F, 0x74F9701D, 0x9B1D41A1, 0xA08914D7} } ,
5706 { {0x0F9DFCFD, 0x5409A9F8, 0xE7507CEC, 0xC6BE4D5A, 0xE8D901C7, 0x4EB0C72F, 0xC62DB2E9, 0x00176A1A},
5707 {0x53AB2DF7, 0x06B73EAE, 0xBE5666C4, 0x15C7504A, 0x93488AFB, 0xAFD7918C, 0xCC2D340B, 0x46322EF5} } } ,
5708 { { {0xFF91A08A, 0xE22BF86A, 0xC5764CE7, 0xB3F793AF, 0x725470EB, 0x2A86CFDC, 0x0C5292AE, 0x43B1C8EE},
5709 {0xF88502AC, 0xDC05D0EA, 0x0093971F, 0xBCEFE162, 0x29110FEC, 0xD4EEF5FA, 0x49A2E2DC, 0x05D9B482} } ,
5710 { {0xE98AA55D, 0x70499EC8, 0x18AFCA99, 0xD71A5020, 0x01F32A52, 0x6C1AA882, 0x709C9700, 0x016FDBE8},
5711 {0x83DD880C, 0x909A0801, 0xA5860C14, 0xA278EB3D, 0x059B6D68, 0x5663C5D5, 0x6044FA6B, 0x395691AF} } } ,
5712 { { {0xC36D3C16, 0xA61367A6, 0x9262A8E4, 0xA9ED1602, 0x80FB876C, 0xA6A5D2FB, 0x29A4D7E5, 0x8AEE43A8},
5713 {0xCDDA7F57, 0xE0602B31, 0x1B8C2145, 0x53343EC2, 0x99390B50, 0x36820B73, 0xE406E60D, 0x10D3A7C5} } ,
5714 { {0xCA4CB0C0, 0x79BB8B60, 0xBE7FF972, 0x4D0EFED5, 0xC94C90F0, 0xE7CFBC26, 0xFA612F98, 0x85BC7B48},
5715 {0x5BE815CB, 0x417E9DC4, 0xDB7D7E7F, 0xF4278F04, 0x3F76A97E, 0xA7F96691, 0x6E94FA00, 0x9C7D3FCF} } } } ;
5716 static const bigint_t var_b = {0x81CFC735, 0x5E9A2AE9, 0x270959F2, 0x2A3DCA59, 0xC3AB4E0F, 0xA7226563, 0xB7D1FF51, 0x97270C3B};
5717 static const fp12_t var_expected = { { { {0x323C89D9, 0xF1B277D2, 0xB73464CE, 0x1F1D9E67, 0x86782BC4, 0x76872B0D, 0x71065CAF, 0x7D3E6BBC},
5718 {0x6FF06049, 0xC14DA5D1, 0x374D421D, 0xEF04B07C, 0x5D63DF3F, 0x5DC5E31E, 0x6A5A3100, 0xB0F7F91B} } ,
5719 { {0x3583105F, 0x87D37FA0, 0xBC873B45, 0x639FE7BE, 0x81D81C5D, 0x02E4C8A2, 0x3A9528D1, 0x7DBCB611},
5720 {0x05A9A54E, 0x62AF5287, 0x7CE0DEAD, 0x59BDA178, 0xF99D6E85, 0x8DB6B657, 0x6436E6CD, 0x47D380E0} } } ,
5721 { { {0x0FC6A88E, 0xBA7455D7, 0x920EE737, 0x2416A172, 0xCEB1E66F, 0x274343D0, 0x10E17585, 0x58212048},
5722 {0xC3479CB7, 0x1772D342, 0xE2CF358C, 0x5E23DDF9, 0x97C94C8A, 0x4231BAE5, 0x8B9CA0D8, 0xB125CBD3} } ,
5723 { {0xFAB4F835, 0x773EEDF6, 0xBE95A385, 0xFA6BC8AB, 0xAFD64368, 0xA1F3BD1B, 0xE9C61E55, 0x53548A65},
5724 {0x10DD1235, 0xB3985EBB, 0xC0E5E5D3, 0x80F2E02C, 0x419BE9D4, 0xB4D801E2, 0x6A7C752E, 0x20CE71DD} } } ,
5725 { { {0x74CEE676, 0xF579F41F, 0x9026B79B, 0x0A99CB08, 0xE1F74F14, 0x1886A9AE, 0x569781FC, 0xB0CAA53D},
5726 {0x4C2E3027, 0xA9DF9410, 0x6054796C, 0x974EE1BA, 0xAF157EEB, 0xAC40E54C, 0x3F0C53F3, 0x4EBEE60F} } ,
5727 { {0x7F81C18F, 0x37AA0315, 0xFE7386BB, 0x027813D9, 0xB223C6A8, 0x2E6A1849, 0x892510C1, 0x68F432D6},
5728 {0xF27BCDC6, 0xD4974AB4, 0x186D6631, 0x3E412400, 0x92FC8867, 0xEEA38717, 0x89ED27C0, 0xB96A1053} } } } ;
5730 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2505 a000");
5731 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2506 a001");
5732 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2507 a010");
5733 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2508 a011");
5734 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2509 a100");
5735 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2510 a101");
5736 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2511 a110");
5737 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2512 a111");
5738 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2513 a200");
5739 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2514 a201");
5740 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2515 a210");
5741 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2516 a211");
5744 static const fp12_t var_a = { { { {0xD1198735, 0x2D05BFD1, 0x6E46F0EA, 0x13D309B0, 0x25A5FD1A, 0x634C7806, 0x267D4659, 0x6DF350B5},
5745 {0xEF0F1953, 0xD880BF0C, 0xF320F5E8, 0x7EFC8984, 0xB6A13254, 0x0F74E74F, 0x07DE94AA, 0xA9152EF4} } ,
5746 { {0x1C282472, 0x05017AC4, 0x7297E200, 0x8136B487, 0x6E0F3169, 0x247F5BA2, 0xBD48DCEE, 0x164B1AA5},
5747 {0x3ED21025, 0xCFCFB9FD, 0x8F30595E, 0xBF338F88, 0x7F7EFB06, 0xF6825BA1, 0x5E8102A5, 0x75B9510C} } } ,
5748 { { {0x01D7260F, 0x1A27CE39, 0x6291F6C6, 0xB30D270B, 0x51C7B97F, 0x564BC0BE, 0xA0FD5903, 0x21605837},
5749 {0x9F00B447, 0x26CCA08C, 0x79359713, 0x05C66415, 0xC6507FF6, 0x44496AA0, 0xC4AA7100, 0x167A7AD3} } ,
5750 { {0xDED55124, 0x3DED1AF1, 0x153E3186, 0x5AA7464F, 0x0AD0CB21, 0x0E54C468, 0xDCFEA5CE, 0x9DAD1BBB},
5751 {0x7C2E60B0, 0xD5692513, 0x9B33C102, 0x95E9DEC1, 0x3B44A10A, 0xF83B56F1, 0xC7461056, 0x35E99D97} } } ,
5752 { { {0x595D2CB1, 0x394BEC7B, 0x5B195795, 0x6F03E794, 0xD5029CD1, 0xE92EE8C4, 0x284950DA, 0x70C097DE},
5753 {0xE45C5A0A, 0xD66A2B40, 0xF20DE1C6, 0x05AEF263, 0x1265DA33, 0xF19F4C15, 0xC09B01F2, 0x6760EFF9} } ,
5754 { {0x60044416, 0x6ABAEB54, 0xB479BB5E, 0xDF156055, 0x5757D7CB, 0x10DE6D07, 0x0FBA9407, 0xB461FE50},
5755 {0x64F1F614, 0xA5DF81F7, 0x686D2752, 0xF7D7EA02, 0x9B89C533, 0x32B9489A, 0xE155E7BB, 0x8D26FD58} } } } ;
5756 static const bigint_t var_b = {0xF7CBD369, 0x4C9A0DCF, 0xC7A184EE, 0x5506C577, 0xFD1FD86B, 0x192C2975, 0xB3766CB9, 0xE2AB2BFD};
5757 static const fp12_t var_expected = { { { {0xDBC81841, 0xC9924839, 0x5CE4A5D1, 0x54DA2B12, 0xF2490610, 0x0CF108DF, 0x67E4BDB2, 0x4C0AE6BF},
5758 {0x0BC71EF1, 0x9D6A70A4, 0x98EF6C82, 0x872794B2, 0xB98A982C, 0xBBCC83F2, 0x4A1F4C42, 0x90682CE3} } ,
5759 { {0x25E91835, 0x27739665, 0x26F98415, 0xDD1B308B, 0xAFAE35D0, 0x4F4E44DB, 0xA61910F7, 0x13C9749B},
5760 {0x9D1B152D, 0x1662B491, 0xD83C5837, 0x70F6D695, 0x9722E508, 0x9853C9AE, 0xEF9FB504, 0xA581C6E1} } } ,
5761 { { {0xFD911E38, 0x7919C86A, 0x0AE41B69, 0x2F0F9DB9, 0x0A77AC6E, 0xAAEA8B3C, 0x3E209F8C, 0x3A232886},
5762 {0xCD269EFC, 0x8B5CDC5F, 0x58F15BF7, 0xD638E39A, 0x724B46BB, 0xDA4321FF, 0x11B1ACF5, 0x4B06B419} } ,
5763 { {0xC79C159E, 0xF254085B, 0xBC7B84DF, 0xE596D9E0, 0x5ED07A2D, 0x020B93B4, 0x0E5191BB, 0x51C7C269},
5764 {0x93C7B31F, 0xD8157648, 0xC4C2E698, 0xBC453BAA, 0x7B807513, 0x9399BE80, 0x24ACFD7E, 0xA76D53DC} } } ,
5765 { { {0x310AF8AB, 0xA888527B, 0xD7ACA9DA, 0xE3756845, 0x1BB2A12C, 0x0C4051A3, 0xFD6AE24C, 0x2F7A1FE3},
5766 {0x52442935, 0x854BB612, 0x43852E0B, 0x9DBCF270, 0xB4918834, 0x62A97E8D, 0x972107D2, 0x9F91C8D3} } ,
5767 { {0x58CFA358, 0x0B73D1BA, 0x0619EA36, 0x324C6B68, 0x9DD394B6, 0x518A6C28, 0x381B63E9, 0x9203C0B4},
5768 {0x0B95B74C, 0xE796B54A, 0x9F222EE1, 0xB3215A85, 0xDD25B7D3, 0x9051300E, 0x23C89357, 0x9EC99AE0} } } } ;
5770 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2517 a000");
5771 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2518 a001");
5772 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2519 a010");
5773 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2520 a011");
5774 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2521 a100");
5775 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2522 a101");
5776 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2523 a110");
5777 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2524 a111");
5778 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2525 a200");
5779 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2526 a201");
5780 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2527 a210");
5781 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2528 a211");
5784 static const fp12_t var_a = { { { {0x8BE15059, 0x1CF98DBF, 0x4749A611, 0x09CD388E, 0x616F0505, 0x5EE90FA5, 0x8753A956, 0xA8AD67EE},
5785 {0x611A95A0, 0x2FADD2D2, 0xCDA38962, 0xBEBB3C70, 0x8D255BA1, 0x77D602EC, 0xEAFD937F, 0x203589F3} } ,
5786 { {0x0E0A8A23, 0x0853B835, 0x0F648CC6, 0x45F417F1, 0x12F69501, 0x3ED8492C, 0x7E2C2F49, 0x336E988F},
5787 {0x163FD2BD, 0x28D8A6DF, 0x63B65178, 0xF791C6C0, 0xAD06C75B, 0x0590F676, 0x29427F74, 0xA9169528} } } ,
5788 { { {0x8EB0F240, 0xBA888B79, 0xB27EDA1A, 0x1BA44C5E, 0xDCF90234, 0xFEAEF576, 0x6EBA1289, 0x8A5D09FB},
5789 {0x1112BF58, 0xF661E7AB, 0x0EDC711C, 0x8A4DAA6D, 0x635A3F91, 0x6B52EF72, 0x79D4ED42, 0x22DF6D68} } ,
5790 { {0x48A4D363, 0xEB450AA3, 0xE6738DF8, 0x7D7FF805, 0x829CFA18, 0x595A5147, 0xA30FB75F, 0x9071EDC5},
5791 {0x41A7A072, 0x2AE87D3C, 0xE19D49EE, 0x14111953, 0x972D73FD, 0xBF16F30F, 0xC7CBC671, 0xA8A3D7D9} } } ,
5792 { { {0x1965C653, 0xB5F618B9, 0xAD063A73, 0x14EB0638, 0xEBE53FC5, 0x9EB16BFE, 0xAE266EFF, 0x8FD701D6},
5793 {0xEB8A8B25, 0x49F50292, 0xEB65626B, 0x4D2A11B7, 0x24934D48, 0x952DC252, 0xFDCA489D, 0x8488D980} } ,
5794 { {0x770AC51B, 0x64F1ACF3, 0x94E6C0B8, 0x453FF3A4, 0x91E774D8, 0x197DE610, 0xD671A668, 0x8652F3E3},
5795 {0x8AD1F010, 0xE001F322, 0xE664BC12, 0x19B86DEA, 0x16BE3FF8, 0x8FEE5A0F, 0x72C79DF7, 0x26FB22E1} } } } ;
5796 static const bigint_t var_b = {0x61C1E5D8, 0xA8C8A692, 0x930A7EE2, 0xD1C99BAD, 0x85DF1873, 0x83B61457, 0x16092EA4, 0x19B18550};
5797 static const fp12_t var_expected = { { { {0x38305919, 0x09BC2A3C, 0xD681A74D, 0x7FF03CB8, 0xB843E7D0, 0x55319934, 0xEFF1D140, 0x2F17F6DE},
5798 {0xB51CE3F6, 0x13B9F870, 0x750E6398, 0xBC67BC1F, 0x3471E6FA, 0xB866282B, 0xA781ACBA, 0x98251298} } ,
5799 { {0x8CE160AF, 0xE4FD797D, 0xC926AEDA, 0xFF917116, 0xD2FDD501, 0x0F1B4892, 0xCA9BA95B, 0x337A9B63},
5800 {0xFDC71A08, 0xDF268683, 0x0666AAB1, 0x4220BF1D, 0x0B54E5AA, 0xD3C60253, 0x9F50D691, 0x6D2D04F1} } } ,
5801 { { {0x4FBA8B77, 0x9A019CB1, 0x5D7CF85E, 0x1A3BC861, 0x2FFD015F, 0x0B7FF20A, 0x1C2B8821, 0xAF3CA01C},
5802 {0x2866B1F8, 0x5E4B13AC, 0xD0F11BF6, 0xE43E4167, 0x6B2F167C, 0xA5234963, 0xD00086BB, 0x5E4A8B54} } ,
5803 { {0x684748C7, 0xA4D41CE2, 0xFA6D32F6, 0x36CC8F3F, 0x818E02C9, 0x6B9BCBBE, 0x7A366A81, 0x1F6FB774},
5804 {0xDC37DD60, 0x8FB7BE66, 0x97BE97E6, 0x6FDBA5ED, 0x2A0984CC, 0xB0CD6844, 0x0120B4EA, 0x4344DBBF} } } ,
5805 { { {0x01FE0F58, 0x5D72D6D4, 0x047EA49E, 0xECF0717E, 0x753E9C93, 0xE030EA87, 0x59B10A84, 0xACAF906D},
5806 {0x806C1CFB, 0xFF8A8128, 0xB547B0C6, 0x7D5B4412, 0x5CBFAFA0, 0xC97E6269, 0xC9B20311, 0x035DAB93} } ,
5807 { {0xAF3E11E5, 0x6F52E363, 0x2A20C0A2, 0x716F6A14, 0xE702C40D, 0x16C2C675, 0x50BB786A, 0x158A5D8A},
5808 {0x746CCEC4, 0x8664D849, 0x7FBC4BAF, 0x22019562, 0xA0FF4175, 0xA2433393, 0xEFC8394C, 0x5D3018DE} } } } ;
5810 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2529 a000");
5811 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2530 a001");
5812 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2531 a010");
5813 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2532 a011");
5814 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2533 a100");
5815 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2534 a101");
5816 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2535 a110");
5817 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2536 a111");
5818 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2537 a200");
5819 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2538 a201");
5820 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2539 a210");
5821 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2540 a211");
5824 static const fp12_t var_a = { { { {0x6C4754AD, 0x49AA691F, 0xBC84F09F, 0xD7525C8A, 0xCCB77C81, 0x2248CBB1, 0x9EB95561, 0x467E06F5},
5825 {0x074F219C, 0x7A42C760, 0x780B35F2, 0x467B779C, 0xE5E94568, 0x5DB1362C, 0xA2DD6D0D, 0x2A16D1E9} } ,
5826 { {0x3C708970, 0xEECBF8B6, 0x2798A45D, 0xF78BD51D, 0x164091CE, 0xEA5F91BF, 0x252C5A71, 0x6758DB35},
5827 {0xE26A5244, 0x574C97AF, 0x0ED7F445, 0xAF44D72C, 0xF98A2FEA, 0x21B858C7, 0x13086EF1, 0x24D9D443} } } ,
5828 { { {0xEEA9BCC2, 0x44A05B88, 0x388EF41F, 0x48149D5A, 0x67A208F2, 0xD1D1B6B9, 0xD3676E8A, 0x4C6AE510},
5829 {0x34A44830, 0x3BE9DA3F, 0xFB33C7B3, 0xD99F9391, 0xA7B8A30E, 0x620BAC3F, 0xB6E00F9F, 0x5BB0B26C} } ,
5830 { {0x062F8258, 0xDF82F8D3, 0xC5A4EFC0, 0x443CE759, 0x4F361E6E, 0xB0FDEA47, 0x5C9C1F72, 0x1EB425DE},
5831 {0xCC8C6D81, 0x2E1182A0, 0x4A75F89F, 0x44B80DF4, 0x4A349051, 0x033B1E52, 0x1F6DDE29, 0x0F30763D} } } ,
5832 { { {0xB289227A, 0xAFC7632A, 0xA2858C53, 0x95308DE8, 0xE20E4225, 0x9FA20347, 0x7A0E5768, 0x3B5E004A},
5833 {0x9E808278, 0x325F31E6, 0x8C85D694, 0x45FEF282, 0x7080C5DE, 0xDA807AEA, 0xFD498EBF, 0x3A0F6B50} } ,
5834 { {0x6B9953F0, 0x368BF654, 0xAE9EC287, 0xC0235FD0, 0x12DD1426, 0x8968A5E6, 0xC733D208, 0x4B14F67A},
5835 {0x936303B6, 0x9A6F3AD9, 0x52EDC462, 0xE7E56F2F, 0x416BE78E, 0x3E36B33E, 0x1CD4B7A3, 0x83B16277} } } } ;
5836 static const bigint_t var_b = {0x6EEBBA23, 0x4F24169A, 0x7610A2FE, 0xC033F305, 0x4959EFBA, 0x38925848, 0x5ABB6130, 0x667ECA55};
5837 static const fp12_t var_expected = { { { {0x08E1096F, 0x2EE4D7B2, 0x74A52EF3, 0x8BB7769D, 0xB9A9470C, 0xB26C235A, 0x1310EE3C, 0x3B65AD84},
5838 {0x51897579, 0xDA65E45D, 0x3F6CDE67, 0x5A55F986, 0x1A91EA9B, 0xBC0A4A92, 0x59F1F568, 0x46B8D4E9} } ,
5839 { {0x57E79C0A, 0x0C6101DF, 0x76A264C2, 0xE87AA524, 0x57A513C4, 0x7B03AA53, 0x444C3BE3, 0x9BD91667},
5840 {0x553A7472, 0xA4588DC9, 0x0354F229, 0xBD85E3DF, 0x1322A0DB, 0x819492CD, 0x97843455, 0x2B986A57} } } ,
5841 { { {0xA60CA7A9, 0xBE8FBF34, 0xC1598E26, 0x505DED91, 0xE8B55EC0, 0x69E7DC25, 0xBB818906, 0x66C19CF9},
5842 {0xEB68920C, 0x044EDEDD, 0xD23F8CAC, 0xF6293523, 0x3896F974, 0xE8174478, 0xAB7AADA8, 0x73BD697B} } ,
5843 { {0xC55E0DC8, 0x0E192CFA, 0x2AA9FF84, 0x80CB06E0, 0xB60C2160, 0x65442D14, 0x0D1D6093, 0x775761BA},
5844 {0x1CEA4803, 0x5FB3CFF5, 0xDF2E9028, 0xD186AD8F, 0x596F751F, 0xFE6AAAA2, 0x67A8B4AE, 0x690C5FFD} } } ,
5845 { { {0x058D8B75, 0x4D1E7F70, 0x433B1F07, 0xAD08215E, 0x388E21B3, 0xF7FE7387, 0x1E2F70BF, 0x66C77394},
5846 {0xE1E0EC09, 0x06848AA0, 0xE43A1965, 0x5CE551DF, 0x0F2DEFDB, 0x285723D5, 0x3DF15F70, 0x918F2D48} } ,
5847 { {0xA1C684DD, 0xC4B98380, 0x6ACCD415, 0x2ECE140F, 0xFAC34F65, 0xD9921E45, 0x264BE558, 0x8630BCBC},
5848 {0x1127BB9F, 0xB2602174, 0xED6E2705, 0x3C4CBDF4, 0x90819C3F, 0xD892B0AA, 0x228D7890, 0x1D17DC9C} } } } ;
5850 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2541 a000");
5851 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2542 a001");
5852 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2543 a010");
5853 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2544 a011");
5854 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2545 a100");
5855 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2546 a101");
5856 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2547 a110");
5857 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2548 a111");
5858 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2549 a200");
5859 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2550 a201");
5860 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2551 a210");
5861 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2552 a211");
5864 static const fp12_t var_a = { { { {0x2949E257, 0x253CB5E2, 0x645D5CF5, 0xBC5FAFBE, 0xD09294F2, 0x6CA85E8D, 0xD317D96B, 0x7E3E54F9},
5865 {0xD2F198F4, 0xA9138D1F, 0xA0B83B05, 0x1B6257CF, 0xCAE8E92E, 0x4033CA69, 0x897CA9CA, 0x7F5E9029} } ,
5866 { {0x8DE3D559, 0xB32D6E28, 0x788802CD, 0xFEA5FB5E, 0x912D3562, 0xD48CE43F, 0xF0F612C6, 0x50DAA111},
5867 {0x989A4F47, 0x51281F9B, 0x5673CDC2, 0x6DC8AE77, 0xF563523C, 0x99024819, 0xDF6CBE14, 0xAB810127} } } ,
5868 { { {0xE78738AE, 0xF478D741, 0xCC4768FC, 0xADA5B03B, 0x23766482, 0x3A07A68C, 0x18B8C53C, 0x0690C271},
5869 {0x3D11CB6F, 0xA8F661FD, 0x7ABEAE2B, 0x47DE3459, 0x28ACB521, 0x45FFC129, 0xF6A0874D, 0x0DDF6935} } ,
5870 { {0xACB8AA0A, 0xE45D2D53, 0x3F971AB4, 0xDB7BFFE1, 0x3854D801, 0x799F9032, 0xD33ACDF9, 0x9115DBF5},
5871 {0xDF7956C3, 0xC6182600, 0x305F4BFD, 0xDE7466BF, 0xAEA94656, 0x0A4A1E69, 0xAED03B41, 0xA1187165} } } ,
5872 { { {0xB905210B, 0xF38FCB59, 0xEB15F442, 0xCEE4A442, 0x714EB5C8, 0xD5FCD5EC, 0x46FBDC4C, 0x2839C413},
5873 {0xD2B8CD81, 0x3BB21502, 0x174D0D06, 0x7D28D107, 0x34BF4C4D, 0xF7DB753A, 0x264B8EA8, 0x03498813} } ,
5874 { {0x644DFA58, 0x7D047024, 0xC1E8887B, 0xAB31FA1B, 0xBEE2141F, 0x9B68FEDE, 0x9C459B64, 0x2E5D4106},
5875 {0xDFA3DA4F, 0x30FC7618, 0x43918739, 0xB3565066, 0x1A4175D5, 0xE2EBE769, 0x6C83E7A4, 0x3B108691} } } } ;
5876 static const bigint_t var_b = {0x628DE3A1, 0x82A5A9B4, 0xCF503FAA, 0x0BCA4BB3, 0x8C728C3E, 0xAF7A1251, 0x2C319D98, 0x78E0D199};
5877 static const fp12_t var_expected = { { { {0xB5371371, 0x468FFF40, 0x1B0FC38A, 0x1B3A72BF, 0xB9BE8750, 0x03BF743C, 0x1A7607C4, 0x71667F67},
5878 {0x718DFFA6, 0xA491B43D, 0xF10D00CB, 0x13E928B9, 0x2BE249E6, 0x4C94C0AE, 0x298B7A6A, 0x9DA6900A} } ,
5879 { {0xD52E120F, 0xD50724E8, 0xADDFD2E3, 0x955AAF87, 0x777509D1, 0x409ABAF6, 0x0341B280, 0x640DE826},
5880 {0x11F58FF2, 0x7DF20102, 0x57E311BA, 0x9A527712, 0xBDCE1445, 0x1BE11463, 0x78E60CE7, 0x9C771A43} } } ,
5881 { { {0xD34E921E, 0x0511865F, 0x51229DC5, 0xB88976D0, 0xC3B92742, 0x8BB50C21, 0xB0C33651, 0x511EE044},
5882 {0x8ECE4DA8, 0x59FB726E, 0x37FFA898, 0x657464DA, 0x4A32C6E9, 0x9B4B2842, 0x16AFEAC6, 0x4E808F16} } ,
5883 { {0xFC46BC13, 0xB03B8AE5, 0x247C1D63, 0x88542F80, 0xB5B20BF9, 0xFDCA719C, 0x7C54A1E3, 0x0E64C920},
5884 {0x39B703CD, 0xF8596B3C, 0x17AD8DAA, 0x8E5BD9FD, 0x21FD3FB2, 0x38F01B04, 0xA952D33B, 0x16D7C485} } } ,
5885 { { {0x97BF4983, 0xF703DDA2, 0x7DE44A98, 0x1115F116, 0x4FB4C5CD, 0x635A4500, 0xF6DF8EFF, 0x58C847B3},
5886 {0x18453D34, 0xEFF743A1, 0x7503B674, 0x703B09DA, 0xBD38159E, 0x7D1B54B0, 0xB94F2F30, 0x3826232A} } ,
5887 { {0x5BBCCA14, 0x9FBA7E11, 0xCC8E8E95, 0x981F90F2, 0x7B27DE8B, 0x85A8287A, 0x91D9A10B, 0x2057D4F6},
5888 {0x0312C7E6, 0xD26D4A72, 0x52EA1AC7, 0x2C5F7F52, 0xDF39ED23, 0x5D3D0903, 0x2A362875, 0xB7BE04C1} } } } ;
5890 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2553 a000");
5891 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2554 a001");
5892 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2555 a010");
5893 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2556 a011");
5894 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2557 a100");
5895 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2558 a101");
5896 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2559 a110");
5897 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2560 a111");
5898 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2561 a200");
5899 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2562 a201");
5900 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2563 a210");
5901 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2564 a211");
5904 static const fp12_t var_a = { { { {0xC09D77BB, 0xE955FF77, 0xC382C5B4, 0x323A85B9, 0x82AD75C7, 0x2F892F62, 0x35EAD96E, 0x06FBD651},
5905 {0x819A5818, 0xA6201CE7, 0xBA36C520, 0x723ABE65, 0x2A3F9DA2, 0xB4D06232, 0xC45A39AF, 0x26DEAE0E} } ,
5906 { {0x4E598B21, 0x8EECC25F, 0xA350A151, 0xADDC08E9, 0xA950BF47, 0x57203564, 0xB7D595A4, 0x6636E3EC},
5907 {0xA12E1456, 0xAC096479, 0x35669C4D, 0x5C623C03, 0x5A43B7A8, 0x952E8917, 0x9D1E40FF, 0x8FA3D366} } } ,
5908 { { {0x40B79DB6, 0x44C1BF9D, 0x53195CF7, 0x2BA34351, 0x4EC730B0, 0x5A4218CC, 0xBFDAAF16, 0x94CF1776},
5909 {0x74385148, 0xA3188497, 0xFB130382, 0xD26AB836, 0xC4C43EDF, 0x69C6B572, 0x76D2C7C3, 0x6A6593EE} } ,
5910 { {0x86026527, 0x44DA32F7, 0xDEB9D1A4, 0x1F3C4A18, 0x2571D161, 0xF0C767F8, 0x4DF012B2, 0x2035FECD},
5911 {0xDD478C77, 0x7D8455EF, 0x9A5AD45D, 0xF726E235, 0x13254E30, 0x5BB5F8FD, 0xF054B605, 0x4D218C02} } } ,
5912 { { {0x6CD0BADE, 0x40571B85, 0x13A1FB51, 0xEB3F1FA5, 0xC73E5BF0, 0x93B74A14, 0xE529A3DF, 0x292AA829},
5913 {0xEADDB270, 0x28765E37, 0x482F5EC2, 0x4EFADE91, 0x9210EBE3, 0x42364CCC, 0x65305628, 0x58CAE8C2} } ,
5914 { {0xCD40F4D4, 0x20CD128D, 0x74FC6B16, 0x2E18D523, 0xD31D3BA7, 0xD8F04A51, 0x7CE22D94, 0x3869F452},
5915 {0xE51A1FD4, 0xA20A2599, 0x929FEBC9, 0x1B3E8ED9, 0xAAEEDC3F, 0x5EAFA400, 0xE3B1A940, 0x3D954616} } } } ;
5916 static const bigint_t var_b = {0x959E8DF6, 0x65CC2023, 0xF2F15049, 0xDD36DEBB, 0x636B6419, 0x03BDCC95, 0xEDAF2626, 0xFFCBDFC6};
5917 static const fp12_t var_expected = { { { {0xF7C11D18, 0xF99DE8E3, 0x6DC3CE39, 0x2808C7E7, 0x6A4AD3E4, 0xA0447FD1, 0xAE45AA1C, 0x2C9200F3},
5918 {0xB1F801A2, 0xAF5DFD48, 0x2937BEFD, 0xA9A66DA5, 0x38A5CDA3, 0xC65236AF, 0x5D74F339, 0x3C899E65} } ,
5919 { {0x5834A0F0, 0x689BF88F, 0x0AEAB631, 0xDE8B2F3E, 0x719DCFEC, 0x25FA7EA5, 0x4C1EB1B9, 0x31EFB3E8},
5920 {0x2A283A49, 0x5397866B, 0x101ED673, 0xC8A0EDC3, 0xC702D54D, 0x8853082B, 0xF16176DC, 0x78969E09} } } ,
5921 { { {0x30B74DF0, 0x94B1576C, 0x96E470EA, 0xAE4EC351, 0xAAD0C6C6, 0xA350400B, 0xB2E11FC3, 0xB097C9CD},
5922 {0x031001B2, 0x6BE04ACE, 0xF348C9AF, 0xAE1511DF, 0x9736D4B8, 0x83AE82D0, 0x0FFCDD72, 0x850B1480} } ,
5923 { {0x35B701B0, 0x04569D63, 0xBF0F8577, 0x8146BFC0, 0xC2BA583E, 0x00B4EB13, 0x023B64CF, 0x71E348CF},
5924 {0x36A3C4F9, 0x74112726, 0x8411ABC1, 0x17074DA6, 0x0D60639A, 0x5652A43D, 0x3A9C5553, 0x73D10503} } } ,
5925 { { {0xB51EE099, 0xA4C7A577, 0xEA489FF3, 0x15D1EF78, 0xE9BD1946, 0x64DDD147, 0x61564814, 0xB27EB9E9},
5926 {0xD37CC48D, 0x5919A95C, 0xBA7D6FA2, 0x81D86954, 0x322BC479, 0x833382EE, 0x1DAEAB04, 0x444A1366} } ,
5927 { {0x325BC8C2, 0x09CF118F, 0xC31DBE9D, 0x82553B11, 0x4721B881, 0xC6CF9AD7, 0xA74DBB26, 0x358FC8D9},
5928 {0x976AA500, 0xCDBA79DE, 0xFDDDC2E7, 0x622C48D1, 0xF2C840DF, 0xAB892523, 0x7209D26E, 0xA7E387E6} } } } ;
5930 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 2565 a000");
5931 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 2566 a001");
5932 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 2567 a010");
5933 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 2568 a011");
5934 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 2569 a100");
5935 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 2570 a101");
5936 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 2571 a110");
5937 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 2572 a111");
5938 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 2573 a200");
5939 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 2574 a201");
5940 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 2575 a210");
5941 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 2576 a211");
5944 static const fp12_t var_a = { { { {0x634E9BC1, 0xC21BEFEF, 0xAE3597B9, 0x0EB8D8A9, 0x38CC90C0, 0x4CFC1F16, 0x2CC4F45E, 0x5509F207},
5945 {0x550DF4D5, 0x762F13F6, 0x5C12CE8A, 0x7E25EC5E, 0xBED900B4, 0xE23C7BBC, 0xE798C686, 0x001E3F03} } ,
5946 { {0x1CD1C12B, 0x3F2CA7EA, 0x5E8323D9, 0xF8DEF9C8, 0xAEAB97FA, 0xE1814BE7, 0x97DE866C, 0x777DFE96},
5947 {0xE0CA2948, 0x8095AD16, 0xF7D96925, 0x34B6D1AE, 0x01D90186, 0xCEE920F7, 0xE84204C3, 0x3A9285C3} } } ,
5948 { { {0x409A8AA9, 0xBD9A4B3F, 0x1C1EB1A5, 0xAB33E98E, 0xC22048E3, 0x04B726CA, 0x3B3E97B0, 0x3E460927},
5949 {0x882390A7, 0x2199BB48, 0xF396D302, 0x9E37036A, 0x9284D492, 0x51281836, 0xA5968F55, 0x0BC6C47B} } ,
5950 { {0xBE5E1B8A, 0xFA924C45, 0xB3C22B54, 0xE7599FE0, 0x7B9F09F7, 0x5EA16C23, 0x6EC3E59A, 0x29333AB2},
5951 {0x1ACE72A2, 0x3A61D323, 0x15539614, 0x75204CF7, 0x6DA07B99, 0x3AE36830, 0x94C1B086, 0x9CF92818} } } ,
5952 { { {0x049C20BC, 0xF9D6AF8C, 0x8A0B0727, 0x84E9AD7D, 0x742EA5F5, 0xDF542C32, 0x452F2A0F, 0x7F000F46},
5953 {0x7C84F292, 0xF0C1BB01, 0xE2ABBB3D, 0x789816E6, 0xD47D3317, 0xA83B89F2, 0xA852784B, 0x268C25D9} } ,
5954 { {0xFC71610D, 0xFBCED1D1, 0x9DCAA38F, 0x75FE3556, 0xE32C3C3B, 0xC103A374, 0x95735A5A, 0x56E7FE6F},
5955 {0x84995B9A, 0x9FA298CD, 0xF3D0F1AA, 0x2DAE6696, 0x92A7D027, 0xDA58C053, 0xD8CC18B3, 0x3D567B82} } } } ;
5956 static const fp12_t var_expected = { { { {0xFEDD98DA, 0x3CD299C1, 0x2642478D, 0x0458D3F7, 0x1B15F8F5, 0xAE643D55, 0x1359E7CA, 0x6509ACBB},
5957 {0x0D1E3FC6, 0x88BF75BB, 0x786510BC, 0x94EBC042, 0x95098900, 0x1923E0AE, 0x588615A2, 0xB9F55FBE} } ,
5958 { {0x455A7370, 0xBFC1E1C7, 0x75F4BB6D, 0x1A32B2D8, 0xA536F1BA, 0x19DF1083, 0xA84055BC, 0x4295A02B},
5959 {0x81620B53, 0x7E58DC9A, 0xDC9E7621, 0xDE5ADAF1, 0x5209882E, 0x2C773B74, 0x57DCD765, 0x7F8118FE} } } ,
5960 { { {0x2191A9F2, 0x41543E72, 0xB8592DA1, 0x67DDC312, 0x91C240D1, 0xF6A935A0, 0x04E04478, 0x7BCD959B},
5961 {0xDA08A3F4, 0xDD54CE68, 0xE0E10C44, 0x74DAA935, 0xC15DB522, 0xAA384434, 0x9A884CD3, 0xAE4CDA46} } ,
5962 { {0xA3CE1911, 0x045C3D6B, 0x20B5B3F2, 0x2BB80CC0, 0xD8437FBD, 0x9CBEF047, 0xD15AF68E, 0x90E0640F},
5963 {0x475DC1F9, 0xC48CB68E, 0xBF244932, 0x9DF15FA9, 0xE6420E1B, 0xC07CF43A, 0xAB5D2BA2, 0x1D1A76A9} } } ,
5964 { { {0x5D9013DF, 0x0517DA25, 0x4A6CD81F, 0x8E27FF23, 0xDFB3E3BF, 0x1C0C3038, 0xFAEFB219, 0x3B138F7B},
5965 {0xE5A74209, 0x0E2CCEAF, 0xF1CC2409, 0x9A7995B9, 0x7F65569D, 0x5324D278, 0x97CC63DD, 0x938778E8} } ,
5966 { {0x65BAD38E, 0x031FB7DF, 0x36AD3BB7, 0x9D13774A, 0x70B64D79, 0x3A5CB8F6, 0xAAAB81CE, 0x632BA052},
5967 {0xDD92D901, 0x5F4BF0E3, 0xE0A6ED9C, 0xE5634609, 0xC13AB98D, 0x21079C17, 0x6752C375, 0x7CBD233F} } } } ;
5969 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2577 a000");
5970 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2578 a001");
5971 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2579 a010");
5972 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2580 a011");
5973 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2581 a100");
5974 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2582 a101");
5975 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2583 a110");
5976 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2584 a111");
5977 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2585 a200");
5978 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2586 a201");
5979 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2587 a210");
5980 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2588 a211");
5983 static const fp12_t var_a = { { { {0xF346F1BE, 0x813F37AF, 0xA4AB72FF, 0x2623043E, 0x38934410, 0x71EEF3AA, 0x329F7112, 0x3290CC3D},
5984 {0x99508E09, 0xECFB24E7, 0x4F46CA8D, 0xD4F8DFF1, 0x6A561472, 0x6F3875C0, 0x983F51B6, 0x9A2159ED} } ,
5985 { {0x18EB163E, 0x4CA1F295, 0xC6A5BECD, 0x31985A57, 0xD2380080, 0x9FF3D3FE, 0xF2B0AD99, 0x1A54BED5},
5986 {0xE99FAD95, 0xB62C305E, 0x8F5AA6B0, 0x39E4F587, 0xADF137E7, 0x33DE3A7A, 0x9DEE0AC9, 0x201309F2} } } ,
5987 { { {0xD793D10B, 0x5D1F1A78, 0x66C34297, 0x6EF6E07E, 0x4C86F95F, 0x3D0021B9, 0xEA064EB6, 0x59E07634},
5988 {0x811D8FCD, 0x1E5F7002, 0xB91FB0AE, 0x54EB8EC0, 0x9778BDA6, 0x3784ABA9, 0x9D05E978, 0x39D8B08D} } ,
5989 { {0xDCABBCFC, 0xF5A618D6, 0x2A725533, 0xF6BEAAAC, 0x85454A44, 0x7C1F42D3, 0x6EAEA9BE, 0x76C6B2A9},
5990 {0xAFFC7D7E, 0x86876E74, 0x1133FE4B, 0x5F39FAE2, 0xA533493C, 0xCC0A1882, 0x8B07B5B0, 0x8D4AD045} } } ,
5991 { { {0x16A38779, 0x95F76202, 0xF8D2878A, 0x22EB01E4, 0x98713653, 0xCC8AABE0, 0x14B47937, 0x3C0C8A3F},
5992 {0x00DEDC7D, 0x8E74CDA4, 0x1D0DCDA2, 0xD3397C9E, 0x9484C61D, 0x84087EB1, 0x9E1EA3D7, 0x06002500} } ,
5993 { {0xB1BE010D, 0xFEB290FC, 0xF309B993, 0x8C7CF5EA, 0xE3061B75, 0xDFB986A1, 0xB17357D9, 0xB3BB35B5},
5994 {0xDF73A6C3, 0x18F0EB41, 0xCCD9CD0A, 0x5616726E, 0x0ED3D687, 0x3379C58F, 0x0A4D6E61, 0x12C6F318} } } } ;
5995 static const fp12_t var_expected = { { { {0x6EE542DD, 0x7DAF5201, 0x2FCC6C47, 0xECEEA862, 0x1B4F45A4, 0x897168C1, 0x0D7F6B16, 0x8782D285},
5996 {0xC8DBA692, 0x11F364C9, 0x853114B9, 0x3E18CCAF, 0xE98C7542, 0x8C27E6AA, 0xA7DF8A72, 0x1FF244D4} } ,
5997 { {0x49411E5D, 0xB24C971C, 0x0DD22079, 0xE1795249, 0x81AA8934, 0x5B6C886C, 0x4D6E2E8F, 0x9FBEDFEC},
5998 {0x788C8706, 0x48C25952, 0x451D3896, 0xD92CB719, 0xA5F151CD, 0xC78221F0, 0xA230D15F, 0x9A0094CF} } } ,
5999 { { {0x8A986390, 0xA1CF6F38, 0x6DB49CAF, 0xA41ACC22, 0x075B9055, 0xBE603AB2, 0x56188D72, 0x6033288D},
6000 {0xE10EA4CE, 0xE08F19AE, 0x1B582E98, 0xBE261DE0, 0xBC69CC0E, 0xC3DBB0C1, 0xA318F2B0, 0x803AEE34} } ,
6001 { {0x8580779F, 0x094870DA, 0xAA058A13, 0x1C5301F4, 0xCE9D3F70, 0x7F411997, 0xD170326A, 0x434CEC18},
6002 {0xB22FB71D, 0x78671B3C, 0xC343E0FB, 0xB3D7B1BE, 0xAEAF4078, 0x2F5643E8, 0xB5172678, 0x2CC8CE7C} } } ,
6003 { { {0x4B88AD22, 0x68F727AF, 0xDBA557BC, 0xF026AABB, 0xBB715361, 0x2ED5B08A, 0x2B6A62F1, 0x7E071483},
6004 {0x614D581E, 0x7079BC0D, 0xB76A11A4, 0x3FD83002, 0xBF5DC397, 0x7757DDB9, 0xA2003851, 0xB41379C1} } ,
6005 { {0xB06E338E, 0x003BF8B4, 0xE16E25B3, 0x8694B6B5, 0x70DC6E3F, 0x1BA6D5C9, 0x8EAB844F, 0x0658690C},
6006 {0x82B88DD8, 0xE5FD9E6F, 0x079E123C, 0xBCFB3A32, 0x450EB32D, 0xC7E696DC, 0x35D16DC7, 0xA74CABAA} } } } ;
6008 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2589 a000");
6009 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2590 a001");
6010 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2591 a010");
6011 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2592 a011");
6012 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2593 a100");
6013 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2594 a101");
6014 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2595 a110");
6015 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2596 a111");
6016 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2597 a200");
6017 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2598 a201");
6018 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2599 a210");
6019 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2600 a211");
6022 static const fp12_t var_a = { { { {0x1AE9B9CC, 0x306DD984, 0x818E9DFC, 0x0C0DAC42, 0x03D3B09D, 0xA6727ECF, 0x5AE86E32, 0x237359F6},
6023 {0x7D2B4141, 0x437AA0AF, 0xA21FA0CF, 0x1AA1C7D7, 0x4BCD4F05, 0xDDB2CCA6, 0x445951C2, 0x49990A0C} } ,
6024 { {0xFE813269, 0x6EBCF548, 0x477BBA42, 0xBB5E7A19, 0xD444A32B, 0x51D9AEF5, 0x63FC6459, 0x17F5D037},
6025 {0x044B4926, 0x7203D3F9, 0x6661364B, 0x1E308D2A, 0xCC56796F, 0xE1ABAECA, 0x82E5CD81, 0x26668317} } } ,
6026 { { {0x4A2EA9F2, 0x3749644B, 0x2ADED441, 0xF3EBBD2F, 0x753C7B9B, 0x5180B964, 0x62D97166, 0x56B80123},
6027 {0x61739678, 0x4652AD48, 0x721C90B9, 0xEFE156D8, 0xA339E5F2, 0xCBD4E47D, 0x37F85957, 0x4B68E4D9} } ,
6028 { {0xCA7C3E04, 0x4EEF8934, 0x7B90F635, 0x3865CF47, 0xEDF95355, 0x5E18A127, 0xEB19D37E, 0x316411F5},
6029 {0x006B0319, 0xA07A1F60, 0xB6497FB3, 0x33C20F1F, 0x78A27CD2, 0x70E3471C, 0x9A90FF26, 0x273E627A} } } ,
6030 { { {0x0F8FEA20, 0xB1786B09, 0x1CDE1DA6, 0x9E9BC1FE, 0xD6531F49, 0x5860F380, 0xD5B09AC5, 0x1DC35AD4},
6031 {0x13F7C15B, 0x9F82B956, 0xB37CD535, 0x1BC1273B, 0x8444D804, 0xD5230327, 0x1FB2012B, 0x52F59491} } ,
6032 { {0xA137F753, 0xA557C598, 0x3427582C, 0x055CCF98, 0x11BA2972, 0x8075ADDD, 0xB30ACC4C, 0x778D1479},
6033 {0xC2EF7EA7, 0xA526CB19, 0x33858ED9, 0xA8984352, 0x4948CE89, 0x58C874EB, 0xFB7B73E7, 0x47CB40EE} } } } ;
6034 static const fp12_t var_expected = { { { {0x47427ACF, 0xCE80B02D, 0x52E9414A, 0x0704005E, 0x500ED918, 0x54EDDD9C, 0xE5366DF6, 0x96A044CB},
6035 {0xE500F35A, 0xBB73E901, 0x32583E77, 0xF86FE4C9, 0x08153AAF, 0x1DAD8FC5, 0xFBC58A66, 0x707A94B5} } ,
6036 { {0x63AB0232, 0x90319468, 0x8CFC2504, 0x57B33287, 0x7F9DE689, 0xA986AD75, 0xDC2277CF, 0xA21DCE8A},
6037 {0x5DE0EB75, 0x8CEAB5B8, 0x6E16A8FB, 0xF4E11F76, 0x878C1045, 0x19B4ADA0, 0xBD390EA7, 0x93AD1BAA} } } ,
6038 { { {0x17FD8AA9, 0xC7A52566, 0xA9990B05, 0x1F25EF71, 0xDEA60E19, 0xA9DFA306, 0xDD456AC2, 0x635B9D9E},
6039 {0x00B89E23, 0xB89BDC69, 0x625B4E8D, 0x233055C8, 0xB0A8A3C2, 0x2F8B77ED, 0x082682D1, 0x6EAAB9E9} } ,
6040 { {0x97AFF697, 0xAFFF007C, 0x58E6E911, 0xDAABDD59, 0x65E9365F, 0x9D47BB43, 0x550508AA, 0x88AF8CCC},
6041 {0x61C13182, 0x5E746A51, 0x1E2E5F93, 0xDF4F9D81, 0xDB400CE2, 0x8A7D154E, 0xA58DDD02, 0x92D53C47} } } ,
6042 { { {0x529C4A7B, 0x4D761EA8, 0xB799C1A0, 0x7475EAA2, 0x7D8F6A6B, 0xA2FF68EA, 0x6A6E4163, 0x9C5043ED},
6043 {0x4E347340, 0x5F6BD05B, 0x20FB0A11, 0xF7508565, 0xCF9DB1B0, 0x263D5943, 0x206CDAFD, 0x671E0A31} } ,
6044 { {0xC0F43D48, 0x5996C418, 0xA050871A, 0x0DB4DD08, 0x42286043, 0x7AEAAE8E, 0x8D140FDC, 0x42868A48},
6045 {0x9F3CB5F4, 0x59C7BE97, 0xA0F2506D, 0x6A79694E, 0x0A99BB2B, 0xA297E780, 0x44A36841, 0x72485DD3} } } } ;
6047 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2601 a000");
6048 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2602 a001");
6049 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2603 a010");
6050 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2604 a011");
6051 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2605 a100");
6052 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2606 a101");
6053 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2607 a110");
6054 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2608 a111");
6055 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2609 a200");
6056 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2610 a201");
6057 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2611 a210");
6058 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2612 a211");
6061 static const fp12_t var_a = { { { {0x6E4EECBF, 0xA81DB054, 0xA866D289, 0xC4A25210, 0xBAF12D9B, 0x46431EB3, 0x1A6E0328, 0x07AB4A8E},
6062 {0xFBCBAD9B, 0x55352EF7, 0x8E6D64D9, 0x6707A2EA, 0xD7FC99B8, 0x84B9D5CD, 0xA4B1B5FB, 0xA88C90F9} } ,
6063 { {0xC78A4068, 0x7B8BDE87, 0x1B82918B, 0xAF267314, 0x2CE5E304, 0x4D93B3BE, 0xA14B9424, 0x03C3C307},
6064 {0x8C93D972, 0x8DF9DF67, 0x8A733F19, 0x0E0BB02D, 0x2B37C3F4, 0x2CC62AFB, 0x8E6EC2D0, 0x9EBD010B} } } ,
6065 { { {0xF5B8B9D7, 0x213A609C, 0x7563BD44, 0x65508C5B, 0x06880AAC, 0x95BD9C38, 0x9B7D1E47, 0x881AD36A},
6066 {0x81DB4289, 0x7038BA6C, 0x2BD0D624, 0x9981E9D1, 0x830515F6, 0x6013FE01, 0x6D955553, 0x943E0F97} } ,
6067 { {0xA4241FAC, 0xDB117CEB, 0x5B8016DC, 0x00637017, 0x27917752, 0x4E182439, 0x5EA7D0F5, 0x1ED5DDB3},
6068 {0x29965D36, 0x5F4186A3, 0xB707669A, 0x3FB95119, 0x5B7FDE50, 0x712C6153, 0x3820EDB0, 0x30DC4036} } } ,
6069 { { {0x84326D3D, 0x276B8BF0, 0x59AD2B38, 0xFCFFB6CE, 0x527218A5, 0xDFA78281, 0xFE6B4AE9, 0x02762DF1},
6070 {0x0EE36241, 0xFAFDF306, 0xB23956ED, 0x7A00309F, 0x709507D0, 0xF0129348, 0x24707D95, 0x5DDF3ECF} } ,
6071 { {0xC489F7D6, 0xC7629BFE, 0x969850AA, 0xF768CB4D, 0xE493A90E, 0xFBAEC2FD, 0x513B150C, 0x3C1769AA},
6072 {0x00DFF6DD, 0x220275DA, 0xE270DB65, 0x0336104E, 0xC0E1F9BD, 0xAE4E4A1E, 0xA49DD97E, 0x449DE9AC} } } } ;
6073 static const fp12_t var_expected = { { { {0xF3DD47DC, 0x56D0D95C, 0x2C110CBD, 0x4E6F5A90, 0x98F15C19, 0xB51D3DB7, 0x25B0D900, 0xB2685434},
6074 {0x66608700, 0xA9B95AB9, 0x460A7A6D, 0xAC0A09B6, 0x7BE5EFFC, 0x76A6869D, 0x9B6D262D, 0x11870DC8} } ,
6075 { {0x9AA1F433, 0x8362AB29, 0xB8F54DBB, 0x63EB398C, 0x26FCA6B0, 0xADCCA8AD, 0x9ED34804, 0xB64FDBBA},
6076 {0xD5985B29, 0x70F4AA49, 0x4A04A02D, 0x0505FC73, 0x28AAC5C1, 0xCE9A3170, 0xB1B01958, 0x1B569DB6} } } ,
6077 { { {0x6C737AC4, 0xDDB42914, 0x5F142202, 0xADC12045, 0x4D5A7F08, 0x65A2C033, 0xA4A1BDE1, 0x31F8CB57},
6078 {0xE050F212, 0x8EB5CF44, 0xA8A70922, 0x798FC2CF, 0xD0DD73BE, 0x9B4C5E69, 0xD28986D5, 0x25D58F2A} } ,
6079 { {0xBE0814EF, 0x23DD0CC5, 0x78F7C86A, 0x12AE3C89, 0x2C511263, 0xAD483832, 0xE1770B33, 0x9B3DC10E},
6080 {0x3895D765, 0x9FAD030E, 0x1D7078AC, 0xD3585B87, 0xF862AB64, 0x8A33FB17, 0x07FDEE78, 0x89375E8C} } } ,
6081 { { {0xDDF9C75E, 0xD782FDC0, 0x7ACAB40E, 0x1611F5D2, 0x0170710F, 0x1BB8D9EA, 0x41B3913F, 0xB79D70D0},
6082 {0x5348D25A, 0x03F096AB, 0x223E8859, 0x99117C01, 0xE34D81E4, 0x0B4DC922, 0x1BAE5E93, 0x5C345FF3} } ,
6083 { {0x9DA23CC5, 0x378BEDB2, 0x3DDF8E9C, 0x1BA8E153, 0x6F4EE0A6, 0xFFB1996D, 0xEEE3C71B, 0x7DFC3517},
6084 {0x614C3DBE, 0xDCEC13D7, 0xF20703E1, 0x0FDB9C51, 0x93008FF8, 0x4D12124C, 0x9B8102AA, 0x7575B515} } } } ;
6086 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2613 a000");
6087 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2614 a001");
6088 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2615 a010");
6089 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2616 a011");
6090 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2617 a100");
6091 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2618 a101");
6092 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2619 a110");
6093 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2620 a111");
6094 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2621 a200");
6095 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2622 a201");
6096 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2623 a210");
6097 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2624 a211");
6100 static const fp12_t var_a = { { { {0x0CDA0255, 0xBFE99910, 0xCE0FA930, 0xA0196F86, 0xD42EE9B2, 0x9CBE4579, 0xECABC694, 0xA3030F18},
6101 {0x0974E25D, 0xF89BFB82, 0x4BF38582, 0xD3580717, 0x87775D79, 0xBCFDA296, 0x6FC8CFFA, 0x4D077589} } ,
6102 { {0x6B8EE88D, 0x4D809822, 0x7AACE237, 0x25A85CB8, 0x5283CF8A, 0xECA528C3, 0x645DA8F9, 0x79A48D5C},
6103 {0x7929E104, 0xDEE39D4D, 0x3292C720, 0x22183C43, 0x42B3A9F2, 0x6CE4B032, 0x7967F9E4, 0x223B88D7} } } ,
6104 { { {0xCEEAFE16, 0xF38999A2, 0x7E439C16, 0xDD11A212, 0x7A2042B9, 0x5F029B74, 0x4DD0CD36, 0x87C3484B},
6105 {0xDBF382AB, 0x75CC1C65, 0x1DFA6C11, 0x6B63B378, 0xAF0A8AEF, 0x4E7DB534, 0xF7983FF9, 0xAB1261D2} } ,
6106 { {0xFFDBE494, 0x735DEA48, 0x2D35B819, 0x504A6F2F, 0x56B442E9, 0xA94EC61E, 0x3DB5D36E, 0x1B1A9F65},
6107 {0xFC04221E, 0x9C324F77, 0xD0020BFE, 0x65FA60CB, 0xCADC1631, 0x3209FADB, 0x5E721350, 0x11B4FB1D} } } ,
6108 { { {0x95A566B8, 0xCBFF8CB1, 0x661481EE, 0x90250584, 0x7F472320, 0xADD7A7D5, 0x09D91E44, 0xAE488FAA},
6109 {0x896FB7C9, 0x78FEE71A, 0x7D87807D, 0xF6EBCED2, 0x7C5F5923, 0x303EF120, 0x24317E70, 0x050D9F3E} } ,
6110 { {0x12F6E7A9, 0x3EDEFFB7, 0x54482AA6, 0x7B3353F0, 0xD635FAD2, 0xAA02A59A, 0x463C692E, 0x9A978E43},
6111 {0xF2D40262, 0x64DE55CA, 0xE40DA9AC, 0x927B1702, 0x3FDBD8B0, 0x893C27CB, 0xFC260E2B, 0x5BCA277C} } } } ;
6112 static const fp12_t var_expected = { { { {0x55523246, 0x3F04F0A1, 0x06683616, 0x72F83D1A, 0x7FB3A002, 0x5EA216F1, 0x53731594, 0x17108FA9},
6113 {0x58B7523E, 0x06528E2F, 0x888459C4, 0x3FB9A589, 0xCC6B2C3B, 0x3E62B9D4, 0xD0560C2E, 0x6D0C2938} } ,
6114 { {0xF69D4C0E, 0xB16DF18E, 0x59CAFD0F, 0xED694FE8, 0x015EBA2A, 0x0EBB33A8, 0xDBC1332F, 0x406F1165},
6115 {0xE9025397, 0x200AEC63, 0xA1E51826, 0xF0F9705D, 0x112EDFC2, 0x8E7BAC39, 0xC6B6E244, 0x97D815EA} } } ,
6116 { { {0x93413685, 0x0B64F00E, 0x56344330, 0x36000A8E, 0xD9C246FB, 0x9C5DC0F6, 0xF24E0EF2, 0x32505676},
6117 {0x8638B1F0, 0x89226D4B, 0xB67D7335, 0xA7ADF928, 0xA4D7FEC5, 0xACE2A736, 0x48869C2F, 0x0F013CEF} } ,
6118 { {0x62505007, 0x8B909F68, 0xA742272D, 0xC2C73D71, 0xFD2E46CB, 0x5211964C, 0x026908BA, 0x9EF8FF5D},
6119 {0x6628127D, 0x62BC3A39, 0x0475D348, 0xAD174BD5, 0x89067383, 0xC956618F, 0xE1ACC8D8, 0xA85EA3A4} } } ,
6120 { { {0xCC86CDE3, 0x32EEFCFF, 0x6E635D58, 0x82ECA71C, 0xD49B6694, 0x4D88B495, 0x3645BDE4, 0x0BCB0F18},
6121 {0xD8BC7CD2, 0x85EFA296, 0x56F05EC9, 0x1C25DDCE, 0xD7833091, 0xCB216B4A, 0x1BED5DB8, 0xB505FF84} } ,
6122 { {0x4F354CF2, 0xC00F89FA, 0x802FB4A0, 0x97DE58B0, 0x7DAC8EE2, 0x515DB6D0, 0xF9E272FA, 0x1F7C107E},
6123 {0x6F583239, 0x9A1033E6, 0xF06A359A, 0x8096959D, 0x1406B104, 0x722434A0, 0x43F8CDFD, 0x5E497745} } } } ;
6125 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2625 a000");
6126 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2626 a001");
6127 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2627 a010");
6128 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2628 a011");
6129 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2629 a100");
6130 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2630 a101");
6131 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2631 a110");
6132 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2632 a111");
6133 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2633 a200");
6134 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2634 a201");
6135 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2635 a210");
6136 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2636 a211");
6139 static const fp12_t var_a = { { { {0xC7727505, 0x4E341CFC, 0xAE0A3A08, 0x7F04CB5E, 0xCCD52F4E, 0x0D277B42, 0xC89BB517, 0x625651F0},
6140 {0x3F4D73D7, 0x0712F788, 0x3AF10BD8, 0x63F5528B, 0x7FC16C68, 0xE3740EED, 0x1DB2B50F, 0x17046716} } ,
6141 { {0xE2A95B9F, 0xBA7052AB, 0x9A604FC8, 0x345FE2B5, 0xBDDC4B1A, 0x87B9E99C, 0x6524919F, 0x0F04C561},
6142 {0xC2D08A00, 0x3D7B1FAA, 0x96B231C3, 0x723ED78A, 0x89BFCFFD, 0xF961D8B0, 0xFB61B9C7, 0x4704A757} } } ,
6143 { { {0x6BE256A9, 0x8645F70E, 0xAA6AB9AD, 0x60D0B521, 0xF32EC94A, 0x0D5D4DBC, 0xF1C3D56A, 0x30DFA98C},
6144 {0x656E1A30, 0x2BADE7DC, 0x7F4DBD1C, 0x7C6482D8, 0x9F4BEDA8, 0xEDF30FCE, 0x8B728638, 0x29A09E33} } ,
6145 { {0x3ACA5B0C, 0xEE62A1B9, 0xFD0BE071, 0x5695CB6E, 0x481BE9AC, 0xC2D2323C, 0x8310EDF4, 0x7BDDCB23},
6146 {0xD503F918, 0x3041DC1B, 0x0EA42B28, 0xCEE9C8A0, 0x902EFECB, 0x09C14D00, 0x03749874, 0x1DAC7C16} } } ,
6147 { { {0x128AE5E2, 0x7731E5AA, 0xFD8B08D1, 0x357785E1, 0xDB53D5F9, 0x264A951E, 0xED696166, 0x8D6C6D6D},
6148 {0xA02F7B35, 0xEE3BF3CA, 0xC87C8F7E, 0xE0FF455F, 0x1CE8DBED, 0xE035BB19, 0x97FE501B, 0x0F2415A9} } ,
6149 { {0x8251EB98, 0xE13727ED, 0xA39403C3, 0xA90FC8BA, 0x5D95C737, 0xE4308C61, 0x4778D5FB, 0x28D1A3B8},
6150 {0x924D3EF6, 0x440CA1B0, 0x73497EF7, 0x6C289877, 0x3D6163C0, 0x42056A5B, 0xBC21AC3F, 0x25D0C6F6} } } } ;
6151 static const fp12_t var_expected = { { { {0x9AB9BF96, 0xB0BA6CB4, 0x266DA53E, 0x940CE142, 0x870D5A66, 0xEE38E128, 0x77832711, 0x57BD4CD1},
6152 {0x22DEC0C4, 0xF7DB9229, 0x9986D36E, 0xAF1C5A15, 0xD4211D4C, 0x17EC4D7D, 0x226C2719, 0xA30F37AC} } ,
6153 { {0x7F82D8FC, 0x447E3705, 0x3A178F7E, 0xDEB1C9EB, 0x96063E9A, 0x73A672CE, 0xDAFA4A89, 0xAB0ED960},
6154 {0x9F5BAA9B, 0xC1736A06, 0x3DC5AD83, 0xA0D2D516, 0xCA22B9B7, 0x01FE83BA, 0x44BD2261, 0x730EF76A} } } ,
6155 { { {0xF649DDF2, 0x78A892A2, 0x2A0D2599, 0xB240F77F, 0x60B3C06A, 0xEE030EAE, 0x4E5B06BE, 0x8933F535},
6156 {0xFCBE1A6B, 0xD340A1D4, 0x552A222A, 0x96AD29C8, 0xB4969C0C, 0x0D6D4C9C, 0xB4AC55F0, 0x9073008E} } ,
6157 { {0x2761D98F, 0x108BE7F8, 0xD76BFED5, 0xBC7BE131, 0x0BC6A008, 0x388E2A2F, 0xBD0DEE34, 0x3E35D39E},
6158 {0x8D283B83, 0xCEACAD95, 0xC5D3B41E, 0x4427E400, 0xC3B38AE9, 0xF19F0F6A, 0x3CAA43B4, 0x9C6722AC} } } ,
6159 { { {0x4FA14EB9, 0x87BCA407, 0xD6ECD675, 0xDD9A26BE, 0x788EB3BB, 0xD515C74C, 0x52B57AC2, 0x2CA73154},
6160 {0xC1FCB966, 0x10B295E6, 0x0BFB4FC8, 0x32126741, 0x36F9ADC7, 0x1B2AA152, 0xA8208C0D, 0xAAEF8918} } ,
6161 { {0xDFDA4903, 0x1DB761C3, 0x30E3DB83, 0x6A01E3E6, 0xF64CC27D, 0x172FD009, 0xF8A6062D, 0x9141FB09},
6162 {0xCFDEF5A5, 0xBAE1E800, 0x612E604F, 0xA6E91429, 0x168125F4, 0xB95AF210, 0x83FD2FE9, 0x9442D7CB} } } } ;
6164 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2637 a000");
6165 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2638 a001");
6166 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2639 a010");
6167 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2640 a011");
6168 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2641 a100");
6169 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2642 a101");
6170 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2643 a110");
6171 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2644 a111");
6172 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2645 a200");
6173 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2646 a201");
6174 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2647 a210");
6175 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2648 a211");
6178 static const fp12_t var_a = { { { {0xF9485B06, 0x2D80CC2B, 0x542B37B0, 0x8BFE50EB, 0x6D0B8058, 0xEE62A40D, 0xA5E4499C, 0x954FE5BF},
6179 {0x571A9E0B, 0x57ACBE06, 0x3FFF32A1, 0x58B428F8, 0xDED997E4, 0x44D89668, 0xE795F063, 0x11C127EF} } ,
6180 { {0x238E620C, 0x9C96049E, 0xB5785938, 0xF58BD9DC, 0xE60245E1, 0x749A8D71, 0x5BC7BF6D, 0x5DD0D518},
6181 {0x61617710, 0x825C8928, 0xEFBDDB64, 0x15A9456D, 0x7724D5AE, 0x2B3EB427, 0xCDA33CE6, 0xA84270A7} } } ,
6182 { { {0xED031584, 0xAF996E93, 0xAB18C09F, 0x3E3851E5, 0xE7B9ADE9, 0xE97F8EA5, 0xFEF732FF, 0x4970F8C7},
6183 {0x1811F087, 0x6B5D80A3, 0x8971D22B, 0xE5A55B9A, 0xCA9EC1F8, 0x95FCBEDE, 0xE345E1D8, 0xA5A697D8} } ,
6184 { {0x8422A966, 0x264A22B4, 0x5B6A236F, 0x024CDC3D, 0xCB2FC1A2, 0xFBB91C14, 0x655DC825, 0x6210E563},
6185 {0x489A31B8, 0xF3674F9D, 0xD4584AD4, 0x7F0D4CEB, 0xD3F75017, 0x527EFD60, 0x9F87C748, 0x3286435F} } } ,
6186 { { {0xF49B1321, 0x052C93E3, 0x5668F683, 0x0456EA55, 0xDD12DE6E, 0xA39D3C2C, 0x631E5499, 0x37D162EF},
6187 {0xC39432FA, 0x38CA4855, 0x7BDD4C13, 0x038544E6, 0x781831E4, 0x6B87D5B3, 0x35BBF025, 0x2B3D8498} } ,
6188 { {0x0E05701E, 0x88411382, 0xBD4F6F46, 0x981519A0, 0xF3FB3777, 0x011E2F05, 0x0E8E3CE3, 0x7F0AC1DE},
6189 {0xD6D8EE29, 0x9BC01F8F, 0xC704F198, 0xAA3FD3E2, 0x34748259, 0x30C03019, 0x9A4B1601, 0x3A30B844} } } } ;
6190 static const fp12_t var_expected = { { { {0x68E3D995, 0xD16DBD85, 0x804CA796, 0x87135BB5, 0xE6D7095C, 0x0CFDB85D, 0x9A3A928C, 0x24C3B902},
6191 {0x0B119690, 0xA741CBAB, 0x9478ACA5, 0xBA5D83A8, 0x7508F1D0, 0xB687C602, 0x5888EBC5, 0xA85276D2} } ,
6192 { {0x3E9DD28F, 0x62588513, 0x1EFF860E, 0x1D85D2C4, 0x6DE043D3, 0x86C5CEF9, 0xE4571CBB, 0x5C42C9A9},
6193 {0x00CABD8B, 0x7C920089, 0xE4BA03E2, 0xFD686732, 0xDCBDB406, 0xD021A843, 0x727B9F42, 0x11D12E1A} } } ,
6194 { { {0x75291F17, 0x4F551B1D, 0x295F1EA7, 0xD4D95ABB, 0x6C28DBCB, 0x11E0CDC5, 0x4127A929, 0x70A2A5FA},
6195 {0x4A1A4414, 0x9391090E, 0x4B060D1B, 0x2D6C5106, 0x8943C7BC, 0x65639D8C, 0x5CD8FA50, 0x146D06E9} } ,
6196 { {0xDE098B35, 0xD8A466FC, 0x790DBBD7, 0x10C4D063, 0x88B2C813, 0xFFA74056, 0xDAC11402, 0x5802B95E},
6197 {0x199202E3, 0x0B873A14, 0x001F9472, 0x94045FB5, 0x7FEB399D, 0xA8E15F0A, 0xA09714E0, 0x878D5B62} } } ,
6198 { { {0x6D91217A, 0xF9C1F5CD, 0x7E0EE8C3, 0x0EBAC24B, 0x76CFAB47, 0x57C3203E, 0xDD00878F, 0x82423BD2},
6199 {0x9E9801A1, 0xC624415B, 0x589A9333, 0x0F8C67BA, 0xDBCA57D1, 0x8FD886B7, 0x0A62EC03, 0x8ED61A2A} } ,
6200 { {0x5426C47D, 0x76AD762F, 0x17287000, 0x7AFC9300, 0x5FE7523D, 0xFA422D65, 0x31909F45, 0x3B08DCE4},
6201 {0x8B534672, 0x632E6A21, 0x0D72EDAE, 0x68D1D8BE, 0x1F6E075B, 0xCAA02C52, 0xA5D3C627, 0x7FE2E67D} } } } ;
6203 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2649 a000");
6204 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2650 a001");
6205 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2651 a010");
6206 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2652 a011");
6207 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2653 a100");
6208 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2654 a101");
6209 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2655 a110");
6210 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2656 a111");
6211 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2657 a200");
6212 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2658 a201");
6213 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2659 a210");
6214 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2660 a211");
6217 static const fp12_t var_a = { { { {0x38C7BA3F, 0x36D71AEC, 0x24CA0CF2, 0xCA441A03, 0xDC84FB77, 0x9ABC7DB4, 0xFB24CFD1, 0x1AF7C40C},
6218 {0xE72D5487, 0xC1972642, 0xBD4748C5, 0xB37D46E9, 0xCAECDEE5, 0x40658C41, 0x43ED91E8, 0x1A3F5117} } ,
6219 { {0xC6543669, 0xCBA16D06, 0x2DCB6296, 0x6C212AE2, 0xF2795229, 0x11D93002, 0xBE8147F0, 0x42679851},
6220 {0xEA9B5733, 0x8719CF11, 0xA019DCC2, 0x11B6127F, 0x329BBA85, 0x5EBC5CEB, 0x66079317, 0x200FCFED} } } ,
6221 { { {0x233D86FD, 0x497DAF83, 0x3F3262AF, 0x574D2E7C, 0xD0CDB97A, 0x58017B4E, 0x6D8A6D66, 0x3D817080},
6222 {0xECB55B7C, 0x0E4465AD, 0x7401756B, 0xBD8C514A, 0xA9AED131, 0x9EC086F0, 0xB7EA8DD4, 0xB8E99C89} } ,
6223 { {0x3A328D4B, 0xF36B59F5, 0x5492BDED, 0x7F70EE3C, 0xAC55AD37, 0xA8618F4A, 0xDDD1CD4A, 0x21666690},
6224 {0x7595CD60, 0xBA3D0CBB, 0xD6618E1C, 0xCA734714, 0x0515D40C, 0x56931F7F, 0xAB40F80B, 0x1557165F} } } ,
6225 { { {0x58ACC3BD, 0x494C2611, 0x25D92B21, 0x4F1ED5B7, 0xF7FAB985, 0x6DB4F99E, 0xE288AAFE, 0x71296EEB},
6226 {0x125761B6, 0x2B27388A, 0x4BA86330, 0xB07F34D8, 0x02DD8237, 0x1A0BE3A3, 0x77D84CDE, 0x20067C95} } ,
6227 { {0xAC0D3E36, 0x0B311965, 0xD9BF5205, 0x60215939, 0x0E071A6B, 0x59D2E94F, 0x52505475, 0x370E2ECC},
6228 {0xB71AD23F, 0x401477FB, 0x17154457, 0x6308626D, 0x9AE8FD2D, 0xAA283F20, 0x501635C1, 0x3170098C} } } } ;
6229 static const fp12_t var_expected = { { { {0x29647A5C, 0xC8176EC5, 0xAFADD254, 0x48CD929D, 0x775D8E3D, 0x60A3DEB6, 0x44FA0C57, 0x9F1BDAB5},
6230 {0x7AFEE014, 0x3D57636E, 0x17309681, 0x5F9465B7, 0x88F5AACF, 0xBAFAD029, 0xFC314A40, 0x9FD44DAA} } ,
6231 { {0x9BD7FE32, 0x334D1CAA, 0xA6AC7CB0, 0xA6F081BE, 0x6169378B, 0xE9872C68, 0x819D9438, 0x77AC0670},
6232 {0x7790DD68, 0x77D4BA9F, 0x345E0284, 0x015B9A21, 0x2146CF30, 0x9CA3FF80, 0xDA174911, 0x9A03CED4} } } ,
6233 { { {0x3EEEAD9E, 0xB570DA2E, 0x95457C97, 0xBBC47E24, 0x8314D03A, 0xA35EE11C, 0xD2946EC2, 0x7C922E41},
6234 {0x7576D91F, 0xF0AA2403, 0x607669DB, 0x55855B56, 0xAA33B883, 0x5C9FD57A, 0x88344E54, 0x012A0238} } ,
6235 { {0x27F9A750, 0x0B832FBC, 0x7FE52159, 0x93A0BE64, 0xA78CDC7D, 0x52FECD20, 0x624D0EDE, 0x98AD3831},
6236 {0xEC96673B, 0x44B17CF5, 0xFE16512A, 0x489E658B, 0x4ECCB5A8, 0xA4CD3CEC, 0x94DDE41D, 0xA4BC8862} } } ,
6237 { { {0x097F70DE, 0xB5A263A0, 0xAE9EB425, 0xC3F2D6E9, 0x5BE7D02F, 0x8DAB62CC, 0x5D96312A, 0x48EA2FD6},
6238 {0x4FD4D2E5, 0xD3C75127, 0x88CF7C16, 0x629277C8, 0x5105077D, 0xE15478C8, 0xC8468F4A, 0x9A0D222C} } ,
6239 { {0xB61EF665, 0xF3BD704B, 0xFAB88D41, 0xB2F05366, 0x45DB6F49, 0xA18D731C, 0xEDCE87B3, 0x83056FF5},
6240 {0xAB11625C, 0xBEDA11B5, 0xBD629AEF, 0xB0094A33, 0xB8F98C87, 0x51381D4A, 0xF008A667, 0x88A39535} } } } ;
6242 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2661 a000");
6243 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2662 a001");
6244 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2663 a010");
6245 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2664 a011");
6246 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2665 a100");
6247 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2666 a101");
6248 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2667 a110");
6249 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2668 a111");
6250 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2669 a200");
6251 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2670 a201");
6252 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2671 a210");
6253 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2672 a211");
6256 static const fp12_t var_a = { { { {0x40711D06, 0x3D710A34, 0xFF1A9D08, 0x790AE0A5, 0x39F1C65A, 0x60C20EF2, 0x02892DAF, 0x0017D861},
6257 {0x4B439C9F, 0x1BBFB57C, 0xBED43306, 0xA19FB1F9, 0x0DBF911B, 0x28BD585B, 0x2C2ABEEA, 0x83AED89A} } ,
6258 { {0xE75898E8, 0x1C5E4506, 0xBA81E319, 0xEB1AC6F8, 0x539F9170, 0xA9A964E6, 0x06402D06, 0x84FDA2A5},
6259 {0x7C02BF29, 0x1FE4A538, 0x5DFE0167, 0xB74B4856, 0x2C3E8135, 0xDF43A366, 0x3F98ACBC, 0x78D99848} } } ,
6260 { { {0x68C188EE, 0x2B078431, 0x71EF70F8, 0xD61F06D0, 0x7B547A80, 0xAF1BBD4B, 0x3546B0CF, 0x5EF3742A},
6261 {0x761E4009, 0xECBD6974, 0xA31469BE, 0x0AB0AC65, 0x6217144A, 0x64AD47BC, 0x7DCDB1EE, 0x3F1D5804} } ,
6262 { {0x52AEA1DF, 0x2B9601FF, 0x1FC2F0FB, 0xE6B62A35, 0x63622225, 0x1FEAA2A4, 0xA2B8B0DE, 0x51018008},
6263 {0x2CCC3BA0, 0x60A99A07, 0xD1249DED, 0x8D08465C, 0xA3EEE966, 0x7CB089D1, 0x1E2BB384, 0x30C1C060} } } ,
6264 { { {0x121C2A66, 0x1EB9EACA, 0x27B3B828, 0xF583DF24, 0xA8887DDB, 0xEB54F814, 0x62B44B85, 0xA62F1055},
6265 {0x84C3C455, 0x9FE99444, 0x7068C873, 0x01054EFA, 0x3653841F, 0x441A0A77, 0x141EF3ED, 0x86F27797} } ,
6266 { {0xF3D04FF2, 0x44B1DDDC, 0x5B27E3DE, 0x07C1A81B, 0xD2C58943, 0x491A876A, 0x8CA6C7BB, 0x2D16F96F},
6267 {0x2DCBEB11, 0x0A046E49, 0x9B43054C, 0xAF0D8C29, 0xE8666A97, 0x0A9EE40F, 0x96A73421, 0xA319DAFA} } } } ;
6268 static const fp12_t var_expected = { { { {0x21BB1795, 0xC17D7F7D, 0xD55D423E, 0x9A06CBFA, 0x19F0C35A, 0x9A9E4D79, 0x3D95AE79, 0xB9FBC661},
6269 {0x16E897FC, 0xE32ED435, 0x15A3AC40, 0x7171FAA7, 0x4622F899, 0xD2A30410, 0x13F41D3E, 0x3664C628} } ,
6270 { {0x7AD39BB3, 0xE29044AA, 0x19F5FC2D, 0x27F6E5A8, 0x0042F844, 0x51B6F785, 0x39DEAF22, 0x3515FC1D},
6271 {0xE6297572, 0xDF09E478, 0x7679DDDF, 0x5BC6644A, 0x27A4087F, 0x1C1CB905, 0x00862F6C, 0x413A067A} } } ,
6272 { { {0xF96AABAD, 0xD3E7057F, 0x62886E4E, 0x3CF2A5D0, 0xD88E0F34, 0x4C449F1F, 0x0AD82B59, 0x5B202A98},
6273 {0xEC0DF492, 0x1231203C, 0x31637588, 0x0861003B, 0xF1CB756B, 0x96B314AE, 0xC2512A3A, 0x7AF646BD} } ,
6274 { {0x0F7D92BC, 0xD35887B2, 0xB4B4EE4B, 0x2C5B826B, 0xF080678F, 0xDB75B9C6, 0x9D662B4A, 0x69121EB9},
6275 {0x355FF8FB, 0x9E44EFAA, 0x03534159, 0x86096644, 0xAFF3A04E, 0x7EAFD299, 0x21F328A4, 0x8951DE62} } } ,
6276 { { {0x50100A35, 0xE0349EE7, 0xACC4271E, 0x1D8DCD7C, 0xAB5A0BD9, 0x100B6456, 0xDD6A90A3, 0x13E48E6C},
6277 {0xDD687046, 0x5F04F56C, 0x640F16D3, 0x120C5DA6, 0x1D8F0596, 0xB74651F4, 0x2BFFE83B, 0x3321272B} } ,
6278 { {0x6E5BE4A9, 0xBA3CABD4, 0x794FFB68, 0x0B500485, 0x811D0072, 0xB245D500, 0xB378146D, 0x8CFCA552},
6279 {0x3460498A, 0xF4EA1B68, 0x3934D9FA, 0x64042077, 0x6B7C1F1D, 0xF0C1785B, 0xA977A807, 0x16F9C3C7} } } } ;
6281 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2673 a000");
6282 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2674 a001");
6283 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2675 a010");
6284 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2676 a011");
6285 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2677 a100");
6286 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2678 a101");
6287 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2679 a110");
6288 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2680 a111");
6289 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2681 a200");
6290 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2682 a201");
6291 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2683 a210");
6292 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2684 a211");
6295 static const fp12_t var_a = { { { {0xA5D9E4C7, 0x1D1FF768, 0x495E60E2, 0x9E170DFF, 0xA8AF7D0E, 0x9F06259D, 0x33193EF9, 0x21C003CD},
6296 {0xB5AACCDC, 0x412ABAB4, 0xD43D259C, 0x13793020, 0x78420C5B, 0x5D050823, 0xD7109E74, 0x71077843} } ,
6297 { {0x5985CC9A, 0x6A676916, 0x146B9767, 0x50D17C7A, 0x85DC7AEC, 0x9F24C38E, 0x2C67C29F, 0x8CCF4814},
6298 {0xE926E848, 0x263871CF, 0xE2C9AEE9, 0xE42D0290, 0xE2A7B508, 0x10A05C86, 0x4E5A7E20, 0x18994C79} } } ,
6299 { { {0xB32B15D9, 0x2DC32962, 0x7A84DD89, 0xD2714AFD, 0x60A94016, 0x44CD5F9E, 0x0E0CFA6C, 0x43172A04},
6300 {0xD6D15D97, 0xD9C32D12, 0xCA95EE09, 0x1D332316, 0x63D2CA2F, 0x335432E5, 0xAF8BE923, 0x0148582F} } ,
6301 { {0xC5DF9B4C, 0xA8FAB2BE, 0xF4ABC3F0, 0x4F97D735, 0x687FDF6F, 0xB997FEBB, 0x6C904964, 0x8988EB60},
6302 {0x66AE0503, 0xBD3EC707, 0xFC631D31, 0xE22D6CC4, 0x25645003, 0x1C4DF693, 0xAFE42DA0, 0x1DA5A15B} } } ,
6303 { { {0x7A8D74C7, 0x5AB952DC, 0x671EF4C8, 0x20476A16, 0xBA15F0A1, 0x70E97544, 0xDC5C69AB, 0x287538A1},
6304 {0x4CDED61D, 0x6FB005A2, 0x79ADB6BC, 0xE54B1A42, 0xE0A17CB3, 0x4DF0B6CA, 0x44C91F1E, 0x8050F49F} } ,
6305 { {0x01F6E98F, 0x068D8C30, 0xF81BE635, 0xDE8E287B, 0xB524CB85, 0x1A6634CE, 0x3229818A, 0x273348AC},
6306 {0x30B65372, 0xD3703306, 0x8B4DABB8, 0xA81E9DAE, 0x966B17A7, 0xA723E2FD, 0x22D942F8, 0x27BA51EA} } } } ;
6307 static const fp12_t var_expected = { { { {0xBC524FD4, 0xE1CE9248, 0x8B197E64, 0x74FA9EA1, 0xAB330CA6, 0x5C5A36CD, 0x0D059D2F, 0x98539AF5},
6308 {0xAC8167BF, 0xBDC3CEFC, 0x003AB9AA, 0xFF987C80, 0xDBA07D59, 0x9E5B5447, 0x690E3DB4, 0x490C267E} } ,
6309 { {0x08A66801, 0x9487209B, 0xC00C47DF, 0xC2403026, 0xCE060EC8, 0x5C3B98DC, 0x13B71989, 0x2D4456AE},
6310 {0x79054C53, 0xD8B617E1, 0xF1AE305D, 0x2EE4AA0F, 0x713AD4AC, 0xEABFFFE4, 0xF1C45E08, 0xA17A5248} } } ,
6311 { { {0xAF011EC2, 0xD12B604E, 0x59F301BD, 0x40A061A3, 0xF339499E, 0xB692FCCC, 0x3211E1BC, 0x76FC74BE},
6312 {0x8B5AD704, 0x252B5C9E, 0x09E1F13D, 0xF5DE898A, 0xF00FBF85, 0xC80C2985, 0x9092F305, 0xB8CB4692} } ,
6313 { {0x9C4C994F, 0x55F3D6F2, 0xDFCC1B56, 0xC379D56A, 0xEB62AA45, 0x41C85DAF, 0xD38E92C4, 0x308AB361},
6314 {0xFB7E2F98, 0x41AFC2A9, 0xD814C215, 0x30E43FDB, 0x2E7E39B1, 0xDF1265D8, 0x903AAE88, 0x9C6DFD66} } } ,
6315 { { {0xE79EBFD4, 0xA43536D4, 0x6D58EA7E, 0xF2CA428A, 0x99CC9913, 0x8A76E726, 0x63C2727D, 0x919E6620},
6316 {0x154D5E7E, 0x8F3E840F, 0x5ACA288A, 0x2DC6925E, 0x73410D01, 0xAD6FA5A0, 0xFB55BD0A, 0x39C2AA22} } ,
6317 { {0x60354B0C, 0xF860FD81, 0xDC5BF911, 0x34838424, 0x9EBDBE2F, 0xE0FA279C, 0x0DF55A9E, 0x92E05616},
6318 {0x3175E129, 0x2B7E56AB, 0x492A338E, 0x6AF30EF2, 0xBD77720D, 0x543C796D, 0x1D459930, 0x92594CD8} } } } ;
6320 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2685 a000");
6321 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2686 a001");
6322 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2687 a010");
6323 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2688 a011");
6324 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2689 a100");
6325 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2690 a101");
6326 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2691 a110");
6327 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2692 a111");
6328 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2693 a200");
6329 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2694 a201");
6330 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2695 a210");
6331 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2696 a211");
6334 static const fp12_t var_a = { { { {0x6453A8E1, 0xAD06CC83, 0x37C045D1, 0x50027E7E, 0xA15302B1, 0xAC9F7089, 0x452DBEA6, 0x1699483F},
6335 {0x81491DCE, 0x098E45B5, 0x0A76FD17, 0x35E02DD7, 0xD7E35FC3, 0x3427DF90, 0x3E78C554, 0x3581D3EE} } ,
6336 { {0x7506BB29, 0x8B75BCEB, 0x48A90C34, 0xC7A5533B, 0x567468C8, 0x4906A75F, 0x270D4633, 0xADF00638},
6337 {0x8B5C8C6A, 0x7331E2ED, 0x3CAD3832, 0xC6A886A0, 0x20D4C08D, 0x47C0E248, 0x8D82592E, 0x529C3F4B} } } ,
6338 { { {0xFDAA004F, 0x28A1E0D7, 0x9199F6BD, 0x63C9E7C7, 0xF67B59F3, 0x7138D214, 0xB0F07773, 0x85C1CA36},
6339 {0xDC60975B, 0xB29E8004, 0xA5941A10, 0xD410ECEB, 0x2E5F8EE8, 0x6FAA916A, 0x45BBE31A, 0x68FE5ABF} } ,
6340 { {0x8AA35A8C, 0x412F69B4, 0x0C76DF90, 0xD14DEF99, 0x322A1CBE, 0xCFD2FE68, 0xF30B9419, 0x622622DC},
6341 {0x404598F3, 0xA643E45E, 0x0B395075, 0x17C1CDEB, 0xFFD00E91, 0x7FA7EA0A, 0xD91C0447, 0x9F26A1F7} } } ,
6342 { { {0x890B5331, 0xD7084BA1, 0x1D3F7D94, 0xE8D956D5, 0xA76D8356, 0x55A0991D, 0x0753B120, 0x8EFADFEF},
6343 {0xC54526E4, 0x70C87B84, 0x72622714, 0x8A02AB21, 0xCF6E5771, 0x878FD4AE, 0x002952A4, 0x61B0FFB4} } ,
6344 { {0xA7B395D1, 0x2D59FB99, 0x6BD8CA17, 0xC47CD66C, 0x31161F04, 0x330A0C7E, 0x3EE90FF1, 0x907D5891},
6345 {0xB8BB0389, 0x721FA444, 0x20E43350, 0x644E3BDE, 0x1C47FD62, 0xD860502A, 0xAE384D5F, 0x56E3959A} } } } ;
6346 static const fp12_t var_expected = { { { {0xFDD88BBA, 0x51E7BD2D, 0x9CB79975, 0xC30F2E22, 0xB28F8703, 0x4EC0EBE1, 0xFAF11D82, 0xA37A5682},
6347 {0xE0E316CD, 0xF56043FB, 0xCA00E22F, 0xDD317EC9, 0x7BFF29F1, 0xC7387CDA, 0x01A616D4, 0x8491CAD4} } ,
6348 { {0xED257972, 0x7378CCC5, 0x8BCED312, 0x4B6C5965, 0xFD6E20EC, 0xB259B50B, 0x191195F5, 0x0C23988A},
6349 {0xD6CFA831, 0x8BBCA6C3, 0x97CAA714, 0x4C692600, 0x330DC927, 0xB39F7A23, 0xB29C82FA, 0x67775F76} } } ,
6350 { { {0x6482344C, 0xD64CA8D9, 0x42DDE889, 0xAF47C4D9, 0x5D672FC1, 0x8A278A56, 0x8F2E64B5, 0x3451D48B},
6351 {0x85CB9D40, 0x4C5009AC, 0x2EE3C536, 0x3F00BFB5, 0x2582FACC, 0x8BB5CB01, 0xFA62F90E, 0x51154402} } ,
6352 { {0xD788DA0F, 0xBDBF1FFC, 0xC800FFB6, 0x41C3BD07, 0x21B86CF6, 0x2B8D5E03, 0x4D13480F, 0x57ED7BE5},
6353 {0x21E69BA8, 0x58AAA553, 0xC93E8ED1, 0xFB4FDEB5, 0x54127B23, 0x7BB87260, 0x6702D7E1, 0x1AECFCCA} } } ,
6354 { { {0xD920E16A, 0x27E63E0F, 0xB73861B2, 0x2A3855CB, 0xAC75065E, 0xA5BFC34D, 0x38CB2B08, 0x2B18BED3},
6355 {0x9CE70DB7, 0x8E260E2C, 0x6215B832, 0x890F017F, 0x84743243, 0x73D087BC, 0x3FF58984, 0x58629F0E} } ,
6356 { {0xBA789ECA, 0xD1948E17, 0x689F152F, 0x4E94D634, 0x22CC6AB0, 0xC8564FED, 0x0135CC37, 0x29964631},
6357 {0xA9713112, 0x8CCEE56C, 0xB393ABF6, 0xAEC370C2, 0x379A8C52, 0x23000C41, 0x91E68EC9, 0x63300927} } } } ;
6359 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2697 a000");
6360 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2698 a001");
6361 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2699 a010");
6362 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2700 a011");
6363 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2701 a100");
6364 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2702 a101");
6365 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2703 a110");
6366 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2704 a111");
6367 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2705 a200");
6368 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2706 a201");
6369 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2707 a210");
6370 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2708 a211");
6373 static const fp12_t var_a = { { { {0xD2F1C7B1, 0xC39D045B, 0xDA580725, 0xBB3D9CA8, 0xEFA43622, 0xDB27208D, 0x3071C365, 0x33E38287},
6374 {0xA5ED1F0A, 0x4B95CF33, 0x99ECE834, 0x1EDEDA5C, 0xA1019A3F, 0x04504FF0, 0x18CC00F2, 0x6843782A} } ,
6375 { {0x3571F459, 0x59B6FF16, 0x8E5A2914, 0x67ACBAEC, 0x3C1C18CE, 0xFECE8893, 0xB05C91D1, 0x7EE39E1C},
6376 {0xF8B377A6, 0xE0F2064E, 0xCDDD473E, 0x60298F32, 0x09CC9AA7, 0xDF76CFD9, 0x74BB803F, 0x050CD9F8} } } ,
6377 { { {0xDBD6573F, 0xF40666E9, 0x19D2E799, 0x8F5EAE98, 0x62ED3051, 0x91433135, 0x941D270F, 0x0136BFAC},
6378 {0x80F514F8, 0x4E4500B0, 0x6D7CD9C1, 0x47BEAA6D, 0x39B79517, 0x72697092, 0xF5046682, 0x0B1450A6} } ,
6379 { {0x9B6AF490, 0xCD2D09CA, 0x9EBA6D08, 0x84DAB516, 0x3A34B63A, 0xB727DBCD, 0xF011AD2F, 0x7489925B},
6380 {0x8EA33D21, 0xF647409D, 0xBAE8D47C, 0x0D77AE75, 0xAD169409, 0x0C5C5DD1, 0x927B42E7, 0x23F18E61} } } ,
6381 { { {0x3735BA78, 0x6CC7CA7C, 0x82AD78F6, 0x6772C9FA, 0xE5AF8C81, 0xF0CB7657, 0x9B9BA722, 0x70445E78},
6382 {0x85539A71, 0x7C86483B, 0xBF769585, 0xF1F90FEC, 0x266E6828, 0x4EDD60E0, 0xBF01393B, 0x067D9624} } ,
6383 { {0xDF560DBB, 0x92DC0895, 0xED726CFB, 0xCF772F9D, 0xC087C148, 0xEC9E7A6C, 0x688962B9, 0x00D14BEF},
6384 {0x5AA37113, 0xBFCA0689, 0xBD34E22E, 0xE8E20FB1, 0x9D3B21FA, 0xFC402989, 0xB0E8E338, 0x0E172145} } } } ;
6385 static const fp12_t var_expected = { { { {0x8F3A6CEA, 0x3B518555, 0xFA1FD821, 0x57D40FF7, 0x643E5392, 0x20393BDD, 0x0FAD18C3, 0x86301C3B},
6386 {0xBC3F1591, 0xB358BA7D, 0x3A8AF712, 0xF432D244, 0xB2E0EF75, 0xF7100C7A, 0x2752DB36, 0x51D02698} } ,
6387 { {0x2CBA4042, 0xA5378A9B, 0x461DB632, 0xAB64F1B4, 0x17C670E6, 0xFC91D3D8, 0x8FC24A56, 0x3B3000A5},
6388 {0x6978BCF5, 0x1DFC8362, 0x069A9808, 0xB2E81D6E, 0x4A15EF0D, 0x1BE98C92, 0xCB635BE9, 0xB506C4C9} } } ,
6389 { { {0x8655DD5C, 0x0AE822C7, 0xBAA4F7AD, 0x83B2FE08, 0xF0F55963, 0x6A1D2B35, 0xAC01B519, 0xB8DCDF15},
6390 {0xE1371FA3, 0xB0A98900, 0x66FB0585, 0xCB530233, 0x1A2AF49D, 0x88F6EBD9, 0x4B1A75A6, 0xAEFF4E1B} } ,
6391 { {0xC6C1400B, 0x31C17FE6, 0x35BD723E, 0x8E36F78A, 0x19ADD37A, 0x4438809E, 0x500D2EF9, 0x458A0C66},
6392 {0xD388F77A, 0x08A74913, 0x198F0ACA, 0x0599FE2B, 0xA6CBF5AC, 0xEF03FE99, 0xADA39941, 0x96221060} } } ,
6393 { { {0x2AF67A23, 0x9226BF35, 0x51CA6650, 0xAB9EE2A6, 0x6E32FD33, 0x0A94E613, 0xA4833506, 0x49CF4049},
6394 {0xDCD89A2A, 0x82684175, 0x150149C1, 0x21189CB4, 0x2D74218C, 0xAC82FB8B, 0x811DA2ED, 0xB396089D} } ,
6395 { {0x82D626E0, 0x6C12811B, 0xE705724B, 0x439A7D02, 0x935AC86C, 0x0EC1E1FE, 0xD795796F, 0xB94252D2},
6396 {0x0788C388, 0x3F248328, 0x1742FD18, 0x2A2F9CEF, 0xB6A767BA, 0xFF2032E1, 0x8F35F8EF, 0xABFC7D7C} } } } ;
6398 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2709 a000");
6399 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2710 a001");
6400 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2711 a010");
6401 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2712 a011");
6402 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2713 a100");
6403 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2714 a101");
6404 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2715 a110");
6405 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2716 a111");
6406 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2717 a200");
6407 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2718 a201");
6408 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2719 a210");
6409 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2720 a211");
6412 static const fp12_t var_a = { { { {0x25D71F48, 0x3BF285A6, 0xBE4C1445, 0xD0C6BE40, 0x631B7821, 0x8E3D1F40, 0x2C67D3C2, 0x9927A28A},
6413 {0x1A7943F4, 0xE0CE84FD, 0xB7045E41, 0xE7BFB104, 0x50CEBB7C, 0x2451B846, 0x1E2C6FD0, 0xA279F0F4} } ,
6414 { {0x8FEEF48B, 0xABBBE184, 0x1F11E8CB, 0x49BDCF53, 0xB0DD61DC, 0x16238048, 0x7EB4F2B4, 0x98AEEB17},
6415 {0xEBD35FB4, 0x414D4180, 0x77ECCE69, 0xF197FA9C, 0xC018698B, 0x285DB505, 0x39C132CF, 0x3D53A37B} } } ,
6416 { { {0x6E88EC83, 0x6476B139, 0xCA2870EB, 0xA775C981, 0x19FCB1DF, 0xEF78BB8C, 0x316D9F10, 0x7E8F6E2A},
6417 {0xE35292E5, 0x815CDFB5, 0xD5130DC8, 0xC92A456B, 0xF7521F89, 0x830EFF0E, 0x391F8664, 0xB19BD489} } ,
6418 { {0xEE39C549, 0x2654E75B, 0xE287F639, 0x82014F53, 0xF8C25F85, 0xCB46CC82, 0x1BBDD007, 0x56E4D649},
6419 {0x4675C04D, 0x858D3BC7, 0x420F21D3, 0xDC7EED63, 0xA691739A, 0x1BCEDBE0, 0x92BAD782, 0x3DF2B0D4} } } ,
6420 { { {0x7C3D715C, 0xF278D90E, 0xCD75EEF4, 0xB30A3F19, 0xED4FF20D, 0x9BE2B2F1, 0x506F24F5, 0x675B1F6D},
6421 {0xAA26004E, 0x69DB195D, 0x15AD5738, 0x71873615, 0x58B10E9E, 0xEEE2FD1C, 0xF9481AE2, 0x3678CE72} } ,
6422 { {0xC5424A35, 0x080B23A8, 0x30DDEFD6, 0x5363CA6F, 0xD4611735, 0x8F0065B2, 0x263EC5FB, 0x3CC75E98},
6423 {0x35FA6144, 0x91C903AF, 0x16403AF0, 0x86AA7EF6, 0x8EE83467, 0x5BD3FB90, 0xA43C3FD3, 0x142AD457} } } } ;
6424 static const fp12_t var_expected = { { { {0x3C551553, 0xC2FC040B, 0x162BCB01, 0x424AEE60, 0xF0C71193, 0x6D233D2A, 0x13B70866, 0x20EBFC38},
6425 {0x47B2F0A7, 0x1E2004B4, 0x1D738105, 0x2B51FB9C, 0x0313CE38, 0xD70EA425, 0x21F26C58, 0x1799ADCE} } ,
6426 { {0xD23D4010, 0x5332A82C, 0xB565F67B, 0xC953DD4D, 0xA30527D8, 0xE53CDC22, 0xC169E974, 0x2164B3AA},
6427 {0x7658D4E7, 0xBDA14830, 0x5C8B10DD, 0x2179B204, 0x93CA2029, 0xD302A765, 0x065DA959, 0x7CBFFB47} } } ,
6428 { { {0xF3A34818, 0x9A77D877, 0x0A4F6E5B, 0x6B9BE31F, 0x39E5D7D5, 0x0BE7A0DF, 0x0EB13D18, 0x3B843098},
6429 {0x7ED9A1B6, 0x7D91A9FB, 0xFF64D17E, 0x49E76734, 0x5C906A2B, 0x78515D5C, 0x06FF55C4, 0x0877CA39} } ,
6430 { {0x73F26F52, 0xD899A255, 0xF1EFE90D, 0x91105D4C, 0x5B202A2F, 0x30198FE8, 0x24610C21, 0x632EC879},
6431 {0x1BB6744E, 0x79614DEA, 0x9268BD73, 0x3692BF3D, 0xAD51161A, 0xDF91808A, 0xAD6404A6, 0x7C20EDED} } } ,
6432 { { {0xE5EEC33F, 0x0C75B0A2, 0x0701F052, 0x60076D87, 0x669297A7, 0x5F7DA979, 0xEFAFB733, 0x52B87F54},
6433 {0xB806344D, 0x95137053, 0xBECA880E, 0xA18A768B, 0xFB317B16, 0x0C7D5F4E, 0x46D6C146, 0x839AD04F} } ,
6434 { {0x9CE9EA66, 0xF6E36608, 0xA399EF70, 0xBFADE231, 0x7F81727F, 0x6C5FF6B8, 0x19E0162D, 0x7D4C402A},
6435 {0x2C31D357, 0x6D258602, 0xBE37A456, 0x8C672DAA, 0xC4FA554D, 0x9F8C60DA, 0x9BE29C55, 0xA5E8CA6A} } } } ;
6437 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2721 a000");
6438 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2722 a001");
6439 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2723 a010");
6440 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2724 a011");
6441 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2725 a100");
6442 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2726 a101");
6443 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2727 a110");
6444 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2728 a111");
6445 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2729 a200");
6446 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2730 a201");
6447 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2731 a210");
6448 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2732 a211");
6451 static const fp12_t var_a = { { { {0xB63ED9D1, 0xEA42E9CF, 0xF09B26A3, 0xBB954EF4, 0xC9288E59, 0x18C3E1CC, 0x322385AD, 0x9DAE19C9},
6452 {0xD7E12124, 0x9EAD0C83, 0x9E153BF6, 0xA8164C50, 0x5A502898, 0xEE9FCE4E, 0x066CC052, 0x7A533995} } ,
6453 { {0x7C3B327F, 0x5A7B847C, 0x32D335AB, 0x8574F466, 0x2A1666B5, 0xE9CA6942, 0x49A72BAC, 0x92DC17DA},
6454 {0x5D20A8BA, 0x7019DB77, 0x736E50E7, 0x90F8CBB9, 0xB848C069, 0x78EE2DCC, 0x96C51B3B, 0x91B72665} } } ,
6455 { { {0x8528E473, 0x57418D6A, 0x5B378FD4, 0x89AA12B1, 0x95AC9163, 0xF146DB15, 0x7F32F87A, 0x66F0BD47},
6456 {0x7119A289, 0x29EB47EB, 0xC5CEE77C, 0x230BF7F2, 0x914786A3, 0x101B5E73, 0xC8A04FC6, 0x092171E9} } ,
6457 { {0x7CAA7C05, 0x23644DF2, 0x10603EE2, 0xE04A5489, 0xE44FCD2F, 0x62043263, 0x2A5C58F5, 0xA1EDEAFD},
6458 {0x87FF39A3, 0x2803937E, 0x56A52349, 0xD5815BF4, 0x5F19585A, 0xF627709D, 0x52A55773, 0xB959B4EE} } } ,
6459 { { {0x50EB9F86, 0x3F05955B, 0x36182808, 0xE460A3AE, 0x3715DA6D, 0xAC7E2B97, 0xDF3AD21F, 0x0BCC5998},
6460 {0x05E84415, 0x1008679A, 0x2FED03D0, 0xE4E306C0, 0xE2CFC938, 0xCC0DBCC2, 0xA7EC7773, 0x5BEB1F07} } ,
6461 { {0x2C6AB41A, 0x6CA8F310, 0xF2ADBD0C, 0x2D80D7F2, 0xEA920C55, 0x81EF0E18, 0x72B42248, 0xAF0787BE},
6462 {0xB92B776D, 0xC3D3FE07, 0x12B4054B, 0x0A3F8CA4, 0x17909768, 0x612AD995, 0x3E6192A1, 0x186B169F} } } } ;
6463 static const fp12_t var_expected = { { { {0xABED5ACA, 0x14AB9FE1, 0xE3DCB8A3, 0x577C5DAB, 0x8AB9FB5B, 0xE29C7A9E, 0x0DFB567B, 0x1C6584F9},
6464 {0x8A4B1377, 0x60417D2D, 0x3662A350, 0x6AFB6050, 0xF992611C, 0x0CC08E1C, 0x39B21BD6, 0x3FC0652D} } ,
6465 { {0xE5F1021C, 0xA4730534, 0xA1A4A99B, 0x8D9CB83A, 0x29CC22FF, 0x1195F329, 0xF677B07C, 0x273786E7},
6466 {0x050B8BE1, 0x8ED4AE3A, 0x61098E5F, 0x8218E0E7, 0x9B99C94B, 0x82722E9E, 0xA959C0ED, 0x285C785C} } } ,
6467 { { {0xDD035028, 0xA7ACFC46, 0x79404F72, 0x896799EF, 0xBE35F851, 0x0A198155, 0xC0EBE3AE, 0x5322E17A},
6468 {0xF1129212, 0xD50341C5, 0x0EA8F7CA, 0xF005B4AE, 0xC29B0311, 0xEB44FDF7, 0x777E8C62, 0xB0F22CD8} } ,
6469 { {0xE581B896, 0xDB8A3BBE, 0xC417A064, 0x32C75817, 0x6F92BC85, 0x995C2A07, 0x15C28333, 0x1825B3C5},
6470 {0xDA2CFAF8, 0xD6EAF632, 0x7DD2BBFD, 0x3D9050AC, 0xF4C9315A, 0x0538EBCD, 0xED7984B5, 0x00B9E9D3} } } ,
6471 { { {0x11409515, 0xBFE8F456, 0x9E5FB73E, 0x2EB108F2, 0x1CCCAF47, 0x4EE230D4, 0x60E40A09, 0xAE474529},
6472 {0x5C43F086, 0xEEE62217, 0xA48ADB76, 0x2E2EA5E0, 0x7112C07C, 0x2F529FA8, 0x983264B5, 0x5E287FBA} } ,
6473 { {0x35C18081, 0x924596A1, 0xE1CA223A, 0xE590D4AD, 0x69507D5F, 0x79714E52, 0xCD6AB9E0, 0x0B0C1703},
6474 {0xA900BD2E, 0x3B1A8BA9, 0xC1C3D9FB, 0x08D21FFC, 0x3C51F24D, 0x9A3582D6, 0x01BD4987, 0xA1A88823} } } } ;
6476 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2733 a000");
6477 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2734 a001");
6478 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2735 a010");
6479 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2736 a011");
6480 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2737 a100");
6481 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2738 a101");
6482 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2739 a110");
6483 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2740 a111");
6484 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2741 a200");
6485 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2742 a201");
6486 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2743 a210");
6487 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2744 a211");
6490 static const fp12_t var_a = { { { {0x1D9EED71, 0xAB54CBA2, 0xD4CA4537, 0x81427BED, 0x45CDA5E8, 0xD6FE3D85, 0xB9AEB380, 0x1B1C7BC2},
6491 {0xD631CE89, 0x5E884FF5, 0x866AE482, 0x78B738F1, 0x386212BB, 0xB95501F5, 0x8A137360, 0x880439CB} } ,
6492 { {0xF4A82972, 0x3C4F034F, 0x001BD0BF, 0x32326474, 0x2277BB59, 0xCFB20D4E, 0xC9FB6E0A, 0x057CD3F6},
6493 {0x82BA2F22, 0x45384C65, 0x4EFD7C0F, 0x2F757609, 0xC50388AD, 0x3388C9B7, 0xC36F1375, 0x2659DF18} } } ,
6494 { { {0x7A614533, 0xA1D509B3, 0xDCEE93F5, 0x61A5EAA4, 0xA2E05F50, 0xEABF68E2, 0x7771DF07, 0x0A52FD42},
6495 {0xAD600FB2, 0x194C36B8, 0xC6D32786, 0xBCE84B60, 0xCF98BAE5, 0x5BB46D25, 0x5BC6E7A9, 0x94D56133} } ,
6496 { {0xDBBCF716, 0x9D94767A, 0x8CC144CA, 0xA5F0BF0D, 0x22C65992, 0xD7F85D10, 0x9752DBDB, 0x32CBC255},
6497 {0xC164D577, 0xBBF94186, 0xDF511EA7, 0xC2EF4EDF, 0x00288E94, 0x0791EAFA, 0x88E11E39, 0x42CA768C} } } ,
6498 { { {0x486D2810, 0x2DC9ADB2, 0x22102F40, 0x00E5BA3F, 0xE738CD57, 0x81FE3FF5, 0xBF7FCFC7, 0x3993256F},
6499 {0x9059A30E, 0x4BFB064E, 0x457A6844, 0x63BB4635, 0x3CDB7726, 0x3F8EBEE9, 0x7FED0B28, 0x0C626991} } ,
6500 { {0x6E014425, 0x93944963, 0x3ECF2470, 0x881779DC, 0xCDE69A25, 0x16D0DC49, 0x444A9B5C, 0xAA0CE03C},
6501 {0x66161369, 0x29F96C52, 0x3DF1045B, 0xD70A58B0, 0x005F580F, 0x5200A9C6, 0x3731A540, 0x9CCA1DCD} } } } ;
6502 static const fp12_t var_expected = { { { {0x448D472A, 0x5399BE0F, 0xFFAD9A0F, 0x91CF30B2, 0x0E14E3CC, 0x24621EE6, 0x867028A8, 0x9EF722FF},
6503 {0x8BFA6612, 0xA06639BB, 0x4E0CFAC4, 0x9A5A73AF, 0x1B8076F9, 0x420B5A76, 0xB60B68C8, 0x320F64F6} } ,
6504 { {0x6D840B29, 0xC29F8661, 0xD45C0E87, 0xE0DF482C, 0x316ACE5B, 0x2BAE4F1D, 0x76236E1E, 0xB496CACB},
6505 {0xDF720579, 0xB9B63D4B, 0x857A6337, 0xE39C3697, 0x8EDF0107, 0xC7D792B3, 0x7CAFC8B3, 0x93B9BFA9} } } ,
6506 { { {0xE7CAEF68, 0x5D197FFD, 0xF7894B51, 0xB16BC1FB, 0xB1022A64, 0x10A0F388, 0xC8ACFD21, 0xAFC0A17F},
6507 {0xB4CC24E9, 0xE5A252F8, 0x0DA4B7C0, 0x56296140, 0x8449CECF, 0x9FABEF45, 0xE457F47F, 0x253E3D8E} } ,
6508 { {0x866F3D85, 0x615A1336, 0x47B69A7C, 0x6D20ED93, 0x311C3022, 0x2367FF5B, 0xA8CC004D, 0x8747DC6C},
6509 {0xA0C75F24, 0x42F5482A, 0xF526C09F, 0x50225DC0, 0x53B9FB20, 0xF3CE7171, 0xB73DBDEF, 0x77492835} } } ,
6510 { { {0x19BF0C8B, 0xD124DBFF, 0xB267B006, 0x122BF261, 0x6CA9BC5E, 0x79621C75, 0x809F0C61, 0x80807952},
6511 {0xD1D2918D, 0xB2F38362, 0x8EFD7702, 0xAF56666B, 0x1707128E, 0xBBD19D82, 0xC031D100, 0xADB13530} } ,
6512 { {0xF42AF076, 0x6B5A404D, 0x95A8BAD6, 0x8AFA32C4, 0x85FBEF8F, 0xE48F8021, 0xFBD440CC, 0x1006BE85},
6513 {0xFC162132, 0xD4F51D5E, 0x9686DAEB, 0x3C0753F0, 0x538331A5, 0xA95FB2A5, 0x08ED36E8, 0x1D4980F5} } } } ;
6515 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2745 a000");
6516 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2746 a001");
6517 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2747 a010");
6518 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2748 a011");
6519 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2749 a100");
6520 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2750 a101");
6521 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2751 a110");
6522 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2752 a111");
6523 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2753 a200");
6524 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2754 a201");
6525 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2755 a210");
6526 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2756 a211");
6529 static const fp12_t var_a = { { { {0x1488BEC1, 0x531D85D2, 0x4C397CD5, 0x5F5FB2F4, 0xF807B0C8, 0x177ADB89, 0xFAA54868, 0x1FD747A5},
6530 {0x0D8722CF, 0xF8993C73, 0xA542624E, 0x70BBD133, 0x62B2EA22, 0xDD2FE0D4, 0x625E1271, 0x66C434D9} } ,
6531 { {0xEF1B6E1F, 0x2AF5F837, 0xC0D6225C, 0x691ACAD1, 0x10069D70, 0x20EB44C5, 0xB7AC5E9C, 0x891F8A67},
6532 {0xB45929EF, 0x9938325E, 0x168E2908, 0xFBAD99A2, 0xB267A496, 0xAB4EBE9E, 0xB6782726, 0x4D9A4EE7} } } ,
6533 { { {0x47468607, 0x1C17CD70, 0x823B2205, 0x46C0EDCE, 0xBAEB830C, 0x32BA81DC, 0xD042CB8B, 0x031D82B4},
6534 {0x04F0DF02, 0x2D4DA088, 0xBF7E420F, 0x5E0124DE, 0xDA051575, 0xD1A36DCF, 0xA98E0902, 0x024B1B92} } ,
6535 { {0xC78B1ED9, 0x6A4E3DA7, 0x3806A030, 0x10282E05, 0xD30C5BB9, 0x7D00262D, 0x9995A21E, 0x1565FD91},
6536 {0x743EB130, 0x1316DD74, 0x646A65C4, 0x0A091976, 0x512206F6, 0x94DC35C6, 0xEEBEF672, 0x59904428} } } ,
6537 { { {0x83373A44, 0x91411EAB, 0x44308828, 0x5713957A, 0x70D1178C, 0x6464457E, 0x687079C3, 0xB8804D6D},
6538 {0x67D6EC8B, 0xEE51F6E0, 0x0BF3A9F0, 0x40326F14, 0xDA63C378, 0x915CA6B2, 0xFC590115, 0x0FAA6A79} } ,
6539 { {0x21795106, 0x58376431, 0x78AFF730, 0x6A144BF6, 0xA3B7C21F, 0xAC6A4F69, 0x12535A53, 0x0CAD26B0},
6540 {0x0E7C0C51, 0x9EA50F34, 0x50057F82, 0xCC3E4EBB, 0xC51F10C4, 0x960D9CE5, 0x8760B156, 0x07B3924B} } } } ;
6541 static const fp12_t var_expected = { { { {0x4DA375DA, 0xABD103DF, 0x883E6271, 0xB3B1F9AC, 0x5BDAD8EC, 0xE3E580E1, 0x457993C0, 0x9A3C571C},
6542 {0x54A511CC, 0x06554D3E, 0x2F357CF8, 0xA255DB6D, 0xF12F9F92, 0x1E307B96, 0xDDC0C9B7, 0x534F69E8} } ,
6543 { {0x7310C67C, 0xD3F89179, 0x13A1BCEA, 0xA9F6E1CF, 0x43DBEC44, 0xDA7517A6, 0x88727D8C, 0x30F4145A},
6544 {0xADD30AAC, 0x65B65752, 0xBDE9B63E, 0x176412FE, 0xA17AE51E, 0x50119DCC, 0x89A6B502, 0x6C794FDA} } } ,
6545 { { {0x1AE5AE94, 0xE2D6BC41, 0x523CBD41, 0xCC50BED2, 0x98F706A8, 0xC8A5DA8E, 0x6FDC109D, 0xB6F61C0D},
6546 {0x5D3B5599, 0xD1A0E929, 0x14F99D37, 0xB51087C2, 0x79DD743F, 0x29BCEE9B, 0x9690D326, 0xB7C8832F} } ,
6547 { {0x9AA115C2, 0x94A04C09, 0x9C713F16, 0x02E97E9B, 0x80D62DFC, 0x7E60363D, 0xA6893A0A, 0xA4ADA130},
6548 {0xEDED836B, 0xEBD7AC3C, 0x700D7982, 0x0908932A, 0x02C082BF, 0x668426A5, 0x515FE5B6, 0x60835A99} } } ,
6549 { { {0xDEF4FA57, 0x6DAD6B05, 0x9047571E, 0xBBFE1726, 0xE3117228, 0x96FC16EC, 0xD7AE6265, 0x01935154},
6550 {0xFA554810, 0x109C92D0, 0xC8843556, 0xD2DF3D8C, 0x797EC63C, 0x6A03B5B8, 0x43C5DB13, 0xAA693448} } ,
6551 { {0x40B2E395, 0xA6B72580, 0x5BC7E816, 0xA8FD60AA, 0xB02AC795, 0x4EF60D01, 0x2DCB81D5, 0xAD667812},
6552 {0x53B0284A, 0x60497A7D, 0x84725FC4, 0x46D35DE5, 0x8EC378F0, 0x6552BF85, 0xB8BE2AD2, 0xB2600C76} } } } ;
6554 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 2757 a000");
6555 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 2758 a001");
6556 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 2759 a010");
6557 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 2760 a011");
6558 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 2761 a100");
6559 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 2762 a101");
6560 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 2763 a110");
6561 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 2764 a111");
6562 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 2765 a200");
6563 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 2766 a201");
6564 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 2767 a210");
6565 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 2768 a211");
6568 static const fp12_t var_a = { { { {0x94C4996D, 0xBA18800B, 0x8DCBE653, 0x6E1E5414, 0x56616376, 0x312615A1, 0xAC966D73, 0x429D8BB2},
6569 {0x75130E76, 0x450190C8, 0x35D17EED, 0xA77F1253, 0x50C3CD16, 0xB28F8137, 0x453C747C, 0xA9CE46E6} } ,
6570 { {0x650DB617, 0xFC8E05EF, 0xAA682673, 0x4115D794, 0x6B1C183D, 0x34A81FB4, 0xCAE80922, 0xB5DD9886},
6571 {0xEA9D14A2, 0x439F6E8F, 0x01927362, 0x0A76A2A4, 0xF784B78A, 0x38A95D58, 0x292EE986, 0x9FCC74F3} } } ,
6572 { { {0x80511951, 0xA05F1A28, 0xB3058FDF, 0x3E080A9C, 0xFF92EA8E, 0x25D03080, 0x02D476EB, 0x2E2A5DC2},
6573 {0x97DDB566, 0x3A2650C8, 0x6566914D, 0x5A51AECC, 0x2351DDFA, 0xBCF5CCD9, 0x2A7F2903, 0x18A5132A} } ,
6574 { {0xD53DBD8E, 0x638E6598, 0x75951EC2, 0x23B07360, 0x17B41A48, 0xACFAEA8F, 0xA8F073FC, 0x2AEA5F99},
6575 {0x71039580, 0x095FC3DA, 0xA1F7E036, 0x8AD94187, 0xCE0A2E30, 0x02DBC9B8, 0x7C6CEDA1, 0x696B81A0} } } ,
6576 { { {0x711BA1CD, 0x48C74386, 0x8472F6D2, 0xB7AE3D25, 0xFD18899E, 0xC03633C7, 0x93987465, 0x385E2F80},
6577 {0xFB96CDF6, 0xD609C2CF, 0x69A3A712, 0x4738CA1D, 0xE398382C, 0x2F6F51F2, 0xD420A2E7, 0x16050415} } ,
6578 { {0x6287DD21, 0x8E14B0BD, 0x5610A3EE, 0x246A0726, 0xDE40EEC6, 0x8A2B544D, 0x56D3BC3F, 0x9B92A927},
6579 {0x0AE0C4F5, 0xF9E41D8D, 0x56D16F07, 0x1698ED2C, 0x32FEBBD4, 0x7E321495, 0x27D494BE, 0xADE15B6A} } } } ;
6580 static const fp12_t var_expected = { { { {0x298932DA, 0x74310017, 0x1B97CCA7, 0xDC3CA829, 0xACC2C6EC, 0x624C2B42, 0x592CDAE6, 0x853B1765},
6581 {0x87F9E851, 0x8B1497DF, 0x972B1E93, 0x3BEC7805, 0x4DA51078, 0x69BEA603, 0x4A5A0CD0, 0x9988EF0A} } ,
6582 { {0x67EF3793, 0xFA2D822D, 0x80586DA0, 0x6F1A0288, 0x8255A6C5, 0x6DEFE2FD, 0x55B1361B, 0xB1A7924B},
6583 {0x730DF4A9, 0x8850536E, 0x2EAD077D, 0x01DB98A7, 0x9B26E55F, 0x75F25E46, 0x123EF6E3, 0x85854B24} } } ,
6584 { { {0x00A232A2, 0x40BE3451, 0x660B1FBF, 0x7C101539, 0xFF25D51C, 0x4BA06101, 0x05A8EDD6, 0x5C54BB84},
6585 {0x2FBB6ACC, 0x744CA191, 0xCACD229A, 0xB4A35D98, 0x46A3BBF4, 0x79EB99B2, 0x54FE5207, 0x314A2654} } ,
6586 { {0xAA7B7B1C, 0xC71CCB31, 0xEB2A3D84, 0x4760E6C0, 0x2F683490, 0x59F5D51E, 0x51E0E7F9, 0x55D4BF33},
6587 {0x7FDAF665, 0x13D0FE03, 0x6F77E125, 0x02A0D66E, 0x4831D2AC, 0x0A573706, 0xB8BAFF19, 0x18C3647E} } } ,
6588 { { {0xE237439A, 0x918E870C, 0x08E5EDA4, 0x6F5C7A4B, 0xFA31133D, 0x806C678F, 0x2730E8CB, 0x70BC5F01},
6589 {0xF72D9BEC, 0xAC13859F, 0xD3474E25, 0x8E71943A, 0xC7307058, 0x5EDEA3E5, 0xA84145CE, 0x2C0A082B} } ,
6590 { {0x62E385A7, 0x1D3AD7C9, 0xD7A96896, 0x35C261AB, 0x689F53D7, 0x18F64C30, 0x6D889C56, 0x7D11B38C},
6591 {0xB395554F, 0xF4D9B168, 0xD92AFEC8, 0x1A202DB7, 0x121AEDF3, 0x0103CCBF, 0x0F8A4D54, 0xA1AF1812} } } } ;
6593 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2769 a000");
6594 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2770 a001");
6595 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2771 a010");
6596 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2772 a011");
6597 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2773 a100");
6598 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2774 a101");
6599 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2775 a110");
6600 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2776 a111");
6601 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2777 a200");
6602 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2778 a201");
6603 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2779 a210");
6604 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2780 a211");
6607 static const fp12_t var_a = { { { {0xD15A4762, 0xBA483C68, 0x29EAFE27, 0x9F51C9A8, 0x33F5DFEB, 0x88529507, 0x070A0A38, 0xA88C9204},
6608 {0xA3F1AE98, 0x1CD30E8B, 0x98C60586, 0x2393C094, 0x26096794, 0x951A8BA7, 0xAB321B26, 0x324F3577} } ,
6609 { {0x4D8AE9F8, 0x8BA2546A, 0xF6A63D49, 0xD3CED7D4, 0xAD673AA0, 0x63420B1F, 0xBA12EBCD, 0x22518403},
6610 {0x1E3BC19D, 0x1BD5F63C, 0x496E3D10, 0x74E4CD76, 0x0B409AA5, 0x32A356CD, 0xD39107A9, 0xB44566F9} } } ,
6611 { { {0x444300AA, 0x0125856B, 0x2289A08D, 0x9A92F66F, 0xE77865CF, 0x0F40DC14, 0x8603B222, 0x52252C5B},
6612 {0x5EC81823, 0x19234728, 0xEEADBA4D, 0xC9E87B50, 0x24734BBE, 0x733EF4D4, 0x967A1A4D, 0x6ECFFCAD} } ,
6613 { {0xFFBC5C9B, 0x60A74B18, 0x7DBE2332, 0xF824DF19, 0x6A881CFF, 0xC04E2132, 0x7E830A08, 0x071E884B},
6614 {0xB2C3D1B8, 0x7788C7A3, 0xCE596677, 0x5BE39730, 0xEE63426F, 0xAB2436AE, 0xE827AD23, 0x0A5DD47E} } } ,
6615 { { {0x92E16644, 0x248BF977, 0x6A07F629, 0x81CAE798, 0x51B03AE3, 0xD91FB8C7, 0xF7B11033, 0x3817C4EE},
6616 {0xCC4A2E3D, 0xD3785D17, 0xE9892CEB, 0xDB8D5D29, 0x2190B841, 0x5B64B94C, 0xBFD67517, 0x9E5AF9AB} } ,
6617 { {0xA34060D8, 0x13926A11, 0xBCE07C6B, 0x8157AD43, 0xA7DB3CC6, 0x1E0372C1, 0xC729DA19, 0x0660A9E2},
6618 {0x54AEEC1E, 0x12B8DD03, 0x89B2CD28, 0xCA05BCF8, 0xBE16FA65, 0x6392B73E, 0xCE0543CA, 0x2604797D} } } } ;
6619 static const fp12_t var_expected = { { { {0x40885A29, 0x75A1EF20, 0x7F5E1D08, 0x2B91E6AF, 0x14093622, 0x1544CDA3, 0xCDF53848, 0x97058545},
6620 {0x47E35D30, 0x39A61D17, 0x318C0B0C, 0x47278129, 0x4C12CF28, 0x2A35174E, 0x5664364D, 0x649E6AEF} } ,
6621 { {0x9B15D3F0, 0x1744A8D4, 0xED4C7A93, 0xA79DAFA9, 0x5ACE7541, 0xC684163F, 0x7425D79A, 0x44A30807},
6622 {0xDA4B4E9F, 0x38BD62C6, 0xBE649AD9, 0xD6B7EE4B, 0xC29EAB95, 0x69E6512E, 0x67033329, 0xAE772F31} } } ,
6623 { { {0x88860154, 0x024B0AD6, 0x4513411A, 0x3525ECDE, 0xCEF0CB9F, 0x1E81B829, 0x0C076444, 0xA44A58B7},
6624 {0x5B63FBAB, 0x3358049F, 0x08E39553, 0x80BF4A01, 0xF5040DC8, 0xEB1D8D3C, 0xECD55871, 0x238C5A98} } ,
6625 { {0xFF78B936, 0xC14E9631, 0xFB7C4664, 0xF049BE32, 0xD51039FF, 0x809C4264, 0xFD061411, 0x0E3D1096},
6626 {0x6587A370, 0xEF118F47, 0x9CB2CCEE, 0xB7C72E61, 0xDCC684DE, 0x56486D5D, 0xD04F5A47, 0x14BBA8FD} } } ,
6627 { { {0x25C2CC88, 0x4917F2EF, 0xD40FEC52, 0x0395CF30, 0xA36075C7, 0xB23F718E, 0xEF622067, 0x702F89DD},
6628 {0x366827DF, 0xA802307E, 0xFE9A7A90, 0xA4090DB2, 0xEF3EE6CE, 0xBB69162C, 0x3F8E0E05, 0x82A25495} } ,
6629 { {0x4680C1B0, 0x2724D423, 0x79C0F8D6, 0x02AF5A87, 0x4FB6798D, 0x3C06E583, 0x8E53B432, 0x0CC153C5},
6630 {0xA95DD83C, 0x2571BA06, 0x13659A50, 0x940B79F1, 0x7C2DF4CB, 0xC7256E7D, 0x9C0A8794, 0x4C08F2FB} } } } ;
6632 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2781 a000");
6633 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2782 a001");
6634 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2783 a010");
6635 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2784 a011");
6636 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2785 a100");
6637 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2786 a101");
6638 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2787 a110");
6639 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2788 a111");
6640 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2789 a200");
6641 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2790 a201");
6642 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2791 a210");
6643 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2792 a211");
6646 static const fp12_t var_a = { { { {0x256AA12E, 0x2AE007CA, 0x2BD964FB, 0x1EC5FA5C, 0x5BD9186F, 0x6D96CEBA, 0x03178E87, 0xA281BA7E},
6647 {0x56D16F6E, 0x55D27546, 0xB22A5ACF, 0x20FFF671, 0x03728B76, 0xD4390E1F, 0xCCD5E49F, 0x0BB0650D} } ,
6648 { {0xA1333002, 0xAD192352, 0xDDDB13FA, 0x37B74AF5, 0x4CE93FA8, 0x0636F8E9, 0x40C1E548, 0x67982E50},
6649 {0x46F91CEF, 0xF9261AE0, 0x257CCC87, 0x52547F8F, 0x67514AC0, 0xF1EB9B5D, 0x6D590DBD, 0x235F41EC} } } ,
6650 { { {0x02391BEE, 0x1DBF139C, 0xB72E47F2, 0x25C0D9CF, 0x98636CBA, 0x58CBFE03, 0x13096082, 0x1EB3FA00},
6651 {0x8B0EEFC0, 0xA29B0D82, 0xEC7CAD81, 0x9DF30246, 0xAE698901, 0x58F007A4, 0x26D5274F, 0x2992E328} } ,
6652 { {0x3B8520A0, 0x394EDB9E, 0x884AA1B6, 0xA7DF1CEB, 0x43A5D6CA, 0x0E82294B, 0xD09E32DF, 0x444E83F4},
6653 {0x53281090, 0x30F875CB, 0xA04D5627, 0xCD238604, 0x26263C75, 0xD71408FF, 0xAC3D3A2A, 0x01A91DCE} } } ,
6654 { { {0xB8AF48A8, 0x019F89A0, 0xB34BF889, 0x96C5EE31, 0xEC5B2080, 0x154E6CC8, 0x8CCFE015, 0x229103AC},
6655 {0xAC7E69D9, 0xC550CE64, 0x4552FFC4, 0xDCB9AB23, 0x0E08E28D, 0x7DDDE03B, 0xB5F09424, 0x140B2006} } ,
6656 { {0x0080B655, 0xBBFAA421, 0x62CACC00, 0xD35989BD, 0x72693241, 0xAFA501E2, 0xDEC08B2C, 0x13CA4187},
6657 {0xE266866C, 0xC203738A, 0x20FA0558, 0x03BB494B, 0xE25981CC, 0x9DF4B339, 0x35235F9F, 0x0ACC9723} } } } ;
6658 static const fp12_t var_expected = { { { {0xE8A90DC1, 0x56D185E2, 0x833AEAAF, 0x2A7A4817, 0x63CFA729, 0xDFCD4109, 0xC61040E5, 0x8AEFD639},
6659 {0xADA2DEDC, 0xABA4EA8C, 0x6454B59E, 0x41FFECE3, 0x06E516EC, 0xA8721C3E, 0x99ABC93F, 0x1760CA1B} } ,
6660 { {0xE03A2B69, 0x5B43BCF3, 0xE73E48AE, 0x5C5CE94A, 0x45EFF59B, 0x110D9567, 0x4164EE67, 0x151CBDDE},
6661 {0x8DF239DE, 0xF24C35C0, 0x4AF9990F, 0xA4A8FF1E, 0xCEA29580, 0xE3D736BA, 0xDAB21B7B, 0x46BE83D8} } } ,
6662 { { {0x047237DC, 0x3B7E2738, 0x6E5C8FE4, 0x4B81B39F, 0x30C6D974, 0xB197FC07, 0x2612C104, 0x3D67F400},
6663 {0x161DDF80, 0x45361B05, 0xD8F95B03, 0x3BE6048D, 0x5CD31203, 0xB1E00F49, 0x4DAA4E9E, 0x5325C650} } ,
6664 { {0x770A4140, 0x729DB73C, 0x1095436C, 0x4FBE39D7, 0x874BAD95, 0x1D045296, 0xA13C65BE, 0x889D07E9},
6665 {0xA6502120, 0x61F0EB96, 0x409AAC4E, 0x9A470C09, 0x4C4C78EB, 0xAE2811FE, 0x587A7455, 0x03523B9D} } } ,
6666 { { {0x715E9150, 0x033F1341, 0x6697F112, 0x2D8BDC63, 0xD8B64101, 0x2A9CD991, 0x199FC02A, 0x45220759},
6667 {0x58FCD3B2, 0x8AA19CC9, 0x8AA5FF89, 0xB9735646, 0x1C11C51B, 0xFBBBC076, 0x6BE12848, 0x2816400D} } ,
6668 { {0x01016CAA, 0x77F54842, 0xC5959801, 0xA6B3137A, 0xE4D26483, 0x5F4A03C4, 0xBD811659, 0x2794830F},
6669 {0xC4CD0CD8, 0x8406E715, 0x41F40AB1, 0x07769296, 0xC4B30398, 0x3BE96673, 0x6A46BF3F, 0x15992E46} } } } ;
6671 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2793 a000");
6672 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2794 a001");
6673 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2795 a010");
6674 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2796 a011");
6675 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2797 a100");
6676 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2798 a101");
6677 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2799 a110");
6678 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2800 a111");
6679 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2801 a200");
6680 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2802 a201");
6681 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2803 a210");
6682 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2804 a211");
6685 static const fp12_t var_a = { { { {0x264D18EC, 0xE398543C, 0xF760DA90, 0xEFE60628, 0xEFB2CC1E, 0x3EEBD372, 0x19CC234F, 0x0EB50DC7},
6686 {0x20F721FE, 0xC7DAFEBB, 0xE29766F4, 0xA7DAE8E1, 0x0D1D61EB, 0xCBD9BA05, 0x21131F49, 0x12279405} } ,
6687 { {0x573EFF84, 0x3C4245A5, 0x96C57A53, 0x84027679, 0xC1F6C02C, 0x732380E0, 0x13BF44BB, 0x1D560D07},
6688 {0x5BB40192, 0xB4C5C796, 0xCE0867DC, 0xBC6496E4, 0x8445D824, 0xCDD64987, 0xAEEE1EFD, 0x847624AD} } } ,
6689 { { {0x3C47CA23, 0xC7595022, 0xFB912240, 0x434283BB, 0xDA7FDFCD, 0x485B2886, 0x614AE559, 0x139E458B},
6690 {0x78A6D52D, 0xAD942A21, 0x6B561D9F, 0x0019D691, 0x8BB2CD0E, 0xBE451CB3, 0xD1F59F25, 0x9BF4B62B} } ,
6691 { {0xE4D50826, 0xC58DA958, 0xA0EADEFA, 0x5A128744, 0x6E615AB5, 0xEAA1C7BF, 0x97E8A9A9, 0x345DA3D6},
6692 {0x27E43F7A, 0x115E81AA, 0xD2B45F53, 0xC06F5DB8, 0xF2D5E579, 0xEC6A68C1, 0xC0F8F36E, 0xB91AD5AB} } } ,
6693 { { {0x3CF18C3B, 0xB730A0F9, 0x6AEF65A2, 0x21075168, 0x99BDACA1, 0xC9937933, 0x4BB5AE78, 0x49847026},
6694 {0x9258AD2B, 0x82F55EAC, 0xB403B19C, 0x61BE4229, 0x2335D7AA, 0xEE3EDFA2, 0x6DF1893E, 0x0EB601E2} } ,
6695 { {0x72351CB0, 0x5E37716B, 0x7F83F9C2, 0x327D12A6, 0xB777823B, 0x97CBAD88, 0x52DBD1B3, 0x5BC86819},
6696 {0x4B717F7E, 0xE0A19BD3, 0x8075BAD8, 0xC41CDA9F, 0xC2A9862A, 0x8A64485B, 0xD1F01DE6, 0x36DA6B20} } } } ;
6697 static const fp12_t var_expected = { { { {0x4C9A31D8, 0xC730A878, 0xEEC1B521, 0xDFCC0C51, 0xDF65983D, 0x7DD7A6E5, 0x3398469E, 0x1D6A1B8E},
6698 {0x41EE43FC, 0x8FB5FD76, 0xC52ECDE9, 0x4FB5D1C3, 0x1A3AC3D7, 0x97B3740A, 0x42263E93, 0x244F280A} } ,
6699 { {0xAE7DFF08, 0x78848B4A, 0x2D8AF4A6, 0x0804ECF3, 0x83ED8059, 0xE64701C1, 0x277E8976, 0x3AAC1A0E},
6700 {0x553BCE89, 0x6A9D057B, 0xC798F072, 0x65B78128, 0xB4A92694, 0xA04C36A3, 0x1DBD61D2, 0x4ED8AA99} } } ,
6701 { { {0x788F9446, 0x8EB2A044, 0xF7224481, 0x86850777, 0xB4FFBF9A, 0x90B6510D, 0xC295CAB2, 0x273C8B16},
6702 {0x8F2175BF, 0x5C39CA91, 0x02345BF8, 0xED220082, 0xC3831066, 0x8129DCFB, 0x63CC6222, 0x7DD5CD95} } ,
6703 { {0xC9AA104C, 0x8B1B52B1, 0x41D5BDF5, 0xB4250E89, 0xDCC2B56A, 0xD5438F7E, 0x2FD15353, 0x68BB47AD},
6704 {0xED9C4A59, 0x23CE79A2, 0xD0F0DF5F, 0x6DCD0ED0, 0x91C9413E, 0xDD747518, 0x41D30AB4, 0xB8220C95} } } ,
6705 { { {0x79E31876, 0x6E6141F2, 0xD5DECB45, 0x420EA2D0, 0x337B5942, 0x9326F267, 0x976B5CF1, 0x9308E04C},
6706 {0x24B15A56, 0x05EABD59, 0x68076339, 0xC37C8453, 0x466BAF54, 0xDC7DBF44, 0xDBE3127D, 0x1D6C03C4} } ,
6707 { {0xE46A3960, 0xBC6EE2D6, 0xFF07F384, 0x64FA254C, 0x6EEF0476, 0x2F975B11, 0xA5B7A367, 0xB790D032},
6708 {0x96E2FEFC, 0xC14337A6, 0x00EB75B1, 0x8839B53F, 0x85530C55, 0x14C890B7, 0xA3E03BCD, 0x6DB4D641} } } } ;
6710 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2805 a000");
6711 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2806 a001");
6712 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2807 a010");
6713 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2808 a011");
6714 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2809 a100");
6715 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2810 a101");
6716 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2811 a110");
6717 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2812 a111");
6718 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2813 a200");
6719 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2814 a201");
6720 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2815 a210");
6721 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2816 a211");
6724 static const fp12_t var_a = { { { {0xF1A37FF0, 0xBB48F464, 0x429DDE49, 0x64296101, 0x66046B94, 0x45F2239A, 0xC0E45584, 0xB432B3DC},
6725 {0x5E104638, 0x4B8CE261, 0x388804CA, 0xE0A42275, 0x0DBC8DB3, 0xD14E1847, 0xA0C8120E, 0x9A136A26} } ,
6726 { {0x0646F318, 0x0FE0225D, 0x851E693E, 0xBF97513F, 0x2F575742, 0x086EAEF4, 0xAAEBDC31, 0x219CC108},
6727 {0x555C03B3, 0x26C6D463, 0x7B55F24B, 0xC9F8C484, 0xD77C556F, 0x1E5B8C4E, 0x4E6FB8BC, 0x70ED235B} } } ,
6728 { { {0xC2DF62D1, 0xDA023FCA, 0xA97BB835, 0xD4105E6C, 0x2B1EA14B, 0x4357499C, 0x6886BA9B, 0x9AA468E2},
6729 {0x1E6E9C9F, 0x1209C2D9, 0xA13922B5, 0x0A32C639, 0x34BCA25F, 0xFDBB297D, 0x4FD8A172, 0x5BEE46FC} } ,
6730 { {0xCCCDF683, 0xDF15BF4F, 0x82E5F1AE, 0xF16E4FFF, 0x67D7D6C6, 0xBB5E8043, 0xCCC0C6BB, 0x405F9A04},
6731 {0x886F79EF, 0xF0096CC1, 0x7044D8EC, 0x5E286367, 0x1E512C32, 0x3F0AA757, 0x1AD1EB91, 0x83D43665} } } ,
6732 { { {0x177987C7, 0x1CE49F9C, 0xC89E9A7D, 0x3AA96998, 0xCFE8C8B3, 0x4C876E00, 0xEB3BAC1B, 0x4519B326},
6733 {0x9D97448F, 0xDF775F62, 0xED00C038, 0xBC139249, 0xD4CBB0BA, 0xF6B4469C, 0x636E8536, 0x523A571C} } ,
6734 { {0x2C88780F, 0xD6B2F004, 0xA1464586, 0x8F6D23B8, 0x4623D154, 0x3791FFF6, 0x5BB3ADC1, 0x02B3C3B8},
6735 {0xACFA87BC, 0x420CA7BB, 0x5BC5C17E, 0x5E1C1BC3, 0xD2455775, 0x711179D2, 0x1F5C5098, 0x7026BB5F} } } } ;
6736 static const fp12_t var_expected = { { { {0x811ACB45, 0x77A35F18, 0xB0C3DD4C, 0xB5411561, 0x78264D73, 0x9083EAC9, 0x41A9CEDF, 0xAE51C8F7},
6737 {0x59F457D5, 0x982B3B11, 0x9C982A4D, 0xAE369849, 0xC79691B2, 0xA73BD422, 0x017147F4, 0x7A13358B} } ,
6738 { {0x0C8DE630, 0x1FC044BA, 0x0A3CD27C, 0x7F2EA27F, 0x5EAEAE85, 0x10DD5DE8, 0x55D7B862, 0x43398211},
6739 {0x488BD2CB, 0x4E9F1F15, 0x2234054F, 0x80DFDC68, 0x5B16212A, 0x4156BC32, 0x5CC0954F, 0x27C6A7F4} } } ,
6740 { { {0x23929107, 0xB515F5E4, 0x7E7F9124, 0x950F1038, 0x025AB8E2, 0x8B4E36CD, 0x90EE990D, 0x7B353302},
6741 {0x3CDD393E, 0x241385B2, 0x4272456A, 0x14658C73, 0x697944BE, 0xFB7652FA, 0x9FB142E5, 0xB7DC8DF8} } ,
6742 { {0x999BED06, 0xBE2B7E9F, 0x05CBE35D, 0xE2DC9FFF, 0xCFAFAD8D, 0x76BD0086, 0x99818D77, 0x80BF3409},
6743 {0xAEB2BF43, 0xE1244FD1, 0x0C11D292, 0xA93F1A2E, 0xE8BFCEAF, 0x82B4F242, 0xF584FAF9, 0x4D94CE07} } } ,
6744 { { {0x2EF30F8E, 0x39C93F38, 0x913D34FA, 0x7552D331, 0x9FD19166, 0x990EDC01, 0xD6775836, 0x8A33664D},
6745 {0x3B2E891E, 0xBEEEBEC5, 0xDA018071, 0x78272493, 0xA9976175, 0xED688D39, 0xC6DD0A6D, 0xA474AE38} } ,
6746 { {0x5910F01E, 0xAD65E008, 0x428C8B0D, 0x1EDA4771, 0x8C47A2A9, 0x6F23FFEC, 0xB7675B82, 0x05678770},
6747 {0xF7C8DADD, 0x852AC5C5, 0xE313A3B5, 0xA9268AE5, 0x50A82535, 0xE6C2973A, 0xFE99C507, 0x2639D7FB} } } } ;
6749 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2817 a000");
6750 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2818 a001");
6751 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2819 a010");
6752 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2820 a011");
6753 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2821 a100");
6754 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2822 a101");
6755 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2823 a110");
6756 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2824 a111");
6757 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2825 a200");
6758 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2826 a201");
6759 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2827 a210");
6760 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2828 a211");
6763 static const fp12_t var_a = { { { {0xF76C53CE, 0x8CA73C1B, 0xF2D6720C, 0x49508323, 0xE773E046, 0xECCA6104, 0xB17C1810, 0x40FFCF7A},
6764 {0xE02E2AA3, 0xBBABD852, 0x6D8BED9F, 0xAAD947F1, 0x814F5AED, 0x480AC5DC, 0x440F194C, 0x0D8839BA} } ,
6765 { {0xCB2FE349, 0xFDD2EE6B, 0x5FF43526, 0x3A66790D, 0x0CAF78FC, 0x0F21F91C, 0x81D752FD, 0x3A53641C},
6766 {0x2CF53D6E, 0x262142C0, 0x649790C1, 0x9137E5D9, 0xDB2BC21B, 0x3C1485E6, 0x05AD6B1D, 0x7F2940BC} } } ,
6767 { { {0xEFB90533, 0x2DE44F98, 0xCD077821, 0x0330F634, 0x566C3023, 0x9ECE4543, 0x212D61ED, 0x065C20A4},
6768 {0x7657C83D, 0xAAD7E428, 0xC81936D9, 0xD55B6589, 0x20C9DE36, 0x6D74CFA4, 0x592C37E7, 0x027B58EA} } ,
6769 { {0x102ACF34, 0x5C95868F, 0xE3C45619, 0xBCCCDC9B, 0xA1CB28F3, 0xC9CC5A5E, 0xE6711913, 0x3069E32B},
6770 {0x0AFE8E0B, 0xA551933C, 0xDEB61E49, 0xADCF1DF3, 0xCE85D1AC, 0x2BB9F1FA, 0x34B57A10, 0x3ED37F04} } } ,
6771 { { {0x42AE5C21, 0x0AC13123, 0x047A2347, 0xF789B2DE, 0x08450DA3, 0xF6E2418B, 0x2470CDA2, 0xADFCEDF6},
6772 {0x9F041032, 0xB7381387, 0xA9D1D978, 0xCC0FB4FD, 0x9D001244, 0xFBC94198, 0x8BF5E966, 0x4B04E6DE} } ,
6773 { {0x8AB96B1E, 0xFA098782, 0xD5290454, 0x15D1F665, 0xEA838868, 0xE2564D4F, 0xF2116CCB, 0x59A0F875},
6774 {0xD939CD82, 0xC40659AA, 0x6FAF003A, 0xB182B814, 0x8EF3ED93, 0xBB8E59EB, 0x14578801, 0x233027AA} } } } ;
6775 static const fp12_t var_expected = { { { {0xEED8A79C, 0x194E7837, 0xE5ACE419, 0x92A10647, 0xCEE7C08C, 0xD994C209, 0x62F83021, 0x81FF9EF5},
6776 {0xC05C5546, 0x7757B0A5, 0xDB17DB3F, 0x55B28FE2, 0x029EB5DB, 0x90158BB9, 0x881E3298, 0x1B107374} } ,
6777 { {0x965FC692, 0xFBA5DCD7, 0xBFE86A4D, 0x74CCF21A, 0x195EF1F8, 0x1E43F238, 0x03AEA5FA, 0x74A6C839},
6778 {0xF7BE4641, 0x4D53FBCE, 0xF4B7423B, 0x0F5E1F11, 0x6274FA82, 0x7CC8AF62, 0xCB3BFA11, 0x443EE2B5} } } ,
6779 { { {0xDF720A66, 0x5BC89F31, 0x9A0EF042, 0x0661EC69, 0xACD86046, 0x3D9C8A86, 0x425AC3DB, 0x0CB84148},
6780 {0xECAF907A, 0x55AFC850, 0x90326DB3, 0xAAB6CB13, 0x4193BC6D, 0xDAE99F48, 0xB2586FCE, 0x04F6B1D4} } ,
6781 { {0x20559E68, 0xB92B0D1E, 0xC788AC32, 0x7999B937, 0x439651E7, 0x9398B4BD, 0xCCE23227, 0x60D3C657},
6782 {0x15FD1C16, 0x4AA32678, 0xBD6C3C93, 0x5B9E3BE7, 0x9D0BA359, 0x5773E3F5, 0x696AF420, 0x7DA6FE08} } } ,
6783 { { {0x233083A7, 0x1693D895, 0x347C6747, 0xDC01B91B, 0xBCA79192, 0xF26426AA, 0x08C2BF1C, 0xA1E63D2A},
6784 {0x3E082064, 0x6E70270F, 0x53A3B2F1, 0x981F69FB, 0x3A002489, 0xF7928331, 0x17EBD2CD, 0x9609CDBD} } ,
6785 { {0x1572D63C, 0xF4130F05, 0xAA5208A9, 0x2BA3ECCB, 0xD50710D0, 0xC4AC9A9F, 0xE422D997, 0xB341F0EB},
6786 {0xB2739B04, 0x880CB355, 0xDF5E0075, 0x63057028, 0x1DE7DB27, 0x771CB3D7, 0x28AF1003, 0x46604F54} } } } ;
6788 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2829 a000");
6789 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2830 a001");
6790 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2831 a010");
6791 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2832 a011");
6792 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2833 a100");
6793 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2834 a101");
6794 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2835 a110");
6795 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2836 a111");
6796 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2837 a200");
6797 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2838 a201");
6798 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2839 a210");
6799 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2840 a211");
6802 static const fp12_t var_a = { { { {0xB8996335, 0x2B41137E, 0x92898BF0, 0x016C187D, 0x390E4AA4, 0x79BC55F3, 0xA2D52C3F, 0x38458A72},
6803 {0xC57F4077, 0xEB7D46D8, 0x36F488BA, 0x56A1B0E6, 0xDEF88F35, 0x7B697474, 0x82687248, 0x3013A618} } ,
6804 { {0x1838AFFE, 0xE0DC3F53, 0x0A81DBC6, 0xC1A85E11, 0x7EC5C164, 0xF1C5652C, 0x4C6CAD08, 0x1757F0EE},
6805 {0xD796238B, 0x8DB382FD, 0xC2F73ECD, 0x2E8C4F14, 0x075BFB40, 0x7F41311B, 0x8C2D9EE8, 0x48945B3F} } } ,
6806 { { {0x59C7EDBF, 0x99AF29C5, 0xCBD6D645, 0xD44400FC, 0x7E271C9B, 0xB4337675, 0x03A4B8C5, 0x35B48AA4},
6807 {0x7668E16C, 0x4BC356B4, 0x18DE5242, 0x76F7DCFE, 0xC9EF11F3, 0x6634B9A3, 0xA6559208, 0x279A1BBB} } ,
6808 { {0xAABAA48E, 0x1552785A, 0xFB1EF8B9, 0xD49D4AFE, 0x95A82FB0, 0x6F04C29C, 0x9D1BA8DB, 0x99D565E0},
6809 {0xD0880FEB, 0x072BAC15, 0xD29570EE, 0xFD6FB89A, 0x75BF9558, 0xFC656595, 0x85C427CB, 0xB06A9910} } } ,
6810 { { {0xB28B8F30, 0x58334BC7, 0x56151D60, 0x734BDA1A, 0xBA8D6FB6, 0x1F85F85F, 0xAF924640, 0x1A5F7400},
6811 {0xF22DDE2E, 0xE134DA70, 0xF6D0B31C, 0xBB90FC88, 0x4969F960, 0x52309FDE, 0xDF451988, 0x4BD32C99} } ,
6812 { {0x204658C8, 0xA35FB2B3, 0x7FC720F0, 0xCAED5AAA, 0xC8415AA3, 0xF4E0147C, 0x8DB65623, 0x3F02C9F8},
6813 {0x2A2BDB6B, 0x3BF59290, 0xC8CCCCA0, 0xE8A4747F, 0xC1D539C5, 0xB9938E0A, 0xA7FC6F29, 0xA1CD4F27} } } } ;
6814 static const fp12_t var_expected = { { { {0x7132C66A, 0x568226FD, 0x251317E0, 0x02D830FB, 0x721C9548, 0xF378ABE6, 0x45AA587E, 0x708B14E5},
6815 {0x8AFE80EE, 0xD6FA8DB1, 0x6DE91175, 0xAD4361CC, 0xBDF11E6A, 0xF6D2E8E9, 0x04D0E490, 0x60274C31} } ,
6816 { {0x30715FFC, 0xC1B87EA6, 0x1503B78D, 0x8350BC22, 0xFD8B82C9, 0xE38ACA58, 0x98D95A11, 0x2EAFE1DC},
6817 {0xAF2C4716, 0x1B6705FB, 0x85EE7D9B, 0x5D189E29, 0x0EB7F680, 0xFE826236, 0x185B3DD0, 0x9128B67F} } } ,
6818 { { {0xB38FDB7E, 0x335E538A, 0x97ADAC8B, 0xA88801F9, 0xFC4E3937, 0x6866ECEA, 0x0749718B, 0x6B691548},
6819 {0xECD1C2D8, 0x9786AD68, 0x31BCA484, 0xEDEFB9FC, 0x93DE23E6, 0xCC697347, 0x4CAB2410, 0x4F343777} } ,
6820 { {0xF3491481, 0x2BB66703, 0x21C6122B, 0x9628E95D, 0xD76DD5AC, 0xE2A928CD, 0xFA18758D, 0x79972CFE},
6821 {0x3EE3EB3B, 0x0F68CE7A, 0xD0B30295, 0xE7CDC494, 0x979CA0FC, 0xFD6A6EBF, 0xCB69736E, 0xA6C1935E} } } ,
6822 { { {0x65171E60, 0xB066978F, 0xAC2A3AC0, 0xE697B434, 0x751ADF6C, 0x3F0BF0BF, 0x5F248C80, 0x34BEE801},
6823 {0xE45BBC5C, 0xC269B4E1, 0xEDA16639, 0x7721F911, 0x92D3F2C1, 0xA4613FBC, 0xBE8A3310, 0x97A65933} } ,
6824 { {0x408CB190, 0x46BF6566, 0xFF8E41E1, 0x95DAB554, 0x9082B547, 0xE9C028F9, 0x1B6CAC47, 0x7E0593F1},
6825 {0xF22B823B, 0x78FC9B6E, 0xBD21B9F9, 0xBE373C5E, 0x2FC7E9D6, 0x77C6BFAA, 0x0FDA022A, 0x8986FF8D} } } } ;
6827 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2841 a000");
6828 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2842 a001");
6829 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2843 a010");
6830 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2844 a011");
6831 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2845 a100");
6832 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2846 a101");
6833 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2847 a110");
6834 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2848 a111");
6835 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2849 a200");
6836 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2850 a201");
6837 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2851 a210");
6838 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2852 a211");
6841 static const fp12_t var_a = { { { {0x067F4440, 0x7483ED1D, 0xDB5D60B4, 0x6CD4FD87, 0xD9039EC1, 0x52913859, 0x8D91B90F, 0x012377FE},
6842 {0x05C19373, 0xB55A2AEC, 0xCDA1393E, 0xFE3729B3, 0x9A0603B0, 0xC3461043, 0x14B3C7E4, 0x9C0F82A0} } ,
6843 { {0x6B96626C, 0x8E93ABF3, 0x1135F282, 0xB7EAF245, 0x4ECC2EE9, 0xF70D1E9F, 0xC4C12F5B, 0x39ADC0B5},
6844 {0x4F6D4AB5, 0x313EC1F8, 0xCC937390, 0xB5A5303F, 0xD2E6A8F8, 0x3FC64FFC, 0x9A2A470E, 0x649B3017} } } ,
6845 { { {0xBC170872, 0xF44461CA, 0x856507DD, 0x86EAD06D, 0xC5086214, 0xD53C1A23, 0x46E2C991, 0x325FF7F9},
6846 {0x16BBC0D6, 0xCF72545B, 0xC7611099, 0x08AAC320, 0xA51AF44D, 0x406505FB, 0xEE6B4CDA, 0x634FA16D} } ,
6847 { {0xCC8405E2, 0xE2172A08, 0x590EEC86, 0x2AECAB94, 0x146C8529, 0x0D821192, 0x2ADBC902, 0xA1594AFC},
6848 {0xA7121553, 0xF0D5AFFC, 0x0596D758, 0x2EF195A1, 0x91CFC2ED, 0x165D58A6, 0x0617CD22, 0x4276E2CA} } } ,
6849 { { {0x62A08F92, 0xDE0A3474, 0xF6789188, 0xC453DA3B, 0x5ED2F035, 0x1F704BE7, 0x43180A24, 0x23F57F22},
6850 {0x2C5D8031, 0x3770BB8F, 0x375EEBD1, 0x8E95C5A8, 0xFDA9F411, 0x577D086A, 0xD5948E5C, 0x2F431FA7} } ,
6851 { {0x0DF0AE7F, 0xA6F6CB24, 0x550D36BF, 0xFF15564A, 0x54DEA772, 0xB99746DB, 0xA611DB38, 0x7A21027C},
6852 {0x99B260FF, 0x8130E8DE, 0x9D322848, 0x1A0A1DB0, 0xE400601F, 0xC51B6690, 0x92FE3A6F, 0x81C4B291} } } } ;
6853 static const fp12_t var_expected = { { { {0x0CFE8880, 0xE907DA3A, 0xB6BAC168, 0xD9A9FB0F, 0xB2073D82, 0xA52270B3, 0x1B23721E, 0x0246EFFD},
6854 {0xA956F24B, 0x6BC5CC26, 0xC6CA9336, 0xE95CA6C6, 0xE0297DAC, 0x8B2BC41B, 0xE948B3A0, 0x7E0B667D} } ,
6855 { {0xD72CC4D8, 0x1D2757E6, 0x226BE505, 0x6FD5E48A, 0x9D985DD3, 0xEE1A3D3E, 0x89825EB7, 0x735B816B},
6856 {0x3CAE60CF, 0x638EFA3F, 0xC4AF07D9, 0x5838B3DE, 0x51EAC83C, 0x842C438E, 0xF435B1F3, 0x0F22C16C} } } ,
6857 { { {0x782E10E4, 0xE888C395, 0x0ACA0FBB, 0x0DD5A0DB, 0x8A10C429, 0xAA783447, 0x8DC59323, 0x64BFEFF2},
6858 {0xCB4B4D11, 0x9FF61F04, 0xBA4A41EC, 0xFE43D9A0, 0xF6535EE4, 0x8569AF8B, 0x9CB7BD8B, 0x0C8BA419} } ,
6859 { {0x36DBD729, 0xC53FCA60, 0xDDA5F9C6, 0x42C7AA87, 0xD4F6809D, 0x1FA3C6B8, 0x1598B5DB, 0x889EF736},
6860 {0x4E242AA6, 0xE1AB5FF9, 0x0B2DAEB1, 0x5DE32B42, 0x239F85DA, 0x2CBAB14D, 0x0C2F9A44, 0x84EDC594} } } ,
6861 { { {0xC5411F24, 0xBC1468E8, 0xECF12311, 0x88A7B477, 0xBDA5E06B, 0x3EE097CE, 0x86301448, 0x47EAFE44},
6862 {0x58BB0062, 0x6EE1771E, 0x6EBDD7A2, 0x1D2B8B50, 0xFB53E823, 0xAEFA10D5, 0xAB291CB8, 0x5E863F4F} } ,
6863 { {0xB9B52863, 0x4EFF0C96, 0xD5A28E38, 0xEB18FFF3, 0x55DAC530, 0x77CE314B, 0x0C04DA48, 0x3A2E6637},
6864 {0xD1388D63, 0x0373480B, 0x65EC714A, 0x21028EC0, 0x741E3689, 0x8ED670B6, 0xE5DD98B6, 0x4975C660} } } } ;
6866 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2853 a000");
6867 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2854 a001");
6868 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2855 a010");
6869 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2856 a011");
6870 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2857 a100");
6871 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2858 a101");
6872 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2859 a110");
6873 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2860 a111");
6874 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2861 a200");
6875 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2862 a201");
6876 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2863 a210");
6877 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2864 a211");
6880 static const fp12_t var_a = { { { {0xD986F107, 0x3E0A2F01, 0x06D77BB1, 0xA1DC10A0, 0x3F7FB1FE, 0xCF56EA0C, 0x2AE060DB, 0x34797E3D},
6881 {0xD46D497F, 0xF2A56B26, 0xC0775114, 0x91F574C8, 0x87D69524, 0x80648461, 0x313F44EB, 0x74AEECAD} } ,
6882 { {0x97DE2845, 0xE16E373F, 0x2DA86C40, 0xFCFD280F, 0xF8123A20, 0x842D3182, 0xE2487655, 0x0A4E7999},
6883 {0x8DB83AB2, 0xEB65269F, 0xBA7CBB1F, 0x4177DF7D, 0xB57F2BF4, 0xD5294749, 0xE891AD48, 0x6BB047EE} } } ,
6884 { { {0x10EC77A9, 0x160CCE76, 0x30B10873, 0x31621121, 0xA0546B83, 0x570431E1, 0xA4D4F305, 0x96698231},
6885 {0x507DDEAF, 0x0C715958, 0x0F74C2FC, 0xA15CF3BC, 0x2D08D308, 0x5314AB64, 0xEA3AA3ED, 0x4EA251D8} } ,
6886 { {0xD1AA08DE, 0x9CE386C7, 0x0989AA99, 0xEABD0279, 0xE70D5E58, 0xF5057FA9, 0x84587186, 0x9A6C4703},
6887 {0xEB6312F6, 0x37327B5C, 0x853B7851, 0x6BC36940, 0xECE47C1F, 0xCD12DCCA, 0xAEF5EEEB, 0x462852A6} } } ,
6888 { { {0x490F475B, 0x737B8C48, 0x1D21D69D, 0x03CD0C55, 0x6C764B5E, 0x4FCA4D74, 0x98A94630, 0x61F7E641},
6889 {0x08751C83, 0x8D9FDC5D, 0x4C348682, 0x8497A61A, 0xD9E23B3F, 0x580A36E0, 0xA8256803, 0x032EB7B4} } ,
6890 { {0x2303E92D, 0xDEDB2A49, 0x118EB213, 0x92F3F914, 0x0AE74DA8, 0x95C7D9C5, 0x350CEFCF, 0x734E7C26},
6891 {0x1BC83201, 0x6CF56D70, 0x26EA3F3A, 0x607D8D39, 0x6F5D3277, 0x36C61907, 0x8DC24045, 0x5CDE3F93} } } } ;
6892 static const fp12_t var_expected = { { { {0xB30DE20E, 0x7C145E03, 0x0DAEF762, 0x43B82140, 0x7EFF63FD, 0x9EADD418, 0x55C0C1B7, 0x68F2FC7A},
6893 {0x46AE5E63, 0xE65C4C9C, 0xAC76C2E2, 0x10D93CF0, 0xBBCAA094, 0x0568AC57, 0x225FADAE, 0x2F4A3A98} } ,
6894 { {0x2FBC508A, 0xC2DC6E7F, 0x5B50D881, 0xF9FA501E, 0xF0247441, 0x085A6305, 0xC490ECAB, 0x149CF333},
6895 {0xB94440C9, 0xD7DBC38D, 0xA08196F8, 0x6FDE125A, 0x171BCE33, 0xAEF23228, 0x91047E68, 0x1D4CF11B} } } ,
6896 { { {0xBFACBAB7, 0x2D2B133A, 0x8CEA319F, 0x4FB275A1, 0xECC64D51, 0xB2A80757, 0x098B09E1, 0x72BF65A1},
6897 {0xA0FBBD5E, 0x18E2B2B0, 0x1EE985F8, 0x42B9E778, 0x5A11A611, 0xA62956C8, 0xD47547DA, 0x9D44A3B1} } ,
6898 { {0x4127DD21, 0x3AD883DE, 0x3E9B75EC, 0xC2685851, 0x7A3832FC, 0xEEAAA2E8, 0xC89206E4, 0x7AC4EF44},
6899 {0xD6C625EC, 0x6E64F6B9, 0x0A76F0A2, 0xD786D281, 0xD9C8F83E, 0x9A25B995, 0x5DEBDDD7, 0x8C50A54D} } } ,
6900 { { {0x2FF25A1B, 0xE8088EDF, 0x65CBCDF3, 0xF4886C09, 0x850A0D06, 0xA4343E7D, 0xF133B037, 0x09DC2DC0},
6901 {0x10EA3906, 0x1B3FB8BA, 0x98690D05, 0x092F4C34, 0xB3C4767F, 0xB0146DC1, 0x504AD006, 0x065D6F69} } ,
6902 { {0xE3DB9DBF, 0xBEC7CAE0, 0x4EA584E0, 0x12D64587, 0xC1EC119C, 0x302F571E, 0x29FB0376, 0x2C89598A},
6903 {0x37906402, 0xD9EADAE0, 0x4DD47E74, 0xC0FB1A72, 0xDEBA64EE, 0x6D8C320E, 0x1B84808A, 0xB9BC7F27} } } } ;
6905 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2865 a000");
6906 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2866 a001");
6907 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2867 a010");
6908 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2868 a011");
6909 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2869 a100");
6910 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2870 a101");
6911 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2871 a110");
6912 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2872 a111");
6913 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2873 a200");
6914 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2874 a201");
6915 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2875 a210");
6916 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2876 a211");
6919 static const fp12_t var_a = { { { {0x4E3556BE, 0x5D9F34A1, 0xC9571922, 0xF2CD495B, 0xDFA9EB68, 0x39629D98, 0xEF83C31D, 0x98EA90D5},
6920 {0x8B97F9F4, 0x79705296, 0x1BB591A0, 0x3DAD85CF, 0x6F414E4B, 0x0748EDFB, 0xD26F2053, 0x0B64D960} } ,
6921 { {0x94BD6EE6, 0xB1144273, 0x98513A86, 0xA7AF4300, 0xF4E86C40, 0xF09C4BF1, 0x5D050CF0, 0x20F47402},
6922 {0x24A00779, 0x94C49512, 0xF03F7992, 0xD5258751, 0xD4C80109, 0x9C36AEB2, 0xEBE64A3C, 0x3A354EF0} } } ,
6923 { { {0x88CA2421, 0xD9F48FDC, 0x5E41F027, 0xC688D5BB, 0xE2E4BAC1, 0x9E081F03, 0x525D7380, 0x843ACA84},
6924 {0x1AF19FB9, 0xDC2CE6F3, 0x27D8963D, 0x593C5F10, 0xD94A0086, 0xF7F2DF85, 0x5142B755, 0x7F9E619F} } ,
6925 { {0xB1B58CE5, 0x19272DE3, 0x43817133, 0x2CCB21FC, 0x89F78D46, 0x8014D4D1, 0x6352BACA, 0x1CF55E27},
6926 {0x942CA19D, 0xB41468D8, 0x8987D784, 0xCB892C46, 0xFF1FFFE5, 0x793ED5BC, 0x353E2D22, 0x55A257FF} } } ,
6927 { { {0x5E8FA872, 0xF11C5309, 0x02FEE96D, 0x47A542FC, 0x5B31A121, 0x05DE1233, 0x6723E572, 0x6B22D291},
6928 {0x80137B43, 0xBC7D967A, 0x6E12A993, 0xB52FE443, 0x553F731F, 0xAD148C51, 0x0DB75817, 0x614E4F4B} } ,
6929 { {0xBC10AA20, 0x223C0DA1, 0xBE2F7159, 0xAF3CBC39, 0xB6C234DA, 0xDC6084AF, 0x3140A86E, 0x7CB0877D},
6930 {0x494AE607, 0xD7757765, 0xC77829D4, 0xBDFB5A20, 0x86C4938B, 0x687657BA, 0x0E43DE3E, 0x0FD4AFB6} } } } ;
6931 static const fp12_t var_expected = { { { {0x3A3E78E1, 0xBC4FDF91, 0xBE3652FD, 0xD288E616, 0x6B714D1C, 0x7764DEC6, 0x9EE8AA11, 0x77C182E9},
6932 {0x172FF3E8, 0xF2E0A52D, 0x376B2340, 0x7B5B0B9E, 0xDE829C96, 0x0E91DBF6, 0xA4DE40A6, 0x16C9B2C1} } ,
6933 { {0x297ADDCC, 0x622884E7, 0x30A2750D, 0x4F5E8601, 0xE9D0D881, 0xE13897E3, 0xBA0A19E1, 0x41E8E804},
6934 {0x49400EF2, 0x29892A24, 0xE07EF325, 0xAA4B0EA3, 0xA9900213, 0x386D5D65, 0xD7CC9479, 0x746A9DE1} } } ,
6935 { { {0xAF6813A7, 0xB4FA9607, 0xE80C0108, 0x79FFFED5, 0x71E6EBCE, 0x40AFE19C, 0x649C0AD8, 0x4E61F646},
6936 {0xD3B70AD7, 0xB96B4434, 0x7B394D34, 0x9F67117F, 0x5EB17757, 0xF48562A0, 0x62669282, 0x4529247C} } ,
6937 { {0x636B19CA, 0x324E5BC7, 0x8702E266, 0x599643F8, 0x13EF1A8C, 0x0029A9A3, 0xC6A57595, 0x39EABC4E},
6938 {0x2859433A, 0x6828D1B1, 0x130FAF09, 0x9712588D, 0xFE3FFFCB, 0xF27DAB79, 0x6A7C5A44, 0xAB44AFFE} } } ,
6939 { { {0x5AF31C49, 0xE34A1C61, 0x3185F394, 0x7C38D957, 0x6280B88D, 0x105BC7FB, 0x8E28EEBB, 0x1C320660},
6940 {0x9DFAC1EB, 0x7A0CA343, 0x07AD73E0, 0x574E1BE6, 0x569C5C8A, 0x5EC8BC37, 0xDB4FD406, 0x0888FFD3} } ,
6941 { {0x15F51FA5, 0x45899192, 0xA7E7036B, 0x4B67CBD2, 0x19A1E000, 0xBD60ACF4, 0x226274B4, 0x3F4D7038},
6942 {0x9295CC0E, 0xAEEAEECA, 0x8EF053A9, 0x7BF6B441, 0x0D892717, 0xD0ECAF75, 0x1C87BC7C, 0x1FA95F6C} } } } ;
6944 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2877 a000");
6945 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2878 a001");
6946 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2879 a010");
6947 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2880 a011");
6948 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2881 a100");
6949 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2882 a101");
6950 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2883 a110");
6951 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2884 a111");
6952 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2885 a200");
6953 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2886 a201");
6954 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2887 a210");
6955 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2888 a211");
6958 static const fp12_t var_a = { { { {0x38980780, 0xADDC7F11, 0xDEE1B07D, 0x3D4FBB04, 0x35AD1912, 0xF7E63BB8, 0xD6B73716, 0x9721CF00},
6959 {0xC10BF39B, 0x23D29C2E, 0x419DEAE6, 0x0552F073, 0x762F17FD, 0xB35A30BB, 0x6E1D92D7, 0x3E7F7032} } ,
6960 { {0x80F9EFD4, 0xD3580914, 0x058320AA, 0x0AC36B78, 0xB593881C, 0x8618E70A, 0xAD886DEC, 0x451CF1CD},
6961 {0x351127EA, 0x0294A0C2, 0x233EE030, 0xC262D9CB, 0xA3BE622B, 0xDEDE0461, 0x20DAD0B1, 0x97DE2702} } } ,
6962 { { {0x7F4D5297, 0x141DC7BB, 0x1A75B47D, 0x70361376, 0x558A4C38, 0xFB0B22C2, 0x49F023FD, 0x4FFBC090},
6963 {0x6D6CA581, 0x16F94548, 0x4845B3CB, 0x49BAE957, 0x21493FCF, 0x85567EA2, 0xDBB5C900, 0x8E534904} } ,
6964 { {0x029644A9, 0x34C9F4F7, 0x6BE52232, 0xF47F433A, 0x1E03B834, 0x0BF692F7, 0x409CE79D, 0x034A1351},
6965 {0x99308374, 0x3F361C3E, 0x496F57BD, 0x662B1F2C, 0x417513B1, 0x723B3E17, 0x5382DD35, 0x070A6E76} } } ,
6966 { { {0x383F0874, 0x30FD6054, 0x08FBF3D8, 0x957D2CD0, 0x512B9F80, 0x9EB8F80D, 0x26772ABB, 0x20A2D353},
6967 {0xC6914B67, 0x9FCB3AC9, 0x2BBCBFBB, 0x121750E5, 0x41001903, 0xB8BD7697, 0x3E79E57E, 0x6A3519A8} } ,
6968 { {0xD011C43B, 0x4BB96C38, 0x96D439EF, 0x6D59AB3D, 0xCF4ACDAB, 0xE617188E, 0x525CEDEA, 0x2EDE06F8},
6969 {0x40E1A2AD, 0x96838DF2, 0x3537E3C1, 0x860E8153, 0x9D701799, 0xA633FA93, 0x8FAB8038, 0x61B5957B} } } } ;
6970 static const fp12_t var_expected = { { { {0x0F03DA65, 0x5CCA7471, 0xE94B81B4, 0x678DC968, 0x1777A86F, 0xF46C1B05, 0x6D4F9204, 0x742FFF3F},
6971 {0x8217E736, 0x47A5385D, 0x833BD5CC, 0x0AA5E0E6, 0xEC5E2FFA, 0x66B46176, 0xDC3B25AF, 0x7CFEE064} } ,
6972 { {0x01F3DFA8, 0xA6B01229, 0x0B064155, 0x1586D6F0, 0x6B271038, 0x0C31CE15, 0x5B10DBD9, 0x8A39E39B},
6973 {0x07F61B39, 0x063AB7D3, 0x7205E119, 0x71B406F5, 0xF39A3AA2, 0xC25BAC57, 0x0196C53A, 0x75A8AF42} } } ,
6974 { { {0xFE9AA52E, 0x283B8F76, 0x34EB68FA, 0xE06C26EC, 0xAB149870, 0xF6164584, 0x93E047FB, 0x9FF78120},
6975 {0x78AD1667, 0x2F0400DF, 0xBC13884F, 0x8064260D, 0xEEAFF5E9, 0x0F4CA0D8, 0x774CB5D8, 0x6292F347} } ,
6976 { {0x052C8952, 0x6993E9EE, 0xD7CA4464, 0xE8FE8674, 0x3C077069, 0x17ED25EE, 0x8139CF3A, 0x069426A2},
6977 {0x326106E8, 0x7E6C387D, 0x92DEAF7A, 0xCC563E58, 0x82EA2762, 0xE4767C2E, 0xA705BA6A, 0x0E14DCEC} } } ,
6978 { { {0x707E10E8, 0x61FAC0A8, 0x11F7E7B0, 0x2AFA59A0, 0xA2573F01, 0x3D71F01A, 0x4CEE5577, 0x4145A6A6},
6979 {0x2AF66233, 0x40A7EBE2, 0x8301A030, 0x111CF529, 0x2E1DA851, 0x761A90C3, 0x3CD4EED4, 0x1A56948E} } ,
6980 { {0xA0238876, 0x9772D871, 0x2DA873DE, 0xDAB3567B, 0x9E959B56, 0xCC2E311D, 0xA4B9DBD5, 0x5DBC0DF0},
6981 {0x1F9710BF, 0x2E189233, 0x95F7E83C, 0xF90B5605, 0xE6FDA57D, 0x510798BB, 0xDF382448, 0x09578C34} } } } ;
6983 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2889 a000");
6984 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2890 a001");
6985 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2891 a010");
6986 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2892 a011");
6987 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2893 a100");
6988 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2894 a101");
6989 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2895 a110");
6990 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2896 a111");
6991 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2897 a200");
6992 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2898 a201");
6993 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2899 a210");
6994 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2900 a211");
6997 static const fp12_t var_a = { { { {0xF202DC33, 0x06782058, 0x51CE052D, 0xAE0F6B4D, 0x0C947F9A, 0x5CC0A99B, 0xD767EA35, 0x829F6CB2},
6998 {0x333193E8, 0xC693F238, 0x14CEF72A, 0x275224DE, 0xBF03DEE3, 0xD3C93567, 0x3D325C8B, 0x1A919AF2} } ,
6999 { {0xCAB6B205, 0x23F0CD29, 0x5CBBDF8E, 0xF1478C6C, 0x65825C0E, 0xB0DFC9C5, 0x8AC36363, 0x253721EB},
7000 {0x2ED5F851, 0x0F69E8CD, 0x3A85F828, 0xD5A4FE5F, 0x4B0748BD, 0x08139806, 0x3BFB7BE7, 0x33DB0EDA} } } ,
7001 { { {0xED775918, 0xA0187211, 0x9CA8062E, 0x48F503C5, 0x72881B75, 0xC89485F0, 0x421692DE, 0x8E44E676},
7002 {0x4159185E, 0x910C5596, 0xA96653DB, 0x898B3A4A, 0x7D3D3389, 0x53386BD1, 0x417D7AF6, 0x15D5390E} } ,
7003 { {0xE181CF27, 0xC1D0264F, 0x37F77ABC, 0x944CFCE1, 0x16EC2CD9, 0xE096EA38, 0x92BAAD8C, 0x1895B86D},
7004 {0x921B3C17, 0xB14545E6, 0x2963F503, 0x43C17411, 0xD8CA765E, 0x14A8B104, 0x80E8ED2C, 0x39747360} } } ,
7005 { { {0xF582B3CD, 0x054621ED, 0xE75AFEB0, 0x40FFD10B, 0xC06DDDEB, 0x670F17F2, 0x504782E9, 0x4679B8DA},
7006 {0x35E280FB, 0x0BFB8B13, 0x9250F3EF, 0xC780765B, 0x68DD9F27, 0xCCEAA7D1, 0x32AFF06D, 0x73B7AE15} } ,
7007 { {0x56937AAB, 0x2F590E7A, 0xD1D27EFE, 0xE575B13D, 0xCEACC865, 0x0BC503EC, 0x504350F2, 0x21F24314},
7008 {0x6F0CB299, 0x844BC777, 0x572B4E81, 0x83045CC3, 0xDB3A0251, 0x5B08EE83, 0xC701EE96, 0x02057F68} } } } ;
7009 static const fp12_t var_expected = { { { {0x81D983CB, 0x0E01B700, 0xCF242B13, 0x490D29F9, 0xC5467580, 0xBE20F6CA, 0x6EB0F841, 0x4B2B3AA3},
7010 {0x666327D0, 0x8D27E470, 0x299DEE55, 0x4EA449BC, 0x7E07BDC6, 0xA7926ACF, 0x7A64B917, 0x352335E4} } ,
7011 { {0x956D640A, 0x47E19A53, 0xB977BF1C, 0xE28F18D8, 0xCB04B81D, 0x61BF938A, 0x1586C6C7, 0x4A6E43D7},
7012 {0x5DABF0A2, 0x1ED3D19A, 0x750BF050, 0xAB49FCBE, 0x960E917B, 0x1027300C, 0x77F6F7CE, 0x67B61DB4} } } ,
7013 { { {0x78C27D95, 0x41425A72, 0x64D82D16, 0x7ED85AEA, 0x912DAD35, 0x95C8AF75, 0x440E4994, 0x62762E2A},
7014 {0x82B230BC, 0x2218AB2C, 0x52CCA7B7, 0x13167495, 0xFA7A6713, 0xA670D7A2, 0x82FAF5EC, 0x2BAA721C} } ,
7015 { {0xC3039E4E, 0x83A04C9F, 0x6FEEF579, 0x2899F9C2, 0x2DD859B3, 0xC12DD470, 0x25755B19, 0x312B70DB},
7016 {0x2436782E, 0x628A8BCD, 0x52C7EA07, 0x8782E822, 0xB194ECBC, 0x29516209, 0x01D1DA58, 0x72E8E6C1} } } ,
7017 { { {0xEB05679A, 0x0A8C43DB, 0xCEB5FD60, 0x81FFA217, 0x80DBBBD6, 0xCE1E2FE5, 0xA08F05D2, 0x8CF371B4},
7018 {0x0998CD5B, 0x19088C75, 0x502A0897, 0x7BEF4016, 0x7DD8B49A, 0x9E74F337, 0x254104B2, 0x2D5BBD68} } ,
7019 { {0xAD26F556, 0x5EB21CF4, 0xA3A4FDFC, 0xCAEB627B, 0x9D5990CB, 0x178A07D9, 0xA086A1E4, 0x43E48628},
7020 {0xDE196532, 0x08978EEE, 0xAE569D03, 0x0608B986, 0xB67404A3, 0xB611DD07, 0x8E03DD2C, 0x040AFED1} } } } ;
7022 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2901 a000");
7023 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2902 a001");
7024 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2903 a010");
7025 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2904 a011");
7026 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2905 a100");
7027 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2906 a101");
7028 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2907 a110");
7029 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2908 a111");
7030 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2909 a200");
7031 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2910 a201");
7032 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2911 a210");
7033 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2912 a211");
7036 static const fp12_t var_a = { { { {0x0F043FE3, 0x3FAE7F10, 0x85F94D65, 0x495F59BB, 0x89F74ABE, 0xC52C3FE3, 0x68752F45, 0x3840B0DA},
7037 {0xD6298AF8, 0x3A84FE63, 0xCDEDBBFF, 0xBC37E0CF, 0xBE3054FB, 0xC1A671DD, 0xF70DB6B8, 0x3705658E} } ,
7038 { {0xF40C2EAC, 0x75676985, 0x27AC2423, 0xBF9A0200, 0xCA86F92F, 0xB559A0F1, 0xADD0F1E9, 0x42DBA25F},
7039 {0x9130A8A5, 0x90347022, 0xBDD554EB, 0x7237062E, 0x902B6B7A, 0x5D6BDB99, 0xF683AD2D, 0x8EFBDB88} } } ,
7040 { { {0x68B43754, 0x54F17363, 0x4834B236, 0x53023BD0, 0x5E93D064, 0x60ED4941, 0xB46C781F, 0x201EFDBD},
7041 {0x8E35F9A6, 0x278246AB, 0x82DBE63D, 0x30A994FA, 0x6436CD53, 0xBA35FC31, 0x3A3406FB, 0xA93A938B} } ,
7042 { {0xBF0D7ED7, 0x9B20165F, 0x8C255DD5, 0xD6F26B6A, 0x9D8B2C53, 0x6A66E485, 0x118BBBAD, 0x08F9D58D},
7043 {0x9B5EE4C4, 0xDF8D908F, 0xDEAA455F, 0xB0F0041E, 0x36647818, 0xAC4A19B3, 0x36C8EA5D, 0xB24CBAD9} } } ,
7044 { { {0x67486BE5, 0x4BF13313, 0x57FF9907, 0x2531E578, 0x25022A5E, 0xC2755339, 0xDAAE631F, 0x46B2076E},
7045 {0xC5DEC9B0, 0xDA725B08, 0xD86ACB08, 0xEBD1C421, 0x4481B90F, 0x41C50695, 0xA13087DC, 0x12980BDC} } ,
7046 { {0xE68A5BBD, 0xA8967E51, 0xD17C5B9A, 0x1B707DF8, 0xD787BCB0, 0xA9041CC3, 0xA3EC30C5, 0x32768763},
7047 {0x58C66036, 0x77562557, 0xB50DEE8C, 0x1A010FF3, 0x0AE34C59, 0xCBA68990, 0x6FF5E8D1, 0x71EF3B66} } } } ;
7048 static const fp12_t var_expected = { { { {0x1E087FC6, 0x7F5CFE20, 0x0BF29ACA, 0x92BEB377, 0x13EE957C, 0x8A587FC7, 0xD0EA5E8B, 0x708161B4},
7049 {0xAC5315F0, 0x7509FCC7, 0x9BDB77FE, 0x786FC19F, 0x7C60A9F7, 0x834CE3BB, 0xEE1B6D71, 0x6E0ACB1D} } ,
7050 { {0xE8185D58, 0xEACED30B, 0x4F584846, 0x7F340400, 0x950DF25F, 0x6AB341E3, 0x5BA1E3D3, 0x85B744BF},
7051 {0xC0351CAF, 0x217A5693, 0xA732CA90, 0xD15C5FBC, 0xCC744D3F, 0xBF775AC7, 0xACE87E31, 0x63E4184F} } } ,
7052 { { {0xD1686EA8, 0xA9E2E6C6, 0x9069646C, 0xA60477A0, 0xBD27A0C8, 0xC1DA9282, 0x68D8F03E, 0x403DFB7B},
7053 {0xBA3FBEB1, 0x501603A5, 0x313FED33, 0x4E417D54, 0x748B10F1, 0x790B9BF7, 0x344931CE, 0x98618854} } ,
7054 { {0x7E1AFDAE, 0x36402CBF, 0x184ABBAB, 0xADE4D6D5, 0x3B1658A7, 0xD4CDC90B, 0x2317775A, 0x11F3AB1A},
7055 {0xD49194ED, 0xC02C976D, 0xE8DCAB78, 0x4ECE5B9C, 0x18E6667C, 0x5D33D6FB, 0x2D72F892, 0xAA85D6F0} } } ,
7056 { { {0xCE90D7CA, 0x97E26626, 0xAFFF320E, 0x4A63CAF0, 0x4A0454BC, 0x84EAA672, 0xB55CC63F, 0x8D640EDD},
7057 {0x8BBD9360, 0xB4E4B611, 0xB0D59611, 0xD7A38843, 0x8903721F, 0x838A0D2A, 0x42610FB8, 0x253017B9} } ,
7058 { {0xCD14B77A, 0x512CFCA3, 0xA2F8B735, 0x36E0FBF1, 0xAF0F7960, 0x52083987, 0x47D8618B, 0x64ED0EC7},
7059 {0x4F608BD1, 0xEFBDC0FD, 0x95A3FDD1, 0x20F07346, 0xC1E40EFD, 0x9BECB6B4, 0x9FCCF57A, 0x29CAD80A} } } } ;
7061 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2913 a000");
7062 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2914 a001");
7063 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2915 a010");
7064 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2916 a011");
7065 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2917 a100");
7066 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2918 a101");
7067 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2919 a110");
7068 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2920 a111");
7069 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2921 a200");
7070 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2922 a201");
7071 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2923 a210");
7072 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2924 a211");
7075 static const fp12_t var_a = { { { {0xB06FFDEF, 0x2FDC9C51, 0x3193C66A, 0x609AA5E9, 0x204E7C2C, 0x7B0E9E7F, 0x03732938, 0x7EB66377},
7076 {0xE1D228C0, 0x59783469, 0xF9A0C86E, 0xB6B2074D, 0x45385319, 0xDCE65D12, 0xD58593F2, 0xB8216E77} } ,
7077 { {0xCE7644B5, 0xA427C967, 0x1F3458E7, 0x546415C3, 0x6197DA4C, 0xF96BB4C3, 0x0D2568E2, 0x05986B85},
7078 {0x2E3FF01B, 0x6142D23E, 0x699D982E, 0x772B1D23, 0xF2581ACB, 0x4383E0BB, 0x4888C85E, 0x118AAA3E} } } ,
7079 { { {0xAC86EC7E, 0x08DEC242, 0xFF4B7895, 0xCE907038, 0x375D97AA, 0x12A4369D, 0xD723AE6C, 0x10533E70},
7080 {0xEA673911, 0xB069E125, 0x36BF5029, 0x443F0003, 0xFB343062, 0x18300136, 0x3E0BA7EE, 0x2B8BBBAA} } ,
7081 { {0x1DC17DF0, 0x9873BAF6, 0xF411C5F6, 0x2281E8B7, 0x7A25281B, 0xEDFBF3C2, 0x76199E18, 0x57BEA83A},
7082 {0x2548B8D9, 0xA5BB03F2, 0x4F357799, 0x7C253D11, 0x8427FC18, 0xA0E6A5D3, 0x2B5251C2, 0x22732957} } } ,
7083 { { {0xE8C205FA, 0xDA14D7A8, 0x6521F719, 0x6F229B38, 0x4CD3995E, 0x05279944, 0xBE7968E5, 0x732EEF06},
7084 {0x0B48E011, 0xE38F500C, 0x63224C37, 0x84A15F41, 0xF787C420, 0x73BA16CD, 0x046B1E05, 0x258B040D} } ,
7085 { {0x9C2F5739, 0x8C0C49A7, 0x4C78CFDC, 0x61327A25, 0x5E580298, 0x07179402, 0xC50003EC, 0x28CB6918},
7086 {0xCBE5B4C2, 0x4988C26B, 0x0B446A2D, 0x2AEDBF5E, 0xA4D17D42, 0x5DBF0593, 0x7E1509DA, 0x18148374} } } } ;
7087 static const fp12_t var_expected = { { { {0xFEB3C743, 0x60CAAEF1, 0x8EAFAD8D, 0xAE239F31, 0xECBA6EA3, 0xFABCE092, 0xC6C77647, 0x4359282B},
7088 {0x61781CE5, 0xB401DF22, 0x1EC9B195, 0x5A5261FB, 0x368E1C7E, 0xBE6C5DB9, 0x6AEC4BBC, 0xB62F3E2D} } ,
7089 { {0x9CEC896A, 0x484F92CF, 0x3E68B1CF, 0xA8C82B86, 0xC32FB498, 0xF2D76986, 0x1A4AD1C5, 0x0B30D70A},
7090 {0x5C7FE036, 0xC285A47C, 0xD33B305C, 0xEE563A46, 0xE4B03596, 0x8707C177, 0x911190BC, 0x2315547C} } } ,
7091 { { {0x590DD8FC, 0x11BD8485, 0xFE96F12A, 0x9D20E071, 0x6EBB2F55, 0x25486D3A, 0xAE475CD8, 0x20A67CE1},
7092 {0xD4CE7222, 0x60D3C24B, 0x6D7EA053, 0x887E0006, 0xF66860C4, 0x3060026D, 0x7C174FDC, 0x57177754} } ,
7093 { {0x3B82FBE0, 0x30E775EC, 0xE8238BED, 0x4503D16F, 0xF44A5036, 0xDBF7E784, 0xEC333C31, 0xAF7D5074},
7094 {0x4A9171B2, 0x4B7607E4, 0x9E6AEF33, 0xF84A7A22, 0x084FF830, 0x41CD4BA7, 0x56A4A385, 0x44E652AE} } } ,
7095 { { {0x6F57D759, 0xB53B25A0, 0xF5CC0EEC, 0xCB3389CF, 0x45C4A907, 0x0EEED61D, 0x3CD3F5A1, 0x2C4A3F4B},
7096 {0x1691C022, 0xC71EA018, 0xC644986F, 0x0942BE82, 0xEF0F8841, 0xE7742D9B, 0x08D63C0A, 0x4B16081A} } ,
7097 { {0x385EAE72, 0x1818934F, 0x98F19FB9, 0xC264F44A, 0xBCB00530, 0x0E2F2804, 0x8A0007D8, 0x5196D231},
7098 {0x97CB6984, 0x931184D7, 0x1688D45A, 0x55DB7EBC, 0x49A2FA84, 0xBB7E0B27, 0xFC2A13B4, 0x302906E8} } } } ;
7100 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2925 a000");
7101 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2926 a001");
7102 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2927 a010");
7103 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2928 a011");
7104 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2929 a100");
7105 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2930 a101");
7106 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2931 a110");
7107 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2932 a111");
7108 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2933 a200");
7109 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2934 a201");
7110 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2935 a210");
7111 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2936 a211");
7114 static const fp12_t var_a = { { { {0x44778B19, 0xB13A3149, 0x3AF882B3, 0xBF6334E5, 0xF931A89E, 0xE9CB55D1, 0x5F4CD291, 0x05A8B401},
7115 {0x4B768370, 0xFD06B9F6, 0xD173D06F, 0x2CD82DAF, 0xCC347D26, 0x7BE34354, 0x8E614EAE, 0x365ADC6A} } ,
7116 { {0x51845BC7, 0x88CACE31, 0x7D0D2E34, 0xC7444CB0, 0xA2A56B2E, 0xD542B073, 0x63C7FC55, 0x07BC33BD},
7117 {0x60E61E72, 0x587E72B2, 0x491DB09A, 0x101E5394, 0x3C1A1CB4, 0x0F1A36C7, 0x2A4D64A2, 0x0F24A472} } } ,
7118 { { {0x4E80D2B8, 0x93B32DCF, 0x242F3154, 0xBF6784D2, 0x214291B7, 0x3D4B6027, 0x243E7C6B, 0x3DF1546D},
7119 {0x72180EEA, 0x0173F3F5, 0x7D005E5D, 0x15027DE1, 0xB693D0C0, 0xB42CF876, 0xC5632487, 0x5E24B0F5} } ,
7120 { {0xCB86C963, 0x926521CC, 0x298B87B3, 0x534D7F66, 0x2920DCB9, 0xCF6CB386, 0xB7CAD897, 0x6B211205},
7121 {0xB09DF989, 0xD8CF57AB, 0x05A8092E, 0x099C8BBD, 0x8AE5776F, 0x39EB143D, 0x16652914, 0x086D8400} } } ,
7122 { { {0x6F8DF209, 0x883C3B63, 0x4AF5E5AA, 0x379560EB, 0xAD3C85BB, 0x8621B63B, 0xB3887E31, 0x643EDEED},
7123 {0x27A8DB78, 0xFD4A5B14, 0xE6617111, 0xE31255CC, 0xF6EAE6B2, 0xAE5B2B3C, 0xD2F81E9A, 0x7397D377} } ,
7124 { {0x4A48BAFF, 0xB41F1B27, 0xFE0FE2B1, 0x96FEA16A, 0xDFA08285, 0x8D207E5C, 0xABA0BC0C, 0x6C59D2B5},
7125 {0x2207831E, 0xD1640740, 0x6607C7F2, 0xDD3D5B5C, 0x76C88314, 0x642A5C9C, 0xEC1DEEC9, 0x4A69BDB5} } } } ;
7126 static const fp12_t var_expected = { { { {0x88EF1632, 0x62746292, 0x75F10567, 0x7EC669CA, 0xF263513D, 0xD396ABA3, 0xBE99A523, 0x0B516802},
7127 {0x96ED06E0, 0xFA0D73EC, 0xA2E7A0DF, 0x59B05B5F, 0x9868FA4C, 0xF7C686A9, 0x1CC29D5C, 0x6CB5B8D5} } ,
7128 { {0xA308B78E, 0x11959C62, 0xFA1A5C69, 0x8E889960, 0x454AD65D, 0xAA8560E7, 0xC78FF8AB, 0x0F78677A},
7129 {0xC1CC3CE4, 0xB0FCE564, 0x923B6134, 0x203CA728, 0x78343968, 0x1E346D8E, 0x549AC944, 0x1E4948E4} } } ,
7130 { { {0x9D01A570, 0x27665B9E, 0x485E62A9, 0x7ECF09A4, 0x4285236F, 0x7A96C04E, 0x487CF8D6, 0x7BE2A8DA},
7131 {0x8203E939, 0x03F95E39, 0x2588DD73, 0x16F34F22, 0x194517CB, 0x6CF99482, 0x4AA76CE6, 0x0235C329} } ,
7132 { {0x34E15E2B, 0x25DBB9E8, 0x7E9F3020, 0x9389522B, 0xFE5F2FBD, 0xA3790AA0, 0x2F76D506, 0x1C2E8549},
7133 {0x613BF312, 0xB19EAF57, 0x0B50125D, 0x1339177A, 0x15CAEEDE, 0x73D6287B, 0x2CCA5228, 0x10DB0800} } } ,
7134 { { {0x7CEFAF77, 0x1189ED15, 0xC173EC0E, 0x5C191535, 0x069681C1, 0x10E3100C, 0x26F2203A, 0x0E6A1F19},
7135 {0xED258255, 0xFBA62C76, 0xF84B02DC, 0xB312FEF8, 0x99F343B0, 0x6155FA0E, 0x65D1610C, 0x2D1C082D} } ,
7136 { {0x32654163, 0x694FAC9D, 0x27A7E61C, 0x1AEB9635, 0x6B5E7B56, 0x1EE0A04E, 0x17229BF0, 0x1EA006A9},
7137 {0x440F063C, 0xA2C80E80, 0xCC0F8FE5, 0xBA7AB6B8, 0xED910629, 0xC854B938, 0xD83BDD92, 0x94D37B6B} } } } ;
7139 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2937 a000");
7140 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2938 a001");
7141 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2939 a010");
7142 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2940 a011");
7143 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2941 a100");
7144 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2942 a101");
7145 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2943 a110");
7146 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2944 a111");
7147 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2945 a200");
7148 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2946 a201");
7149 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2947 a210");
7150 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2948 a211");
7153 static const fp12_t var_a = { { { {0x4A43ABE2, 0x99DABBBB, 0x2BB8D351, 0xC9AEE929, 0xDCA3B927, 0x56EFFC96, 0x351B5FB2, 0x4DE4373F},
7154 {0x31F7F442, 0xF677BA9E, 0x0A4DA940, 0x70341846, 0xC7BB2AAC, 0xECB9FF43, 0x9A7AC1C7, 0x766472CC} } ,
7155 { {0x9BDF6E0F, 0xF61AD64F, 0xF6CD8711, 0x69D30571, 0x009E37CF, 0x9251C4CF, 0x2550C939, 0x0E55AC80},
7156 {0x1FF2E209, 0x4CC912E6, 0x961211FB, 0x54DE8E77, 0xE6EBE61A, 0x1833006A, 0x52ACBD47, 0x1F57DBF8} } } ,
7157 { { {0x46F6F8AD, 0xCF91939C, 0xF00CA7EE, 0x3D21527F, 0x96D5AB3C, 0x35F935D4, 0x52178BDD, 0x3FA18B6D},
7158 {0xFA7E34F7, 0xF597BD05, 0x0FB33257, 0x83831FC5, 0x11397FE5, 0xF794D7B2, 0xC8976D89, 0xAFEB444E} } ,
7159 { {0x238B80F2, 0x60AEE1D1, 0x3AB3D360, 0x96B9EF74, 0x75BF6A7C, 0x6576014C, 0xCFB45806, 0x9735993D},
7160 {0xABD670CE, 0x523EA07C, 0xE6DC7417, 0x234AF437, 0x702A4E16, 0xE163D55E, 0xB19A061D, 0x14247122} } } ,
7161 { { {0xF5D6FDF9, 0x2E581315, 0x3D23141B, 0x940F9DE5, 0xBFEDBF4D, 0x9F875C2C, 0x71F04127, 0xB2B6DA9A},
7162 {0xE98C7538, 0x01ED202A, 0x1E39922C, 0xE620BA57, 0xBD2923FA, 0x569E32A3, 0x037389EC, 0x6651610E} } ,
7163 { {0x4CDD4FA4, 0xF954AD15, 0xF1E13A81, 0xE422D768, 0x25C14565, 0x8FE996AB, 0x4F9E63F6, 0x516064D7},
7164 {0x57AE3261, 0xE7643E8C, 0xFE0CA6B4, 0x4C9A889A, 0xF77BF230, 0x380360E5, 0x7160B1AE, 0x9FD4E06A} } } } ;
7165 static const fp12_t var_expected = { { { {0x948757C4, 0x33B57776, 0x5771A6A3, 0x935DD252, 0xB947724F, 0xADDFF92D, 0x6A36BF64, 0x9BC86E7E},
7166 {0x01C3B3E9, 0xEE00EB8B, 0x4023733A, 0xCD5683EB, 0x3B93CBA3, 0xDE13A21C, 0xF4D6A766, 0x32B546D6} } ,
7167 { {0x37BEDC1E, 0xEC35AC9F, 0xED9B0E23, 0xD3A60AE3, 0x013C6F9E, 0x24A3899E, 0x4AA19273, 0x1CAB5900},
7168 {0x3FE5C412, 0x999225CC, 0x2C2423F6, 0xA9BD1CEF, 0xCDD7CC34, 0x306600D5, 0xA5597A8E, 0x3EAFB7F0} } } ,
7169 { { {0x8DEDF15A, 0x9F232738, 0xE0194FDD, 0x7A42A4FF, 0x2DAB5678, 0x6BF26BA9, 0xA42F17BA, 0x7F4316DA},
7170 {0x92D03553, 0xEC40F05A, 0x4AEE8568, 0xF3F492E9, 0xCE907615, 0xF3C952F8, 0x510FFEEA, 0xA5C2E9DB} } ,
7171 { {0xE4EACD49, 0xC26F39F0, 0xA0EFC779, 0x1A623247, 0x979C4B44, 0xCF8BA62D, 0x5F49D3E3, 0x745793B9},
7172 {0x57ACE19C, 0xA47D40F9, 0xCDB8E82E, 0x4695E86F, 0xE0549C2C, 0xC2C7AABC, 0x63340C3B, 0x2848E245} } } ,
7173 { { {0x8981C757, 0x5DC19C7A, 0xA5CE48EF, 0x150D8F29, 0x2BF8F4E6, 0x43AE5BEE, 0xA3C1A626, 0xAB5A1672},
7174 {0x70ECB5D5, 0x04EBB6A4, 0x67FB4511, 0xB92FC80D, 0x266FBE40, 0xB1DC08DC, 0xC6C837AF, 0x128F2359} } ,
7175 { {0x99BA9F48, 0xF2A95A2A, 0xE3C27503, 0xC845AED1, 0x4B828ACB, 0x1FD32D56, 0x9F3CC7ED, 0xA2C0C9AE},
7176 {0x4D303027, 0xCFD9F367, 0x27A16E22, 0x86236495, 0x9B155AAB, 0x74A66560, 0xA2A28733, 0x85962212} } } } ;
7178 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 2949 a000");
7179 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 2950 a001");
7180 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 2951 a010");
7181 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 2952 a011");
7182 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 2953 a100");
7183 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 2954 a101");
7184 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 2955 a110");
7185 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 2956 a111");
7186 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 2957 a200");
7187 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 2958 a201");
7188 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 2959 a210");
7189 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 2960 a211");
7192 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7193 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } ,
7194 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7195 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7196 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7197 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7198 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7199 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7200 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7201 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7202 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7203 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } } } ;
7204 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7205 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } ,
7206 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7207 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7208 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7209 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7210 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7211 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7212 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7213 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7214 { {0x42FF08B6, 0xA57E50D0, 0xD8AB9D08, 0xA93E957A, 0x86223FEC, 0x77BA6A75, 0x975BDA0D, 0xA30CBBD2},
7215 {0x1F2D2BE5, 0x597038E1, 0xFBCC423E, 0x69D31725, 0xCDC049C8, 0x83A5F1F5, 0xA8C3021B, 0x1706E2EF} } } } ;
7217 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 2961 a000");
7218 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 2962 a001");
7219 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 2963 a010");
7220 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 2964 a011");
7221 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 2965 a100");
7222 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 2966 a101");
7223 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 2967 a110");
7224 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 2968 a111");
7225 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 2969 a200");
7226 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 2970 a201");
7227 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 2971 a210");
7228 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 2972 a211");
7231 static const fp12_t var_a = { { { {0x681DAD31, 0x36A590E7, 0xCBCB6B3D, 0x6CD8E8B1, 0x3F666C83, 0x097BCB55, 0xCA05658F, 0x6B9034C6},
7232 {0x06C37CE6, 0xDACD71B4, 0x3D745645, 0x8905C61C, 0x490194A8, 0xE80B3793, 0x2B685903, 0x6AF3D2A4} } ,
7233 { {0xCBB01E94, 0x5DEAA061, 0x37466064, 0xC9C946A8, 0x98643541, 0x357C9689, 0xBCBE7266, 0x27AD5F14},
7234 {0x5465AFB1, 0x4A376D4C, 0x2B0613D9, 0x5376A83F, 0xC3484F1C, 0x3E06F969, 0x05DFBFA1, 0x747F373B} } } ,
7235 { { {0xA25FEAC5, 0x3C0D3070, 0x0EA8D48F, 0x5455B0A5, 0x059F1665, 0x683E09E3, 0xA2E362DD, 0x8187A146},
7236 {0xBC26F8CA, 0x0DFBA1CC, 0x34AC2733, 0xE4F750DE, 0x4E5D284F, 0x0BFD356B, 0x7AD5895F, 0xAE201266} } ,
7237 { {0x28C49861, 0xFC7A676C, 0x4D037E9A, 0x369FE710, 0x7A576960, 0xC1D1B636, 0x33D0B4F1, 0x1D86A332},
7238 {0x44D3CA69, 0xD79A6BD9, 0x390F8E7C, 0xE75D8425, 0xB8B4F658, 0x43AC19D1, 0xA6029252, 0x7785008A} } } ,
7239 { { {0x47993111, 0x19CD6FF6, 0xA0775F3B, 0x6317FC9D, 0xD3B900DC, 0x4130ED76, 0x6419C1B2, 0x5139FCD0},
7240 {0xCFFE8B87, 0x15FAF9BB, 0x3495F230, 0xDB91ECCA, 0x6921951E, 0xEC236C22, 0xA5C85C4A, 0x20C290B9} } ,
7241 { {0xCAE67549, 0x479A2BC2, 0xB5D76A1C, 0x94A1D8BD, 0x4C5EFBEB, 0xFA359C15, 0x65FD02E0, 0x2AF848A3},
7242 {0xF177AC45, 0x48F62BBA, 0x9102F159, 0x92F98954, 0xCF5E023C, 0xFF48D7EC, 0x9A07BCED, 0x9DFCC622} } } } ;
7243 static const fp12_t var_expected = { { { {0x681DAD31, 0x36A590E7, 0xCBCB6B3D, 0x6CD8E8B1, 0x3F666C83, 0x097BCB55, 0xCA05658F, 0x6B9034C6},
7244 {0x5B68B7B5, 0x242117FD, 0x97038901, 0x8A0BE684, 0x0AE0F50C, 0x135524D8, 0x14B68325, 0x4F1FCC1E} } ,
7245 { {0x4CD6F40C, 0xECFCA4BA, 0x8462CF88, 0x63C57639, 0xECEF87FE, 0xCCE1A2E4, 0x136E9581, 0x577C441F},
7246 {0x4B6BA292, 0xDC8E2407, 0x179B884B, 0xB875A0AA, 0x753D2C68, 0x45AFDB01, 0x8D701365, 0x58D47820} } } ,
7247 { { {0x7AFE3CD4, 0xDB20D608, 0x4B75FE6A, 0x268DD37A, 0xF4A6ED16, 0x1A77489C, 0x827C5A17, 0x2CC7C08C},
7248 {0x888CFC23, 0xC68E18DF, 0xAA275D21, 0x03FACBF5, 0xD24095B1, 0xFDC0ABD0, 0x847B7ADB, 0x9ECC323B} } ,
7249 { {0xF6D4204C, 0xF3AC9387, 0x8EC90AB8, 0x726A81E7, 0xCA46B6B2, 0x3FDB4315, 0x33B86E05, 0x37F9A7FD},
7250 {0x00522EC6, 0xA3207DDD, 0x86147F09, 0x17AC09F3, 0xAE49BA1E, 0xD340D70F, 0xAC08E921, 0x90650527} } } ,
7251 { { {0xB74F1C89, 0xE53B735E, 0xB7FB7E55, 0xE12FD448, 0x3578C083, 0xDC440930, 0x02244B22, 0x29079DFE},
7252 {0x1F772916, 0xD13D4324, 0x2A201518, 0x0275DC09, 0x46787BB3, 0x89BA7225, 0x9B422A86, 0x0A7BE82A} } ,
7253 { {0x49630B94, 0x074D6DCA, 0x6C1A975E, 0x1FB6A620, 0x4DF4E410, 0x0272562E, 0x02CA76E1, 0x430E29A2},
7254 {0xA28B4ACE, 0x43F26488, 0x999306A0, 0x81871CEA, 0x71C2ECB2, 0x4F47EE4D, 0x695F4E04, 0x827D3623} } } } ;
7256 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 2973 a000");
7257 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 2974 a001");
7258 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 2975 a010");
7259 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 2976 a011");
7260 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 2977 a100");
7261 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 2978 a101");
7262 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 2979 a110");
7263 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 2980 a111");
7264 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 2981 a200");
7265 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 2982 a201");
7266 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 2983 a210");
7267 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 2984 a211");
7270 static const fp12_t var_a = { { { {0xF478FCD5, 0x8754B6B2, 0x5F4497FB, 0x6B6C35F9, 0x91169804, 0xCEEEAF43, 0xAC0F14A6, 0x131D533F},
7271 {0x25ED671E, 0xCEB80936, 0xD40E81FA, 0x3004C360, 0x53867009, 0x09AEF496, 0xE037ABF7, 0x3FF556AE} } ,
7272 { {0x6098E41C, 0x32B7BBE9, 0x5124F9DB, 0x773AB6D8, 0xE7128B2C, 0x1A90890C, 0xD1FCAD39, 0x5E3FFC3C},
7273 {0xDA5288A8, 0x557D73EF, 0xC9680CAF, 0x16879CCB, 0x8F16D13F, 0x6FF1F6BA, 0xB0FCA1C7, 0x867702F2} } } ,
7274 { { {0x3EBCA28A, 0x3F806CEA, 0x820D9BA3, 0x73F4C858, 0x86489B29, 0x744485EC, 0x9100925E, 0x906ED1F4},
7275 {0x722C3855, 0x9323272E, 0x88E013AE, 0x772E51C6, 0x00CDA7C4, 0x5C67B157, 0xE5B072E9, 0x2ABEDCD1} } ,
7276 { {0x13749B79, 0x4266906F, 0x5CAD2B44, 0x5803E5D7, 0x89C804CB, 0xFB8601F8, 0x3389544F, 0x7CE20E02},
7277 {0x39714220, 0x5F7338FA, 0x4BC4AF2E, 0x3060C314, 0x58173C6E, 0xC6C9B742, 0x9B4A065F, 0x0560D824} } } ,
7278 { { {0x083FD0A8, 0x82724F58, 0xFFF0A456, 0x1810E3DB, 0x43029E86, 0x5917C0C4, 0x293E8B9E, 0x75A056C6},
7279 {0x08961A21, 0x725C5557, 0xCE304F36, 0xE2D18A67, 0xD553DFE6, 0x5ADD91F8, 0xCBEEF476, 0x688A8D81} } ,
7280 { {0x34A264BA, 0x6899266A, 0x170C64A8, 0x3FB05D76, 0x6515F3FE, 0xC92D89FA, 0x659A46C5, 0xB391E561},
7281 {0x5EEFBDC1, 0x6CDD9179, 0xDDC98696, 0xDD0712A1, 0x148AA628, 0xC7A541CD, 0xBAF51369, 0x82DE9FE3} } } } ;
7282 static const fp12_t var_expected = { { { {0xF478FCD5, 0x8754B6B2, 0x5F4497FB, 0x6B6C35F9, 0x91169804, 0xCEEEAF43, 0xAC0F14A6, 0x131D533F},
7283 {0x3C3ECD7D, 0x3036807B, 0x00695D4C, 0xE30CE940, 0x005C19AB, 0xF1B167D5, 0x5FE73031, 0x7A1E4813} } ,
7284 { {0xB9C11C7C, 0xB7DD82C7, 0xE56C8405, 0xC0327759, 0xA47D7356, 0x0617902D, 0xF1F2259E, 0x746BD128},
7285 {0x92B384E5, 0xEE8B720D, 0x5F53F3DB, 0x9DCC82AE, 0x8158A2E0, 0x32FFDD28, 0xE4F008F2, 0x4B48C036} } } ,
7286 { { {0xE531B108, 0xBDBA03EA, 0xB2DB2A88, 0xFE402F93, 0xEC892511, 0x12AA3606, 0x4BA4430D, 0x0386DCDC},
7287 {0x447F02C3, 0xD1D4468E, 0x9C5998A3, 0x3EBE9CAD, 0xC864AE5A, 0x05B6DBF4, 0xFE2E9E41, 0x3313357F} } ,
7288 { {0x3B0E19D0, 0x333E07F1, 0x7C96D83F, 0x1D993A26, 0xE87A42E3, 0xDD9A4385, 0xAA796270, 0xAC0B2E8C},
7289 {0xF569BEF7, 0x406FD5D9, 0x1C55CDA0, 0x8A7F7432, 0x834A16B8, 0x07BF7E1B, 0xCCD8233A, 0x554C665B} } } ,
7290 { { {0x830DF53E, 0xF2EF037C, 0x163BF6F0, 0xBB24EA41, 0xA99CB713, 0x43F7A971, 0xCA0B2A52, 0x52509BCA},
7291 {0xE0C94AC7, 0xCC1F9954, 0xE4D94D63, 0xFB993C4E, 0x6482FC74, 0xF142A17D, 0x915B79B7, 0x4A364FC6} } ,
7292 { {0xB4F1D4E6, 0x8B0E9B39, 0x76AA0D92, 0x579CB2E0, 0x79AEEF48, 0x09D96B1E, 0xC130AA5C, 0x33A09E15},
7293 {0x518E107F, 0x084F7FB3, 0xCF15814B, 0xB89EB684, 0x75999D92, 0xD3650C18, 0x93A0A1E7, 0x72E1651C} } } } ;
7295 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 2985 a000");
7296 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 2986 a001");
7297 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 2987 a010");
7298 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 2988 a011");
7299 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 2989 a100");
7300 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 2990 a101");
7301 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 2991 a110");
7302 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 2992 a111");
7303 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 2993 a200");
7304 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 2994 a201");
7305 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 2995 a210");
7306 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 2996 a211");
7309 static const fp12_t var_a = { { { {0xB56B0588, 0x324F29B3, 0xEC0D21FC, 0x251025EE, 0x778DBD55, 0x9D02417E, 0xDA038305, 0x005DDA85},
7310 {0x0ECB99F9, 0x1B31D54B, 0xEDB9E5CD, 0xA4427753, 0x07769F07, 0xBAF69D18, 0x9914ABB1, 0x22C99675} } ,
7311 { {0x88226BEC, 0x155E9213, 0x88ABF463, 0xF039ACC1, 0x2A57DB82, 0x6DE00649, 0x103770D3, 0x8D551327},
7312 {0x0B45E4AE, 0xC0853699, 0xBC350ADB, 0xC5DC9950, 0x744BCDA2, 0x4A08A6D2, 0x596BD54C, 0x8512596D} } } ,
7313 { { {0x52040A0C, 0x08586A90, 0x8E59BCDE, 0x437908F7, 0x20B7CD0D, 0xF2C8F0F1, 0x8EF7310F, 0x717D7F5D},
7314 {0x677430BD, 0x21849825, 0xE7C9381C, 0x9A600641, 0x347D4443, 0x9EBF66B0, 0xEB2C1ECC, 0xA98568C6} } ,
7315 { {0x75CE55A4, 0x643B9F16, 0xB0F0168E, 0x18512C45, 0x4C7FA0B8, 0x1264688A, 0xE820B67A, 0x4AA1012A},
7316 {0xC976D087, 0x5975CDE5, 0xC2E5FF49, 0x2B786D1C, 0xB892FF07, 0x4E04960D, 0x6899AF2F, 0x84791204} } } ,
7317 { { {0x7EBD2A58, 0x1BE733E1, 0x419A09C0, 0xDC1F5E70, 0x738FDAB6, 0x77FB6728, 0xDBF0474F, 0x78CC79E5},
7318 {0x3200D6BF, 0x44104C39, 0xFC3DB02C, 0xE834A6A7, 0x8073D2DF, 0x329B5CAE, 0x66CB997F, 0x0DD32C7F} } ,
7319 { {0xD460D29A, 0xCEF406C3, 0x6256F800, 0xA0FADA20, 0x75535237, 0x65585B35, 0xA3518D37, 0x21E0227B},
7320 {0x9F425A5D, 0x29B0F8FB, 0x122A0F9C, 0x46C48A67, 0xA561E865, 0x326FD977, 0xA2FA0127, 0x021971D4} } } } ;
7321 static const fp12_t var_expected = { { { {0xB56B0588, 0x324F29B3, 0xEC0D21FC, 0x251025EE, 0x778DBD55, 0x9D02417E, 0xDA038305, 0x005DDA85},
7322 {0x53609AA2, 0xE3BCB466, 0xE6BDF979, 0x6ECF354C, 0x4C6BEAAD, 0x4069BF53, 0xA70A3077, 0x974A084C} } ,
7323 { {0x5F59C14B, 0xBA826DAD, 0x7058D824, 0xACB83D3D, 0x2CD950B5, 0xEED326E4, 0x93EA39A6, 0x5FB8750A},
7324 {0xF39C27F7, 0x3682F2DC, 0x6FA9C899, 0xE3B01E46, 0xB2BDE5B4, 0x4484C877, 0x4C3FAC02, 0x21C320B1} } } ,
7325 { { {0x0300D5B8, 0x943693E9, 0x440EAB9A, 0xA52E1C93, 0x9F42FC46, 0x32A0248F, 0x3FEA39FA, 0x110AE05A},
7326 {0xFC2B52EA, 0xBFE23785, 0x501148B0, 0xAAEE42F3, 0x95143613, 0x108465DF, 0x4056C2DE, 0x5886BAC2} } ,
7327 { {0x4A137047, 0xCD39655B, 0xA8388EF2, 0x56FF7A84, 0xD9C1945A, 0x4B5D8998, 0x964CDA69, 0xA4F1142B},
7328 {0xE4218E64, 0x2A8EA44B, 0x0BF92562, 0x3CFA6BD2, 0xF7CFEA31, 0x2F7DBC8A, 0xBC2960BF, 0x9B0DF18D} } } ,
7329 { { {0x3EE5591A, 0x43838BC0, 0xE6A9DB7D, 0x194E1AF5, 0x8744C832, 0x5B7E1513, 0xB91251AD, 0x195F8F44},
7330 {0x47077407, 0xD2AC569B, 0xC4ECDA96, 0x33483AB2, 0x45BB5709, 0x73FD4CA9, 0x897BCF60, 0x4473EB52} } ,
7331 { {0x538871D8, 0xC0460D1B, 0x710FD6A0, 0x5ED7C15E, 0x2D30D761, 0xB8EAD3A5, 0xB3738974, 0x25D068A1},
7332 {0x52ACF4E4, 0x558440BB, 0x41B22011, 0xE4B49B0D, 0xC77C68DE, 0x311F8EAB, 0x2A60FCAD, 0x2919E852} } } } ;
7334 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 2997 a000");
7335 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 2998 a001");
7336 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 2999 a010");
7337 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3000 a011");
7338 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3001 a100");
7339 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3002 a101");
7340 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3003 a110");
7341 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3004 a111");
7342 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3005 a200");
7343 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3006 a201");
7344 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3007 a210");
7345 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3008 a211");
7348 static const fp12_t var_a = { { { {0xCCA996AF, 0xF9B3E6F4, 0xA9C2E8ED, 0xEB1F3E78, 0x86CBF28A, 0xEAAA7FAC, 0x08A2122A, 0x941C6EC8},
7349 {0xE27F0487, 0x73D76A6D, 0x72B751A9, 0x8F144742, 0xE4A0B1BD, 0x05C39B60, 0x66022AC8, 0x3B2CCEAC} } ,
7350 { {0x5A9F0EEC, 0x94414FCA, 0xC497C032, 0x258EB6E3, 0xADADBFCA, 0x0587D214, 0x4E7A7BB9, 0x77AB8EF9},
7351 {0x5B0EEF11, 0x5C2B6D3E, 0xC9FFC8A7, 0x2BDA1232, 0x709DEB7F, 0x3C34C12C, 0x92AA100B, 0x33D74AD9} } } ,
7352 { { {0xADD3D1E0, 0xE2835F35, 0x1B93C553, 0x50DB5A96, 0x69046203, 0x0FD058C4, 0x010E4591, 0x0D5A7B73},
7353 {0x3860D30D, 0xEFEFDAE2, 0xF52E96BF, 0x3491DC99, 0x3620FE01, 0x883216DF, 0x29945FD6, 0x8D2D0A0E} } ,
7354 { {0x0718BEFD, 0x2C61BC93, 0x8F996293, 0x7E0DF79A, 0x8B60C9C2, 0x00D567AD, 0xA52B7F56, 0x21E7EE54},
7355 {0xBD246F9B, 0x5E87A86C, 0x72865292, 0x988AE7A8, 0xDCF2A2AA, 0x3585D667, 0x4992621D, 0x119ABDD1} } } ,
7356 { { {0xBBB49C2C, 0xCE0231D4, 0xC50D7FFF, 0x0534C303, 0x111C8078, 0x02C7DF60, 0x780F0C58, 0x1A5748CC},
7357 {0xF5DB179D, 0x9F54C28A, 0x62A3E389, 0xB90D5FE6, 0xCEA39C32, 0xB0E94DD8, 0x410BA3E7, 0x000ACC96} } ,
7358 { {0xE925F591, 0x9059FA0A, 0xDA6E17DA, 0x8FBC33DB, 0x19A84F45, 0x4FD26EDC, 0xA1E7F8DC, 0x057B4827},
7359 {0xF997D79E, 0xC004D1F5, 0xB0C2F667, 0xA2E47F81, 0x0BCE27DA, 0x49923F90, 0x4AE6D0B0, 0x65118C20} } } } ;
7360 static const fp12_t var_expected = { { { {0xCCA996AF, 0xF9B3E6F4, 0xA9C2E8ED, 0xEB1F3E78, 0x86CBF28A, 0xEAAA7FAC, 0x08A2122A, 0x941C6EC8},
7361 {0x7FAD3014, 0x8B171F43, 0x61C08D9D, 0x83FD655E, 0x6F41D7F7, 0xF59CC10A, 0xDA1CB160, 0x7EE6D015} } ,
7362 { {0xF6D72E9B, 0x551FB1A0, 0xC07BE0A1, 0x33FFC47B, 0x20A3E527, 0x0C02D902, 0x54AD430A, 0x6BB4FDAC},
7363 {0xC94D23E2, 0x896BE93F, 0xB5E54739, 0x79C3EE0F, 0x2AEFF64A, 0x18417B60, 0x4335D4DC, 0x53EFB877} } } ,
7364 { { {0x81C5EF59, 0x350CE09A, 0xB85D35E4, 0x6166D323, 0x3F2FC364, 0x66D3ABA3, 0x9EAEF5D4, 0x2A849A96},
7365 {0x0428857B, 0xC5FCF4DA, 0xAFC04C8B, 0x3C8F9897, 0xDE7ADEB5, 0x167DA9D1, 0xB97D5012, 0x35C6973D} } ,
7366 { {0xA7A7D098, 0xB4E49F9A, 0x85388BA4, 0x25CFE66E, 0x569CE417, 0x7E90D5BC, 0x0C8C8EEE, 0x5B16AA8F},
7367 {0xE5AAD129, 0x91F1C3AA, 0x2A1F72D7, 0xBECFF218, 0xFE597D52, 0x7C5FE466, 0x42A17C7B, 0x0B68FBA8} } } ,
7368 { { {0xB167723C, 0x17E0C6EB, 0x0CABF3E0, 0x852AC786, 0x15132DB0, 0x7A07B0D8, 0x69A21059, 0x9A415FC8},
7369 {0x16E6E8DC, 0xC8398C4D, 0x14052EBF, 0xB4C6E618, 0x081A4410, 0x965F28C1, 0x019A67C9, 0x91798AFD} } ,
7370 { {0x2650C8A8, 0x23C830CC, 0xB8BF3478, 0xA943A8AC, 0xAB276262, 0xC315D755, 0xFD86DCF5, 0x5E8B53FA},
7371 {0x188DC1DE, 0xE6458D44, 0x28205642, 0x1B505B0C, 0x6FF9418C, 0xFDA85D04, 0x1B823C91, 0x10DC996F} } } } ;
7373 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3009 a000");
7374 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3010 a001");
7375 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3011 a010");
7376 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3012 a011");
7377 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3013 a100");
7378 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3014 a101");
7379 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3015 a110");
7380 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3016 a111");
7381 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3017 a200");
7382 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3018 a201");
7383 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3019 a210");
7384 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3020 a211");
7387 static const fp12_t var_a = { { { {0x4F5D8CFF, 0x14F35EBE, 0xF5829D94, 0xCAA42C20, 0xCB20CEDC, 0xF4B5F6FF, 0x797324DB, 0xA2F03EAC},
7388 {0x6E9E8007, 0x60E03BAC, 0x0CB00DEE, 0xAEC6FD38, 0x6F01E8B6, 0xB3C14835, 0xE5CFE166, 0x95F0960C} } ,
7389 { {0x84423CE7, 0xB5C3DB67, 0x452AC378, 0xBC6FEBF1, 0x086B16D4, 0x84B3CCB2, 0x6CFCAA88, 0x75BE91A5},
7390 {0xBE943DB3, 0xF7408143, 0x229302B4, 0x7270E849, 0xA8374E3F, 0x5DAA1DE5, 0x58734B6C, 0x48E6AFAA} } } ,
7391 { { {0xE22D09C2, 0x27E72D86, 0x0924F139, 0xB9D6D784, 0x8C3059B8, 0xCFDB3100, 0xAD6D26D0, 0xA8122292},
7392 {0x37F88E6E, 0xA29C189A, 0x54A53C0A, 0x0886B798, 0x5428A508, 0xD27FB9F7, 0xD6EFC40C, 0x469CF910} } ,
7393 { {0x9E40D0C8, 0xCC2DC2E1, 0x7F8FFD3D, 0x32F384C9, 0x871406EE, 0x1374EFAA, 0xD6693546, 0x2E9E90AF},
7394 {0xA37C2831, 0x60BC9450, 0xCE07F877, 0x76B9C003, 0x91C527A8, 0xF478538C, 0xD1D8ADA6, 0x711CBBF0} } } ,
7395 { { {0x2594ECDC, 0xE1208133, 0x4B2CBE89, 0x2B90829B, 0xD21963EA, 0x7C2F0091, 0x66A5851E, 0x7CF1A46A},
7396 {0x2605C8EF, 0xBDA365F7, 0xDD74DCC9, 0x1368BD68, 0xA5B1AC3C, 0x58C32A11, 0xE6C12428, 0x3C7BEB48} } ,
7397 { {0x60597E73, 0xE3002E16, 0x3153C131, 0x6E461F9B, 0x88FDC169, 0x85A208A8, 0x131B5E6E, 0x988A0A7C},
7398 {0xA0F8EF76, 0xF5B4339C, 0x51DE38CD, 0xCA37AE7C, 0xD8CCF374, 0x0A82156B, 0x69614AF2, 0x9B9C0180} } } } ;
7399 static const fp12_t var_expected = { { { {0x4F5D8CFF, 0x14F35EBE, 0xF5829D94, 0xCAA42C20, 0xCB20CEDC, 0xF4B5F6FF, 0x797324DB, 0xA2F03EAC},
7400 {0x6E9E8007, 0x60E03BAC, 0x0CB00DEE, 0xAEC6FD38, 0x6F01E8B6, 0xB3C14835, 0xE5CFE166, 0x95F0960C} } ,
7401 { {0x84423CE7, 0xB5C3DB67, 0x452AC378, 0xBC6FEBF1, 0x086B16D4, 0x84B3CCB2, 0x6CFCAA88, 0x75BE91A5},
7402 {0xBE943DB3, 0xF7408143, 0x229302B4, 0x7270E849, 0xA8374E3F, 0x5DAA1DE5, 0x58734B6C, 0x48E6AFAA} } } ,
7403 { { {0x13CD5671, 0x1264F65F, 0x29B9D237, 0xC32EB5F2, 0x2ABCD35C, 0x151E4AE9, 0xC6EC808A, 0x1F26BD67},
7404 {0x1DA370E1, 0x0228CA4A, 0xD1455318, 0x35B0C859, 0x86253BFD, 0xE204D1A9, 0x759B8C12, 0x51D3E4AE} } ,
7405 { {0xC6D93B2D, 0xFF598435, 0xAE02ABE9, 0xD343DF16, 0x7BE6B60B, 0x856BB462, 0xD435A594, 0x0D387607},
7406 {0x9B589696, 0x61B49C02, 0x8923A6F1, 0x4273FD52, 0xC63EC5AC, 0xC3973D36, 0x138AE392, 0x4BE89296} } } ,
7407 { { {0xFF9BEC22, 0x4D84B4B2, 0xFB2458DC, 0xFF57A655, 0xD2552B7E, 0x36663453, 0xA1B38B27, 0x03549D5B},
7408 {0x69809785, 0xC8917526, 0x70D0A9EB, 0x0788B08D, 0x0543B9FF, 0x134CCE37, 0xFF86F7C3, 0x5D1615A8} } ,
7409 { {0xADF952F2, 0x06D69F6B, 0xADC1685D, 0x2FB83D31, 0xD4B2E700, 0x459182AF, 0x0CDFDCCF, 0x9ACF6AA9},
7410 {0x29FB48C2, 0xDC18FD95, 0xA3F5BD16, 0xC8E649A4, 0x121762CE, 0x2B66CC35, 0x69485E96, 0x18456329} } } } ;
7412 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3021 a000");
7413 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3022 a001");
7414 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3023 a010");
7415 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3024 a011");
7416 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3025 a100");
7417 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3026 a101");
7418 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3027 a110");
7419 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3028 a111");
7420 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3029 a200");
7421 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3030 a201");
7422 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3031 a210");
7423 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3032 a211");
7426 static const fp12_t var_a = { { { {0x0080DBFF, 0xE8FDBA96, 0xDBFAF25F, 0x30D01350, 0x1ACC75D5, 0x300B87D6, 0x0F5E0569, 0x04533737},
7427 {0xB3E20351, 0x8458B199, 0x1B1E4137, 0x3FAEABBE, 0xBBD30321, 0x41CA9CB9, 0x4E90D1BD, 0xA8EB7DA4} } ,
7428 { {0x1715B898, 0x775ECEA4, 0xA1EB3B7B, 0x20B560DE, 0xFADDD251, 0x6A722751, 0xE82CC7DC, 0x7A85781B},
7429 {0x53534B8E, 0xDA4FBCE9, 0x4D031AC9, 0x893F60F6, 0xAC6E0495, 0x03667CA5, 0x43D8CF3A, 0x80528750} } } ,
7430 { { {0xC7DCF3B0, 0x75211242, 0x77131AB7, 0xFD9940A0, 0x12590ECF, 0x68D0ABFD, 0x7C08968F, 0xABD87F53},
7431 {0xBECF5836, 0xC4854A21, 0x20C27D17, 0xB05B7127, 0x03F69CB5, 0xF874B3F2, 0x47661323, 0x5F698D6F} } ,
7432 { {0x06E404CD, 0x1084CD08, 0x53C76088, 0xA0AD6ED4, 0xC776A89C, 0x98DBD1C4, 0x157FE421, 0x947E90DE},
7433 {0x6BB98EFE, 0x58BF7A1B, 0x03D2A2E3, 0x96315E06, 0x9B3FF30F, 0xE152BE98, 0xE8830A90, 0x27B7439A} } } ,
7434 { { {0x5FBD9A28, 0x82F8632D, 0x7C1EB3D2, 0x1EA73085, 0xCE61E41A, 0x308DE229, 0x2CEDEC86, 0x910BDF60},
7435 {0x7963643C, 0x4AAF9B69, 0x32A9ED63, 0xA67E0063, 0x788747A4, 0x5F0382BC, 0x3AAF6542, 0xAAF24137} } ,
7436 { {0xE21F2D41, 0xA0C5D7E8, 0x76F6D319, 0x14DE4DE5, 0x3C71EC6B, 0x88F624B1, 0x8EE20468, 0xB6374ADF},
7437 {0x62F483CE, 0x4EFB20FD, 0xA812E265, 0xF4399704, 0x23E06D76, 0xD7E76226, 0x1B002BAD, 0x74735DD9} } } } ;
7438 static const fp12_t var_expected = { { { {0x0080DBFF, 0xE8FDBA96, 0xDBFAF25F, 0x30D01350, 0x1ACC75D5, 0x300B87D6, 0x0F5E0569, 0x04533737},
7439 {0xB3E20351, 0x8458B199, 0x1B1E4137, 0x3FAEABBE, 0xBBD30321, 0x41CA9CB9, 0x4E90D1BD, 0xA8EB7DA4} } ,
7440 { {0x1715B898, 0x775ECEA4, 0xA1EB3B7B, 0x20B560DE, 0xFADDD251, 0x6A722751, 0xE82CC7DC, 0x7A85781B},
7441 {0x53534B8E, 0xDA4FBCE9, 0x4D031AC9, 0x893F60F6, 0xAC6E0495, 0x03667CA5, 0x43D8CF3A, 0x80528750} } } ,
7442 { { {0xAE42D89A, 0x74335B72, 0xF2997B95, 0x4F87AD49, 0xD6E8F8F6, 0x629ECAEE, 0x55868F5F, 0x67A3DA3F},
7443 {0xE2A16B43, 0xE9DDD99E, 0xE15F32A9, 0x129C35BF, 0x691DCF97, 0xB1F75B10, 0x646E924A, 0x9FA69269} } ,
7444 { {0x0FC00364, 0xCC5C0633, 0x231E7AF8, 0xEE249247, 0x0526F745, 0xCC9C9F4C, 0x2C5DC81E, 0x6167CE7D},
7445 {0x18625E10, 0x1278087C, 0x08D07D16, 0x3212A104, 0xB18F34EB, 0xBBA6F2BC, 0xB6EAE3B4, 0xB16F3E80} } } ,
7446 { { {0x5B0638EE, 0x1C9C0202, 0x9D94B734, 0x2AE35AFE, 0x70152566, 0x52900EA4, 0x676DE35E, 0x88073E5B},
7447 {0xDDE08C90, 0x77F8A9D9, 0xFD79CE43, 0x4A5A5D53, 0xE5444250, 0x23CDD3A6, 0x0DDFA5AE, 0x1DBB3832} } ,
7448 { {0xEF709C1B, 0xC2BF01C0, 0x7EB09C44, 0x0225A68B, 0x704FC4FA, 0x5884B442, 0xD82DC6B6, 0x7D5AAF31},
7449 {0xD78F98B9, 0xF25375F7, 0x260C813F, 0xEFCA5015, 0xE4F0EA93, 0x512B0DAA, 0x51B2C0A6, 0xB6392C56} } } } ;
7451 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3033 a000");
7452 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3034 a001");
7453 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3035 a010");
7454 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3036 a011");
7455 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3037 a100");
7456 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3038 a101");
7457 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3039 a110");
7458 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3040 a111");
7459 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3041 a200");
7460 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3042 a201");
7461 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3043 a210");
7462 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3044 a211");
7465 static const fp12_t var_a = { { { {0xB99F59E8, 0x303B0CAD, 0x86BE428D, 0x3CDED263, 0xC99B891B, 0x8A22C844, 0xF9DDAA73, 0x5BBA950F},
7466 {0x99EE9FF0, 0x6E8180CC, 0x598B5D1D, 0x40C0E7D1, 0xF99F4DB9, 0x55D898C2, 0x29B8EEBE, 0x5348E4D7} } ,
7467 { {0xFC026781, 0x130507AA, 0x771603BA, 0x0F140700, 0x015E08C3, 0xDB7AEB3F, 0xD67EFC12, 0x5D687440},
7468 {0xA0ECD273, 0xB220795B, 0x0E92AC42, 0x32E801F4, 0x815D2C22, 0x39EE9A89, 0x4BBD1582, 0x069CA5BF} } } ,
7469 { { {0x890DA59F, 0x9152D0A4, 0x88FDC1A6, 0x8FC05253, 0xF0D76D6B, 0x77FDAD57, 0xFBC7D210, 0x94B94AD0},
7470 {0x1559DA3F, 0x17908C3B, 0x45E3AAC6, 0x5D9FFBC2, 0x7B66FFC9, 0x9371E24E, 0x4C2B3CA4, 0x57BB8958} } ,
7471 { {0x13C55A19, 0x4F1B8C41, 0x381E61EB, 0xBC580715, 0x6D462B0B, 0x36101898, 0x635B24BB, 0x05809C91},
7472 {0xD30BEAD4, 0xE5CE6367, 0x9ABFA075, 0x2949DE6D, 0x6C1BF54F, 0xEB44473E, 0x5EFAC9C4, 0xACE629D7} } } ,
7473 { { {0x9CB15773, 0x829F4D20, 0x9372BF4A, 0x2A5EB89D, 0x22B3489C, 0x66FAB464, 0xC4C413FA, 0x2F15D537},
7474 {0x884223FB, 0x49AA703F, 0x40B59AE4, 0xCA1170EA, 0xE2B1DA59, 0xCA1250CE, 0x5DE0F8E3, 0x573DF4CD} } ,
7475 { {0x0626CD3F, 0x26669D74, 0x259EA64A, 0xF0C2E107, 0x5325273B, 0x3E55F0CE, 0xCC1CE22D, 0xACEA2574},
7476 {0xAC3BFBE8, 0xD05371F0, 0xD9443A81, 0xB909989D, 0xD681C9C7, 0x68A2DA39, 0xD9F5D501, 0x4442D153} } } } ;
7477 static const fp12_t var_expected = { { { {0xB99F59E8, 0x303B0CAD, 0x86BE428D, 0x3CDED263, 0xC99B891B, 0x8A22C844, 0xF9DDAA73, 0x5BBA950F},
7478 {0xC83D94AB, 0x906D08E4, 0x7AEC8229, 0xD250C4CF, 0x5A433BFB, 0xA587C3A8, 0x1665ED6A, 0x66CAB9EB} } ,
7479 { {0x3F123570, 0xAEA849FF, 0x03574FD5, 0xFF98F37E, 0x8A0D0D1F, 0x02B62168, 0x990FF63B, 0x32CF582E},
7480 {0x003B9393, 0xC069D08B, 0x78AADD42, 0xCC3D084C, 0x15F605CC, 0xA926D814, 0x0360E9DD, 0x82278DFC} } } ,
7481 { { {0x7CBCBE8B, 0x4D0F8C70, 0x095C7F78, 0x0B58C35D, 0x0F7F4A5B, 0x6B23B1DB, 0x91B18B42, 0xA5FCF664},
7482 {0xD9B95978, 0xF93DB0D2, 0xB29E6C5C, 0x698677E8, 0x3411815E, 0x90937FB1, 0x366B5D59, 0x992FC0A4} } ,
7483 { {0x3D356EBD, 0x7E98FA49, 0x69548460, 0xCE6BCA99, 0xF6A31AA1, 0x3A403AD9, 0x2F09DD91, 0x4550BA96},
7484 {0x9D46D86E, 0x5444627B, 0xC289FBE0, 0x879AD8D7, 0x975D47BB, 0xE9EFA514, 0x394AB16B, 0xAE8A7105} } } ,
7485 { { {0x4C119DA5, 0x29843C6A, 0x3780FAA9, 0xDE76BA0D, 0x678053AC, 0xFCDB9F81, 0xEF12FAE7, 0x937F0A32},
7486 {0x2720567A, 0xE6C3AE7D, 0xB3D6E194, 0x85295622, 0xEC2D6260, 0xB4C8C337, 0x6CBD0C07, 0x8444893D} } ,
7487 { {0x0D2164B9, 0x968EDC49, 0xB28622C2, 0xF5323233, 0xEBE28D68, 0x33FAC298, 0x4BABD31C, 0x6E6CF43E},
7488 {0x6F989CD0, 0xCFCFB110, 0xE3FCAF7F, 0xA4BFF728, 0x24D3779F, 0x06FA1DD5, 0x26AF9046, 0x1037F161} } } } ;
7490 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3045 a000");
7491 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3046 a001");
7492 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3047 a010");
7493 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3048 a011");
7494 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3049 a100");
7495 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3050 a101");
7496 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3051 a110");
7497 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3052 a111");
7498 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3053 a200");
7499 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3054 a201");
7500 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3055 a210");
7501 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3056 a211");
7504 static const fp12_t var_a = { { { {0xE63CBAC4, 0x20A2FC87, 0x7F7EF0CC, 0x5F8AEA92, 0x07C91368, 0xCF4539E6, 0x1560026F, 0x2B9FC643},
7505 {0x99EF3E64, 0x6CB21F96, 0x23788661, 0xD494CA5B, 0x02D01D43, 0x47BCB61A, 0xC229A5E4, 0x42EB53B9} } ,
7506 { {0x91C90796, 0xCA32792C, 0x145BCCB6, 0xC0D27FF2, 0xA407A334, 0xD3B74FCC, 0xACEB665B, 0x7EAF5E80},
7507 {0x756BA47B, 0x784ECB57, 0xDA3BDCA9, 0x2E1B2900, 0x8E724707, 0xE320891C, 0xD172E5FE, 0x06EF5718} } } ,
7508 { { {0xB00F3FCD, 0x3E680BA7, 0xC255F077, 0x06AF03ED, 0xE7DDE3F0, 0x9F3EDB46, 0x53DB5E08, 0x4F326375},
7509 {0x469EE925, 0x59CA7338, 0xA75B04C6, 0xDAFE74CA, 0x1F817A2A, 0xE81430AA, 0x67EDC3D3, 0x4189A651} } ,
7510 { {0xAA596BC4, 0xAF1E01CA, 0x0A86013A, 0x3ACB0EB2, 0x66DE80C3, 0x55ED4154, 0x3657899D, 0x292D9DE6},
7511 {0x0BBB156E, 0xCAAE4032, 0xDA14DB84, 0x02E71F56, 0xEAB189B7, 0x2529EFA4, 0x253E4E71, 0x65F7BDF4} } } ,
7512 { { {0xC8A095FF, 0x143F1359, 0x3C0BF04E, 0xFDBD3B5B, 0x1C0BBC25, 0xDD501AA0, 0xC0C4F3E1, 0x72DB71C6},
7513 {0x44C4F4F2, 0x1EB9A2D5, 0xC23F527B, 0x4C7AB93A, 0x370F31AA, 0xFA72DAD6, 0x2E8747C3, 0x8A3CF4C1} } ,
7514 { {0x5FBE6A3A, 0x3BAF832F, 0xA873C1BB, 0xDF84400A, 0x7C7691A1, 0x0363B98F, 0x6BFCC4E0, 0x23C5057C},
7515 {0x4C24A57E, 0xF7E8E6A1, 0x068F2619, 0x1A551A63, 0xD6B672F2, 0xF030EA50, 0xA91C03B9, 0x06FA3FE6} } } } ;
7516 static const fp12_t var_expected = { { { {0xE63CBAC4, 0x20A2FC87, 0x7F7EF0CC, 0x5F8AEA92, 0x07C91368, 0xCF4539E6, 0x1560026F, 0x2B9FC643},
7517 {0xC83CF637, 0x923C6A1A, 0xB0FF58E5, 0x3E7CE245, 0x51126C71, 0xB3A3A651, 0x7DF53644, 0x77284B08} } ,
7518 { {0x55D66ED6, 0xB5272C0E, 0xA5F609DD, 0x6623F5BA, 0x02109F13, 0xF1BF65DD, 0x632FF4C6, 0x06142CC3},
7519 {0xEB82A021, 0xED519BDF, 0xAA25C081, 0x57FCF80C, 0x369A01AC, 0x67DA61EF, 0x1B26A341, 0x9359087A} } } ,
7520 { { {0xDF858253, 0x50046612, 0x5BA6987B, 0x77702859, 0x6D7EF218, 0x094FF7BA, 0x40DFABF2, 0x2F35CD09},
7521 {0x00B877E4, 0xAE8791BB, 0x992A75A0, 0x5B687F9F, 0x99A3FC83, 0x39626D97, 0x10C60A8F, 0x7B0ED876} } ,
7522 { {0xB7D2C8D7, 0x4FD087E6, 0xC9F1DE0C, 0xD8469DEE, 0xED0408F1, 0xA5731B16, 0x09C7528B, 0x90E600DC},
7523 {0x0BBB156E, 0xCAAE4032, 0xDA14DB84, 0x02E71F56, 0xEAB189B7, 0x2529EFA4, 0x253E4E71, 0x65F7BDF4} } } ,
7524 { { {0x1D673FA9, 0xE034E6DC, 0x12388CCB, 0xC696F366, 0x1CD3580A, 0x00ED8195, 0x11979465, 0x2FD6AA01},
7525 {0x998B9E9C, 0xEAAF7657, 0x986BEEF8, 0x15547145, 0x37D6CD8F, 0x1E1041CB, 0x7F59E847, 0x47382CFB} } ,
7526 { {0x0CFF1216, 0x93BA19AC, 0xF62B65F4, 0x6EB618B1, 0x75418B65, 0x2FB6D41D, 0x45820F4B, 0x1852C4C1},
7527 {0x5B67EADD, 0xCEEC6F47, 0x31FE7B66, 0xCA236E25, 0x2876F948, 0x9C359595, 0x3CEE3638, 0xB2A3978B} } } } ;
7529 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3057 a000");
7530 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3058 a001");
7531 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3059 a010");
7532 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3060 a011");
7533 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3061 a100");
7534 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3062 a101");
7535 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3063 a110");
7536 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3064 a111");
7537 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3065 a200");
7538 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3066 a201");
7539 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3067 a210");
7540 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3068 a211");
7543 static const fp12_t var_a = { { { {0x25292F93, 0x4FC70B39, 0x47D42666, 0x3A2B697E, 0x202F0623, 0xB36909E1, 0xAAF660E3, 0x21683D6F},
7544 {0x5688D01A, 0x9399E7DE, 0x4A8BD644, 0x6BE1E407, 0x4A754BE7, 0xDEEAEA47, 0xF15888A9, 0x611CEF4F} } ,
7545 { {0x1521A2FA, 0x74C87866, 0x41ABCC0E, 0x742814A4, 0xC08CA60D, 0x76760B0E, 0xB7A8F24A, 0x242AB440},
7546 {0xAD17BFE7, 0xD0310495, 0xA20FCB44, 0x613E9787, 0x03A239D1, 0x7D2A882E, 0x1360BB7A, 0x3FAD8F10} } } ,
7547 { { {0xE6B0D686, 0x163B9926, 0x6480D9BF, 0xD842A39E, 0xE4A63550, 0xA15AEC9D, 0x41076276, 0x022D3BCD},
7548 {0x858F132D, 0x417AFC24, 0x37D48EF0, 0x3E05CE4C, 0x719624BF, 0x1D3B7993, 0x807E75A4, 0x3B35FE09} } ,
7549 { {0x06B7AD75, 0x668017B4, 0xE9024D81, 0x7BAF2790, 0x498F7FEE, 0x890D4355, 0x08F7101D, 0x33C9CF4C},
7550 {0xD5C94140, 0x5277D5FD, 0x35ED51C4, 0x9D96560E, 0x190C8C72, 0x8DABA6BB, 0x113C4E6D, 0x6DF1A6E6} } } ,
7551 { { {0xABC79A82, 0x6E3305F5, 0x794B4971, 0x7D024117, 0x6ABE0632, 0x88B197B1, 0x9225220B, 0x3192D51F},
7552 {0xC05912E8, 0x3BB930B9, 0x2BB2F053, 0x792BC04C, 0x46762C10, 0xE8B63F94, 0xF7764442, 0x4DCA8A84} } ,
7553 { {0xA5298679, 0x3D2F4F4A, 0xAF2CEFC3, 0xD9613D06, 0x06243B09, 0x8B10A4CE, 0xF27B8058, 0x89663364},
7554 {0xB619C922, 0x28DB97C3, 0x8FFDB265, 0xEBA13D75, 0xB78B6B03, 0xFA847F71, 0x83147CA4, 0x0EF52D95} } } } ;
7555 static const fp12_t var_expected = { { { {0x25292F93, 0x4FC70B39, 0x47D42666, 0x3A2B697E, 0x202F0623, 0xB36909E1, 0xAAF660E3, 0x21683D6F},
7556 {0x5688D01A, 0x9399E7DE, 0x4A8BD644, 0x6BE1E407, 0x4A754BE7, 0xDEEAEA47, 0xF15888A9, 0x611CEF4F} } ,
7557 { {0x4D0A91A1, 0x8A26114B, 0x92CC1338, 0x9EE997FC, 0x9355E3A7, 0x84EA515C, 0x8875E9DE, 0x95E8EA81},
7558 {0xB51474B4, 0x2EBD851B, 0x32681402, 0xB1D31519, 0x50404FE3, 0x7E35D43D, 0x2CBE20AE, 0x7A660FB2} } } ,
7559 { { {0x8330FA07, 0x221A5AC0, 0xA36E0793, 0x9D3532F8, 0xB6F7FDF9, 0xC24BCE2F, 0x3DDB3489, 0x9AE83066},
7560 {0x88B005D3, 0x0D87F1BF, 0x17BC1F1F, 0xC2F02D92, 0xDB8C3823, 0xB156CA4C, 0x7AC94913, 0x70637E8F} } ,
7561 { {0x80762B84, 0x78C4979E, 0x131349ED, 0x4B922059, 0x184CD92F, 0x42986E7E, 0x13DC7F72, 0x41E6A458},
7562 {0xB2A960C7, 0xCE73CC66, 0xC94035E6, 0x3A883760, 0xA0608257, 0x015C69C6, 0xB327B658, 0xA63EF40E} } } ,
7563 { { {0xAEB9A0DE, 0x34F78442, 0x11E9EFB6, 0x4E59FEFE, 0x0A7F3474, 0x875CB860, 0x67F7764B, 0x701A40B7},
7564 {0x4609AD66, 0x98A3BBA5, 0x72BAD187, 0x25366CAE, 0x4D0402AA, 0x50F3F304, 0x591C9176, 0x4CC2946B} } ,
7565 { {0xC77AB714, 0x7D19903E, 0x0E2BAD9C, 0x8C28D964, 0xDB6F6506, 0xD6205EA8, 0x1A07B9D9, 0x8D840E8F},
7566 {0x646B3797, 0xA9F72DD0, 0x90A71F0E, 0xE2F75D44, 0x742F575A, 0x5DAE55DA, 0xDB32C071, 0x8A1C1D00} } } } ;
7568 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3069 a000");
7569 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3070 a001");
7570 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3071 a010");
7571 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3072 a011");
7572 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3073 a100");
7573 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3074 a101");
7574 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3075 a110");
7575 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3076 a111");
7576 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3077 a200");
7577 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3078 a201");
7578 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3079 a210");
7579 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3080 a211");
7582 static const fp12_t var_a = { { { {0x10E478F6, 0xF892B156, 0x7903DF7E, 0x878E6B87, 0x3B82C990, 0x108D4DE3, 0x1EE982E0, 0x863A1916},
7583 {0x549B49E3, 0x48CD865A, 0xB9B227D2, 0xFF6143DE, 0x72BBED31, 0xB3800D41, 0x9E1098E8, 0xB5D9E10E} } ,
7584 { {0x9B59471D, 0x4E2C7BBC, 0xC90AD57F, 0xF429B0E7, 0x274EC611, 0xEE21FA26, 0xA4893146, 0x8E41A3C5},
7585 {0xB02ED415, 0x30FBFA93, 0x0A464762, 0xD41606C2, 0xE8A1D06D, 0x4178BF4C, 0x96DAC791, 0x28595963} } } ,
7586 { { {0x18115656, 0xD1BC22AE, 0x6228A88A, 0x4E42D661, 0x9717821E, 0xB8233921, 0xC35F9080, 0x93EE5FA5},
7587 {0x9A024AD5, 0x9516DDBC, 0x60168506, 0x5978B48B, 0x0FDCF455, 0x1273AB45, 0xF1938374, 0xA3D0FD60} } ,
7588 { {0x1E8218F2, 0xF638366A, 0xD8ADD39A, 0x26ED4B0C, 0x2D369D49, 0xE7AA37AC, 0x51E9ED28, 0x6B2D56EA},
7589 {0x9F95D199, 0x9BDB5EDF, 0xD1EB77CE, 0xBF226FFF, 0x685E0EF8, 0xB69332D6, 0x564A34D6, 0xB01CEEBE} } } ,
7590 { { {0x54B72B59, 0x8F70F8CD, 0xDF833D25, 0xE393DD99, 0x268062B6, 0xFB8EFE92, 0x09DCAED8, 0x93E7373C},
7591 {0x33479C43, 0xEA94D10D, 0xDEA260D2, 0xAE28F15A, 0xDB27B44A, 0xA3663C9D, 0x16610485, 0x0CFCA90D} } ,
7592 { {0x3D85643E, 0x7535448D, 0x478F63A0, 0xF1B25ED3, 0x1D5DC470, 0x3DAF20B2, 0x3886F41F, 0x24AC6B5F},
7593 {0xBC6CA111, 0x32F75604, 0x8AC88704, 0x97B6D4D4, 0x4DCC5534, 0xDF34AA37, 0xBB77FE08, 0x45EA10B3} } } } ;
7594 static const fp12_t var_expected = { { { {0x10E478F6, 0xF892B156, 0x7903DF7E, 0x878E6B87, 0x3B82C990, 0x108D4DE3, 0x1EE982E0, 0x863A1916},
7595 {0x549B49E3, 0x48CD865A, 0xB9B227D2, 0xFF6143DE, 0x72BBED31, 0xB3800D41, 0x9E1098E8, 0xB5D9E10E} } ,
7596 { {0x9B59471D, 0x4E2C7BBC, 0xC90AD57F, 0xF429B0E7, 0x274EC611, 0xEE21FA26, 0xA4893146, 0x8E41A3C5},
7597 {0xB02ED415, 0x30FBFA93, 0x0A464762, 0xD41606C2, 0xE8A1D06D, 0x4178BF4C, 0x96DAC791, 0x28595963} } } ,
7598 { { {0x8B0F92DA, 0x58C77A1E, 0x90B15015, 0xC6D8975E, 0x4169579C, 0x1FEDA789, 0x40C39656, 0x617727D3},
7599 {0x1829D797, 0x43915B14, 0xCB1E1E8C, 0x93BAB797, 0x10865238, 0x8FAD7FF8, 0x0F4129BA, 0x2F450A26} } ,
7600 { {0x7A08BDF4, 0x378C6F49, 0x0A75DE97, 0x30686206, 0x67404F29, 0x5EAFA36C, 0xDAE93489, 0x5537D6B3},
7601 {0xE60534AD, 0x79EEE7DB, 0x578D76A4, 0x5E8BF8BC, 0x076D174A, 0x13C051FA, 0x8674FE58, 0x47E0B4AD} } } ,
7602 { { {0x16F4DF4C, 0xF5632202, 0x9C8279F9, 0x6662F0DE, 0x29892724, 0x7ABE52C5, 0x82260B7F, 0x16770064},
7603 {0x933D6943, 0xB6AFC304, 0x51B176A9, 0xA68ED60A, 0xF0538851, 0xCF2EE07A, 0x72EF2248, 0x00E760A9} } ,
7604 { {0x63BE11F8, 0x43ADCF67, 0x9B394F02, 0x10FA4B77, 0x335958A0, 0x8683F54E, 0x7B5C791B, 0x04A14ACC},
7605 {0xB117C97D, 0x7E773DDC, 0xFE1430A2, 0x25BD7755, 0x090212A3, 0xCE75AD4C, 0x7BD56E44, 0x75B4668A} } } } ;
7607 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3081 a000");
7608 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3082 a001");
7609 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3083 a010");
7610 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3084 a011");
7611 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3085 a100");
7612 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3086 a101");
7613 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3087 a110");
7614 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3088 a111");
7615 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3089 a200");
7616 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3090 a201");
7617 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3091 a210");
7618 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3092 a211");
7621 static const fp12_t var_a = { { { {0xB4AE7EB1, 0x1B5B2212, 0xD2A49612, 0xC7EA28FC, 0xE5A69FB6, 0x386E785C, 0x86D16710, 0x61076371},
7622 {0x69A03A37, 0x6981652E, 0x3D3A0DA5, 0x58CF03D3, 0x99EDEB2A, 0x5B782811, 0xE763D782, 0x713421E5} } ,
7623 { {0xCF3AA4F7, 0xD4680C53, 0x4847C8B3, 0x63E59A5E, 0x8B6EAA8C, 0xC6FF09D9, 0x0637BAB1, 0x3E8C7246},
7624 {0x581572E7, 0xC01931DD, 0x65C697BE, 0x485B0CDD, 0x00F1F3D5, 0x737E339A, 0x9D3D5E52, 0x34122396} } } ,
7625 { { {0xDE5AF98D, 0x3BF38CE4, 0xB7C915C8, 0xF4D11ADD, 0xD11E8F0E, 0xD7790750, 0x5DE35041, 0x43B49A4E},
7626 {0x21EDA46E, 0x97BF663A, 0x05AF6D1C, 0xF4A8A7C1, 0x16090481, 0x50F9EE6D, 0x2B4B78A1, 0x335B1127} } ,
7627 { {0x47E853D5, 0x0222470A, 0x784F3B55, 0xE8D4F0F7, 0xDF09527B, 0xCDD44209, 0x5E70B4F5, 0xB5BDD28D},
7628 {0xF42E8056, 0xA5B01B73, 0xB6585A1A, 0xAD03C515, 0x8ABC5AF0, 0x0E078303, 0xA7D00510, 0x25C27612} } } ,
7629 { { {0x3F707BCE, 0xBF291710, 0x1D66E367, 0xFCF73C45, 0x9727802A, 0xB57F96DE, 0x0833AF91, 0x970B2D78},
7630 {0x3598C277, 0xF59CD4FB, 0x8DE0C671, 0x4E7AC0AC, 0x816D5445, 0x7C6056DB, 0xE0C59335, 0x537D1338} } ,
7631 { {0x43E64759, 0xD8600D54, 0x91CAEEBA, 0xF95B4A6E, 0x9C18DE6C, 0x1F202806, 0x8BD20793, 0x5A4CE1F2},
7632 {0xE019C973, 0x9B63CCD1, 0xC120C4E0, 0x42BE5A10, 0x35B6D892, 0xE3B64995, 0x2FA31710, 0x55D4D1A8} } } } ;
7633 static const fp12_t var_expected = { { { {0xB4AE7EB1, 0x1B5B2212, 0xD2A49612, 0xC7EA28FC, 0xE5A69FB6, 0x386E785C, 0x86D16710, 0x61076371},
7634 {0xF88BFA64, 0x956D2482, 0x973DD1A1, 0xBA42A8CD, 0xB9F49E8A, 0x9FE83459, 0x58BB04A6, 0x48DF7CDC} } ,
7635 { {0xB723164A, 0xC5C6B0B9, 0x23CA3E17, 0x0AA6DC85, 0x3E7EC43A, 0x5EDC882D, 0x8AC00A00, 0xB4BE7D67},
7636 {0xDD920F4C, 0x9741347E, 0x2EDC496D, 0x503E56EC, 0x1655A8CE, 0x5D0C1F76, 0xE9C0BAA1, 0x181874C8} } } ,
7637 { { {0x9361F56C, 0x397BE574, 0x87DAAA67, 0xDF57D7C5, 0x8E4139D6, 0x2BDE5EF8, 0x946FD93B, 0x5B6E7E9E},
7638 {0x6B8DF0AD, 0x89BC34B4, 0x1F639514, 0xA189E236, 0xD402D412, 0x0A353DE5, 0x932A5F3B, 0x46698FFD} } ,
7639 { {0x8D96A3EE, 0x88EB9236, 0xA2CC6FD8, 0x1F79CD57, 0xAEF84A82, 0x6C456567, 0x5985C260, 0x18E875AC},
7640 {0x7355A8FA, 0xAF491FA9, 0x6D634F44, 0x5EC9E3DD, 0x50A66E5E, 0x4A268096, 0x5DF53B92, 0x46ACD846} } } ,
7641 { { {0xBF77AC02, 0x1E3E9E99, 0x74B62164, 0xCB9A5C1A, 0x095116F0, 0x6EF5A158, 0xDEEFEDF9, 0x1CF90006},
7642 {0x9CF2E49E, 0x437D2FCF, 0xCC84DC8E, 0x4234955A, 0xF7488F96, 0xDBDFF3DF, 0x93E32F61, 0xA9464175} } ,
7643 { {0x6F4CD6BC, 0xAB4411D7, 0xFBB94DCB, 0x08754DD5, 0x651A9D1F, 0x9183E03A, 0x6B54C391, 0xB7BA6A99},
7644 {0x59FABE87, 0x10D627EF, 0xFA83890A, 0xCFA7AD27, 0xD06D4B2A, 0x6EACA4F6, 0xC66E4D61, 0x6C80FE1B} } } } ;
7646 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3093 a000");
7647 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3094 a001");
7648 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3095 a010");
7649 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3096 a011");
7650 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3097 a100");
7651 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3098 a101");
7652 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3099 a110");
7653 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3100 a111");
7654 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3101 a200");
7655 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3102 a201");
7656 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3103 a210");
7657 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3104 a211");
7660 static const fp12_t var_a = { { { {0xA1A716E4, 0xB8EA4C0D, 0xF92F23B5, 0x9D7CADFA, 0x18DFFEC8, 0xAA091295, 0x20346610, 0x55698528},
7661 {0x30DAA3A1, 0x5D8A1CD7, 0x5A4B8C07, 0xE8583CA6, 0x0EFF531C, 0xBC9BD4C8, 0x9DC17339, 0x7379AA55} } ,
7662 { {0x101EB1C4, 0x39E3981E, 0xD5EFD32E, 0x9C9CF009, 0x5AE2D554, 0x398539C4, 0x7B673365, 0x6D75CED4},
7663 {0xBDE71253, 0xD1657D37, 0xA12AAA15, 0x2684BC91, 0xC3B3B785, 0xAEC7F814, 0xBD423CF5, 0x79A42BC3} } } ,
7664 { { {0x717FC885, 0x0331FD57, 0xC6F710C3, 0x531876B4, 0x925435D3, 0xE7EFF897, 0x1B8F27B8, 0x85C3C849},
7665 {0x3CEE1286, 0x465AF89A, 0xCE502398, 0xB9E87AE3, 0x85522C5B, 0x3071FF1D, 0x78850D9C, 0x68828DE2} } ,
7666 { {0x0ABC4302, 0x132B8F06, 0x20989191, 0xB19604DF, 0x165398BD, 0x16279842, 0xF37DFA5E, 0xB82C761F},
7667 {0xF210F30E, 0x90A93206, 0x3B8D407C, 0xBF7234EA, 0x0217CD48, 0xA01CC119, 0x5948385D, 0x04166E02} } } ,
7668 { { {0x7326623B, 0x5A4B50F6, 0x9F6005B5, 0xB4C614B4, 0x703B9FB9, 0x4D17EA2B, 0x9A40F92B, 0x7692C5E8},
7669 {0xCBF5BB75, 0xEBB5F336, 0xF84C44A2, 0xC4C51BA1, 0x9BE6BE60, 0x4413A328, 0x8FE51BAA, 0x6D2A99F8} } ,
7670 { {0xDDA58BE0, 0x1D38B936, 0xF57B8E71, 0x075D2FBC, 0xFA03DF52, 0xFE0EE109, 0x815192AE, 0xB7B87A66},
7671 {0x9C0EE206, 0xE2769E0F, 0xB2121EC3, 0xC072B0D9, 0x08A5C45B, 0x3689F8B8, 0xE689DA67, 0x043C92EF} } } } ;
7672 static const fp12_t var_expected = { { { {0xA1A716E4, 0xB8EA4C0D, 0xF92F23B5, 0x9D7CADFA, 0x18DFFEC8, 0xAA091295, 0x20346610, 0x55698528},
7673 {0x315190FA, 0xA1646CDA, 0x7A2C533F, 0x2AB96FFA, 0x44E33698, 0x3EC487A3, 0xA25D68EF, 0x4699F46C} } ,
7674 { {0xAE9D5250, 0xB42B4CEC, 0x9512FB54, 0x435B2838, 0x840EAB1E, 0xB82446C6, 0x33A3B1F5, 0x0D550504},
7675 {0x3C388072, 0xB14ED385, 0xB2135CEB, 0x00DF2A69, 0xA4C0A762, 0xC751EAE2, 0x252108FB, 0x32275EC1} } } ,
7676 { { {0x9039D4FB, 0xB1FCB864, 0x1846E06A, 0x2E5187E5, 0x2F7C3FB4, 0xE3C536B3, 0x09BD2538, 0xA1943481},
7677 {0x613237A4, 0x198B7387, 0xD2D413E3, 0x5275CBFD, 0x2CD5F228, 0x8D7C350D, 0xB5D08803, 0x8B916809} } ,
7678 { {0x17433B99, 0x2219F476, 0x67042179, 0x55B1515C, 0x0F6D8997, 0xDB95C679, 0xF188A3A2, 0x9A33F086},
7679 {0xDB88E989, 0x28DE5B32, 0xD5D957A0, 0x045E77A7, 0xA723B9EA, 0xCDB3795D, 0x0A6DCC5C, 0x141708B0} } } ,
7680 { { {0x1803E4BB, 0x3BE8BA7A, 0xD7B37918, 0x0494D160, 0xF1D427AB, 0xB5517AF6, 0x0BD26321, 0x1C6A8E34},
7681 {0xB002D116, 0x3D9C5AB1, 0x7791CBED, 0x263BE585, 0x720EC2A9, 0x3AEF66F1, 0x8CBBBAE3, 0x21839A23} } ,
7682 { {0xC4E55872, 0x474D1F01, 0xE67BB930, 0x80806B82, 0x3D44EA12, 0xF9E46B2F, 0x1F5F6A99, 0x0C7465B6},
7683 {0x96B514B7, 0xBE62A8F7, 0x5C7D5C13, 0xA89F6049, 0xDFAD8B71, 0xA671D956, 0x1D36F5EE, 0x1C7A7467} } } } ;
7685 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3105 a000");
7686 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3106 a001");
7687 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3107 a010");
7688 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3108 a011");
7689 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3109 a100");
7690 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3110 a101");
7691 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3111 a110");
7692 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3112 a111");
7693 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3113 a200");
7694 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3114 a201");
7695 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3115 a210");
7696 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3116 a211");
7699 static const fp12_t var_a = { { { {0x97B81ABC, 0xE7EE19F5, 0xA352AF7A, 0xBDDC7C15, 0xE0D3C1A7, 0x315A804C, 0x8F5EAE9D, 0x093D9C91},
7700 {0x77889773, 0xD96A5009, 0x521B773A, 0x7732580C, 0xA2ECAE9C, 0x238F5F07, 0x8B47FB45, 0xAB953A85} } ,
7701 { {0x949FBD41, 0xB8BAA42B, 0x6E69D7FE, 0x6476A376, 0xC984C112, 0xCB3B0ABF, 0xAAC926FB, 0xB3568DFA},
7702 {0x6B6B163B, 0x9E254AE8, 0xC966EA6B, 0x4059D432, 0x2439177F, 0xA898158C, 0x2C63376F, 0xA4DB46DB} } } ,
7703 { { {0x3477CE14, 0x0AE8099F, 0xBD58F473, 0x7D3245D5, 0x7D0A8042, 0x7FECD784, 0xAE9AB83D, 0x48730F17},
7704 {0x441A03DA, 0xC590BCBF, 0x6906A2F4, 0x36DE2156, 0x09674C55, 0x004AC6F5, 0x6F77DE16, 0x23A5BF4B} } ,
7705 { {0x1FB84DB2, 0xDF172B04, 0x88346B0E, 0xBAB35F81, 0xA89CB92C, 0xD8A7D52B, 0x316D79D9, 0x4093BAEA},
7706 {0xF4BB7A8D, 0x0F0FCAAA, 0x6521DB34, 0xD9120621, 0x1A1DCD23, 0x6CCED266, 0x01DCA381, 0x7A0DAFEF} } } ,
7707 { { {0x9FC5B419, 0xC6007C8D, 0x248D9DA1, 0x6D4B7AAE, 0x706D5DEC, 0x9FBCDD69, 0x91CD85C8, 0x70D11EA6},
7708 {0x8B73C007, 0x8E6EE78B, 0xA46C343D, 0x8DF431BD, 0xDD0E15E5, 0x3CE74BF2, 0xB74C998F, 0x15235F9C} } ,
7709 { {0x6D0DE815, 0xD17365BD, 0xE05F0E26, 0x9A0B8A3A, 0xA9DCA18A, 0xB47A156C, 0x86C3A40A, 0xAA3343D2},
7710 {0x17B3D207, 0xCB40A3D2, 0xA895394A, 0x1C139EBF, 0x2CA970FA, 0x2CEB705D, 0x179082C2, 0x2089A3DA} } } } ;
7711 static const fp12_t var_expected = { { { {0x97B81ABC, 0xE7EE19F5, 0xA352AF7A, 0xBDDC7C15, 0xE0D3C1A7, 0x315A804C, 0x8F5EAE9D, 0x093D9C91},
7712 {0xEAA39D28, 0x258439A7, 0x825C680C, 0x9BDF5494, 0xB0F5DB18, 0xD7D0FD63, 0xB4D6E0E3, 0x0E7E643C} } ,
7713 { {0xD3796BFC, 0x6CEF85CF, 0xDFD7698A, 0xD8B42CD0, 0x84C072E3, 0x40D62FB5, 0x35511078, 0x7DBEDDAA},
7714 {0x8ED713D0, 0x4ED6993D, 0xD421E909, 0x8261172C, 0x65E87C44, 0xC00D42E8, 0xC92F69A0, 0xA31033F2} } } ,
7715 { { {0x5E9028AA, 0x913B3AEF, 0xBED1D5A2, 0xDC737A48, 0xE7D8724C, 0x5DE191FB, 0x2FEA600B, 0x4DE1BBCA},
7716 {0xFC70263E, 0xFB52C7E1, 0x6142FC10, 0x949661D7, 0x3988C102, 0x946FDD18, 0x80AE6DC9, 0x6C4D7EFC} } ,
7717 { {0x3EE9DE75, 0xE7F9677E, 0x4306FF3A, 0x5A22E32C, 0x41B541F2, 0xA20A680B, 0x590CD936, 0x501510D0},
7718 {0xE9867778, 0x026D52E0, 0xF0E9FBE0, 0x6EF414E6, 0x00CDEFF7, 0xAE877A2F, 0x130BCA61, 0x289C79E3} } } ,
7719 { { {0x285EAD68, 0x4BB2B525, 0x3F31F6FB, 0xC1A2FD2B, 0xAD4E4467, 0x540AD35B, 0xC3582660, 0x1345E472},
7720 {0x734C91A0, 0x999D3A9A, 0xF5F8BBA2, 0xEB8E176F, 0x1068415C, 0xCC80A097, 0xDD4CCE18, 0x89920591} } ,
7721 { {0x78DFE4B9, 0x8E363C05, 0x57384D64, 0x6D9F17D1, 0xEBDBC1E5, 0x18357C9D, 0xE1155D3A, 0x02B0250D},
7722 {0x14FBA8D2, 0x9898E977, 0x0DF2A7C1, 0xD2A61342, 0xC0841798, 0xA3F8F90D, 0xB568082D, 0x9B15D71B} } } } ;
7724 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3117 a000");
7725 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3118 a001");
7726 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3119 a010");
7727 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3120 a011");
7728 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3121 a100");
7729 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3122 a101");
7730 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3123 a110");
7731 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3124 a111");
7732 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3125 a200");
7733 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3126 a201");
7734 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3127 a210");
7735 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3128 a211");
7738 static const fp12_t var_a = { { { {0x4585B9B1, 0x95134F6E, 0x6D99E62B, 0x26A1613D, 0xC72C8656, 0x89BAC57A, 0xE52C835A, 0x2A6B00C0},
7739 {0x1A12BF58, 0x57809AA3, 0xCD9CE5EC, 0x2B6CAB77, 0x9571908C, 0x2FEEB81F, 0x91E85F74, 0x4E13B9BF} } ,
7740 { {0x58BBE8D7, 0xDFA09880, 0xDDDCA3C4, 0x147D80D7, 0x9D2C6FC3, 0xF1606CB6, 0xB0AB0021, 0x377EA1E3},
7741 {0x8379BD5B, 0x9CD78776, 0x4B96F66E, 0xE4E4E306, 0x71B69CE5, 0xEA914BEB, 0x46B1477B, 0x52DCF143} } } ,
7742 { { {0x62B9AEB0, 0x81CEDEB8, 0x850B5059, 0xD459F0DE, 0xCA1F0C05, 0xD9111B8B, 0x42D13B3F, 0x5B186BE1},
7743 {0x06073B6E, 0x81717CA2, 0x8008F735, 0xDAC57134, 0x683D0C15, 0x2AEEF57D, 0x7796C879, 0x75D768DF} } ,
7744 { {0x24F96A28, 0xF5DDFEAB, 0x29A78637, 0x393924C1, 0x350CA497, 0x5B8CF250, 0x560845AA, 0x85B53D7C},
7745 {0x76D003D9, 0x41029C98, 0x2CAC240C, 0x7AD1708C, 0x5B4C085B, 0x21AD1805, 0x33184AFB, 0x077E8DC3} } } ,
7746 { { {0x0FA32D68, 0x6DA6B360, 0x2DF07DB8, 0xDE61A704, 0x20A5BF39, 0xDBA204B2, 0x7B6B3F1C, 0x699AA160},
7747 {0x6A218A75, 0x31CFA9EB, 0x23781D63, 0x18D5C7A4, 0x39C51640, 0x3E94D95E, 0xEA273F3A, 0x231F64F6} } ,
7748 { {0x55054B07, 0xD57523CC, 0x70E45EE9, 0x146539BA, 0x09BF85D9, 0x69CC855F, 0xE2B5730D, 0xA722BFC6},
7749 {0x91D58FA1, 0xF17E3FF3, 0xC22E6A1A, 0xD6B88101, 0x70759C9A, 0xFF10AF3D, 0x3D4CB8BD, 0x57D6BCFC} } } } ;
7750 static const fp12_t var_expected = { { { {0x4585B9B1, 0x95134F6E, 0x6D99E62B, 0x26A1613D, 0xC72C8656, 0x89BAC57A, 0xE52C835A, 0x2A6B00C0},
7751 {0x48197543, 0xA76DEF0E, 0x06DAF95A, 0xE7A50129, 0xBE70F928, 0xCB71A44B, 0xAE367CB4, 0x6BFFE502} } ,
7752 { {0xBBF815E1, 0xB9F43A34, 0xE185157E, 0xE6018922, 0x7F4753D6, 0x54B10B86, 0x909FA87B, 0x8D815BAB},
7753 {0x96D389DA, 0xC169D1D2, 0x1D48208E, 0xF9734ED7, 0xD2283145, 0x95B00AD0, 0x996EC12E, 0x6DD9FA86} } } ,
7754 { { {0x5201D36C, 0x0BFA4C70, 0x042DE272, 0x67739600, 0xD0E2D3E6, 0xAF39702E, 0x92904D62, 0xB6926DCD},
7755 {0x11688D72, 0x2C326B1E, 0xF4D39F93, 0x9F0E5AF4, 0xAEF63021, 0x2A97C572, 0x3650F78E, 0x6842B845} } ,
7756 { {0x3D953CC6, 0xBA4C8646, 0xC1423460, 0xD8365AD4, 0x9959C007, 0x7739F102, 0x0E2FA13E, 0x47929D97},
7757 {0xF4B2F88C, 0x8737A9D7, 0x166F811F, 0x1EA32737, 0xD3A3B518, 0x2C7980EF, 0xC97B6F6B, 0x5C83F5B2} } } ,
7758 { { {0x0377F8F1, 0x6D0C052B, 0xF0C5C4A6, 0x332AD465, 0x95944BC1, 0xCCB71D21, 0x0EE077EC, 0x79E921B4},
7759 {0xFAE1BD74, 0x2C249537, 0xD6D0337B, 0xD4AC5557, 0xB6E7AA8D, 0x2DF9EEAF, 0x6ED46EEB, 0xB50C6991} } ,
7760 { {0x295AC2AE, 0x7F5FF3E4, 0x33F1DE20, 0x83E74D3E, 0xC3931482, 0xCDBE0815, 0x22FD99AA, 0xA8377C74},
7761 {0xDAB7B912, 0xAED79F6B, 0xBDD850E4, 0xD9DFC8FC, 0x66A50D35, 0x24811C93, 0x9C1F2D46, 0x69C6D4B0} } } } ;
7763 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3129 a000");
7764 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3130 a001");
7765 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3131 a010");
7766 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3132 a011");
7767 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3133 a100");
7768 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3134 a101");
7769 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3135 a110");
7770 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3136 a111");
7771 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3137 a200");
7772 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3138 a201");
7773 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3139 a210");
7774 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3140 a211");
7777 static const fp12_t var_a = { { { {0x12782C3D, 0xD8AAE8CC, 0x232DFCA2, 0xACA660F4, 0xD8203538, 0x79F45249, 0x825A9495, 0x5EE119DF},
7778 {0x3C7BDA40, 0x7EB518EF, 0xEDC4AAD9, 0x0AB20085, 0xC6AEE30A, 0xB1ABD4E8, 0xC1A7C76F, 0x8A72F366} } ,
7779 { {0xF5F0A715, 0x11F54115, 0x43FC10BA, 0x10D4E8FD, 0x5A899CDC, 0x934743B7, 0xA481AFDF, 0x8767E8D3},
7780 {0x7FB838EB, 0x355529E6, 0x9A9EE69F, 0x013BFA47, 0x27AA11B5, 0xD46ED2F3, 0x6ABE574E, 0x482AB822} } } ,
7781 { { {0x48E9C7B6, 0x1AE15AF0, 0x814F4749, 0xA6A561F1, 0x77D858C3, 0x3C9CE947, 0xCA7196CC, 0x5C4F1719},
7782 {0x20A02BA0, 0x822C50E7, 0xE04F2372, 0x72F6A656, 0xCC4E667C, 0x3E52D0B3, 0x7B3F57D5, 0x32F2A863} } ,
7783 { {0xA55A7DB3, 0x8E657C83, 0xFCB9F2D0, 0xA4B2FF94, 0x388FDBE2, 0xC1C3F74D, 0x6DDB00A7, 0x8D0A8704},
7784 {0x3A4C1F4F, 0x2674D110, 0x4165215E, 0x73112DAF, 0xCE8BAB0C, 0x06AC20BF, 0x66FCB152, 0x8C90922B} } } ,
7785 { { {0xF6797D25, 0x4EBD3F75, 0x53E3E2DA, 0x2C42CC2C, 0x36FEF642, 0xD8F3D197, 0x5D231DED, 0xA8267762},
7786 {0xAEE286A2, 0xA8B1D157, 0xE0608374, 0x49C75A9F, 0xF2448174, 0x0BB35ACA, 0xD2E96F35, 0x0F17BF98} } ,
7787 { {0x3ABA9830, 0xF16ECFC7, 0x85445C2B, 0xF1CDC7BF, 0xF0D5732E, 0xD446095F, 0xE5D3D60E, 0x1816FCC5},
7788 {0x46A36E68, 0x0C69A20B, 0x3FC0F776, 0xC078241B, 0x5CC907C9, 0x37EF4722, 0x8CBBF89A, 0x376C9AAF} } } } ;
7789 static const fp12_t var_expected = { { { {0x12782C3D, 0xD8AAE8CC, 0x232DFCA2, 0xACA660F4, 0xD8203538, 0x79F45249, 0x825A9495, 0x5EE119DF},
7790 {0x3C7BDA40, 0x7EB518EF, 0xEDC4AAD9, 0x0AB20085, 0xC6AEE30A, 0xB1ABD4E8, 0xC1A7C76F, 0x8A72F366} } ,
7791 { {0x6C3B8D86, 0xECF9489B, 0x907BCE8C, 0x023CC3A3, 0xF958ECD9, 0x681918B3, 0x9B9D2C49, 0x32ABB5EE},
7792 {0xE273FBB0, 0xC9995FCA, 0x39D8F8A7, 0x11D5B259, 0x2C387800, 0x26F18978, 0xD56084DA, 0x71E8E69F} } } ,
7793 { { {0x7AB51E30, 0x39E5F37F, 0xA7723562, 0x73FB2CBD, 0x1248D03B, 0x7ABDBBD6, 0x2942F6FA, 0x4AA4565F},
7794 {0x09581407, 0x14A5C50F, 0x1FE93FD1, 0x379D5A49, 0x242E9E5B, 0x904623E4, 0x271CF4E4, 0x3982D24F} } ,
7795 { {0x218C53B4, 0xE384B085, 0x1AD48F39, 0x9B63BD09, 0xC350CFF1, 0x53E43B64, 0x5D14E1C4, 0xAD636A03},
7796 {0xBF5ACEA4, 0xB4D65712, 0x2820F716, 0x3FD8D220, 0xCC0907BD, 0x53B247D0, 0xE8E594F4, 0x2247AC28} } } ,
7797 { { {0xAD77A023, 0x4686B1C2, 0x86D921CD, 0x1A9191E1, 0xF511ACEE, 0x106EEFC6, 0x5A454C07, 0x2E4F0654},
7798 {0x1E875432, 0x538A4F6D, 0x74BAD43B, 0xDC8DA330, 0xB285B9E0, 0x247793CF, 0x2394F861, 0x0E7923FE} } ,
7799 { {0x682A73B3, 0xE1FC6AE2, 0xE8161666, 0x2452352F, 0xE530A428, 0xFCC1DF94, 0x4AC24C25, 0x8DE9CEB6},
7800 {0x1EA17C75, 0x91ECB74A, 0x5D12F931, 0xD654EF30, 0x152B89E3, 0xC0A8049A, 0x5370F722, 0x880CFF8E} } } } ;
7802 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3141 a000");
7803 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3142 a001");
7804 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3143 a010");
7805 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3144 a011");
7806 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3145 a100");
7807 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3146 a101");
7808 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3147 a110");
7809 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3148 a111");
7810 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3149 a200");
7811 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3150 a201");
7812 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3151 a210");
7813 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3152 a211");
7816 static const fp12_t var_a = { { { {0xD9ED117F, 0xF49C98B0, 0x1D62BC37, 0x6B6EC1A9, 0xD8F95DED, 0x3553815E, 0x02F55364, 0x8CCAA5DD},
7817 {0xB365A1E9, 0xEC39DC80, 0xAF7E8E1D, 0x6735AF31, 0xF826CC9F, 0xB542FFD3, 0xB7FE282D, 0x69566972} } ,
7818 { {0x93BBE8E8, 0xC1CA3311, 0x0E8E302A, 0xC8A4569A, 0xFF9FB6B9, 0x185A875F, 0x0A6031FF, 0x67A2E404},
7819 {0xA4F77378, 0x4723E443, 0x706C048C, 0xE8E15CC3, 0x34A269F5, 0x666E177F, 0xC88855CC, 0x8F3BABF0} } } ,
7820 { { {0x373213B2, 0x2D05F91B, 0x1761C315, 0x0E9B892D, 0xDE1523C9, 0x5D2C4E91, 0x9470E4C1, 0x3857513D},
7821 {0xC38BA9A0, 0x2E9A867F, 0xE8062640, 0x0F5F8817, 0x5621CEF9, 0x895047E7, 0x35DE5A3B, 0x14090E41} } ,
7822 { {0x4C4079DB, 0x381EA92F, 0xD792315E, 0x40ED16A6, 0xC47E02F7, 0xA5526723, 0x7FD9955B, 0x84CB20ED},
7823 {0xED1E18FE, 0x89594CD2, 0x2F1AB349, 0x86A49B89, 0xB2F9DEA4, 0x102B4A23, 0x9B012BC8, 0x791A3F29} } } ,
7824 { { {0x3A04EBE1, 0x7351C7FC, 0x0B5756B2, 0xFF48511E, 0xF6AFD3DD, 0xFE428E14, 0xD63D5D81, 0x7F8D8133},
7825 {0xDDBF487A, 0xCE2965E2, 0x3D8C9B31, 0x934A1965, 0xD5ACBC96, 0x2A0F0C72, 0xA3F9F03B, 0x9BFB76D5} } ,
7826 { {0x1A0E1B27, 0x01862E8E, 0x88E49F42, 0xC31DC1FF, 0x3E3FF0C0, 0xD738D19C, 0x358B9EC8, 0x910C7510},
7827 {0xF6AAE236, 0xDA9D73D5, 0x92D484AC, 0xF3A91DF6, 0x2D7E6B53, 0x825F8230, 0xD465C9BC, 0x45ADB01F} } } } ;
7828 static const fp12_t var_expected = { { { {0xD9ED117F, 0xF49C98B0, 0x1D62BC37, 0x6B6EC1A9, 0xD8F95DED, 0x3553815E, 0x02F55364, 0x8CCAA5DD},
7829 {0xB365A1E9, 0xEC39DC80, 0xAF7E8E1D, 0x6735AF31, 0xF826CC9F, 0xB542FFD3, 0xB7FE282D, 0x69566972} } ,
7830 { {0x93BBE8E8, 0xC1CA3311, 0x0E8E302A, 0xC8A4569A, 0xFF9FB6B9, 0x185A875F, 0x0A6031FF, 0x67A2E404},
7831 {0xA4F77378, 0x4723E443, 0x706C048C, 0xE8E15CC3, 0x34A269F5, 0x666E177F, 0xC88855CC, 0x8F3BABF0} } } ,
7832 { { {0xBD525C61, 0x7D37FC22, 0xDBD7CE9F, 0xF561DF76, 0xFACF6432, 0xBCC3F985, 0xBCD6F8BF, 0x04A7DDF3},
7833 {0x1175C4C8, 0x3E32267F, 0xFF4E70FC, 0x4C154AB6, 0x997015AD, 0xDE86A92F, 0x1CDD0EB9, 0x74162621} } ,
7834 { {0xD2F46455, 0x5CC9C76B, 0xB52FCA6F, 0xC5CF0052, 0x58D9797B, 0x471184A5, 0x6C987130, 0x9BA11BDB},
7835 {0xF0270850, 0x057AEFB6, 0x9F9B4C7A, 0x2562C440, 0xF34100D2, 0x07EFDCFC, 0xBECB04EE, 0xAC54965E} } } ,
7836 { { {0xAD5BF528, 0xB6E69E78, 0x2A447120, 0x41235CFF, 0xFCF1F0A1, 0x6237EBA9, 0x4603AAF0, 0x9D305231},
7837 {0x9C3D37A7, 0xB073EEC1, 0x2BD1778D, 0x1CC36C05, 0x1B647A67, 0xC83543A0, 0xC540D353, 0xB57F7724} } ,
7838 { {0xF8AE3937, 0x2887153B, 0x4F16F68D, 0x0A105B74, 0x75C74E71, 0x1599CE6E, 0x46B67CED, 0xA830BB81},
7839 {0x3A1E1176, 0x599E2830, 0x129450CD, 0xD73052DD, 0x759D2254, 0xFFFC4321, 0xC0F29F41, 0x80AD5435} } } } ;
7841 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3153 a000");
7842 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3154 a001");
7843 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3155 a010");
7844 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3156 a011");
7845 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3157 a100");
7846 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3158 a101");
7847 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3159 a110");
7848 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3160 a111");
7849 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3161 a200");
7850 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3162 a201");
7851 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3163 a210");
7852 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3164 a211");
7855 static const fp12_t var_a = { { { {0xAFEA3C89, 0x47E9FE39, 0xB12C6F52, 0x7D5E45ED, 0xAF2772AC, 0x415181FD, 0x2A58086D, 0xAE0DC562},
7856 {0x0A5003AC, 0xECA356F7, 0x3A5E3860, 0x50F77FFF, 0x84385681, 0x9A364BC8, 0xC7C48806, 0x7BCDC950} } ,
7857 { {0x4BEC36F0, 0x60D8100F, 0x3B8F263D, 0x418DC803, 0xFB7CC34A, 0xAFFBA1B3, 0x7ADD3DBA, 0x37E536C6},
7858 {0x9A8879B0, 0x5C100F32, 0x96CD5F50, 0xFFB91B09, 0x72165A7A, 0x981D1D0D, 0x92508A25, 0x3DEF0218} } } ,
7859 { { {0x26350EAF, 0x609A82DD, 0x0271EBD3, 0xBE914F5B, 0xFEE566D9, 0x90FB302D, 0xA82B6FE5, 0x4D4CFADB},
7860 {0xA0D8C299, 0xD3C737EC, 0xC2F6B2D2, 0x402EB15E, 0x64BFB262, 0x179571C6, 0xF0FBE985, 0x648BE8DE} } ,
7861 { {0x24DC26FD, 0x311A540E, 0x86E81C07, 0xB79D59F9, 0x9F10D470, 0xCB092873, 0x179D7710, 0x36B436A5},
7862 {0x9116A3F9, 0x64A884A4, 0x03BDF167, 0x6D27923F, 0x9CDF3757, 0x9FA99154, 0x16A6D07F, 0x936737F6} } } ,
7863 { { {0xE03BDAC1, 0xFCC7707F, 0xD6A19F90, 0xA0CA1019, 0xB0D0D908, 0x966E7E32, 0x205E4FCC, 0x2EA980F1},
7864 {0x8F97D04B, 0xD84B9029, 0x1152436D, 0xABF254FB, 0x7F032ED4, 0x539D7A56, 0xAB18D6AE, 0x30B783E8} } ,
7865 { {0x8D93B82F, 0xA0C103A7, 0x74CA5285, 0xD6277C8C, 0xC17E40E8, 0x21B7E48D, 0x3DF78122, 0x6F37D6D0},
7866 {0x5701F15E, 0x3896D57B, 0xBAC3DC9A, 0xB79E07A2, 0xC6AD2D7E, 0x6ABA3288, 0xFFC4C71F, 0x2526BB2F} } } } ;
7867 static const fp12_t var_expected = { { { {0xAFEA3C89, 0x47E9FE39, 0xB12C6F52, 0x7D5E45ED, 0xAF2772AC, 0x415181FD, 0x2A58086D, 0xAE0DC562},
7868 {0x0A5003AC, 0xECA356F7, 0x3A5E3860, 0x50F77FFF, 0x84385681, 0x9A364BC8, 0xC7C48806, 0x7BCDC950} } ,
7869 { {0x4BEC36F0, 0x60D8100F, 0x3B8F263D, 0x418DC803, 0xFB7CC34A, 0xAFFBA1B3, 0x7ADD3DBA, 0x37E536C6},
7870 {0x9A8879B0, 0x5C100F32, 0x96CD5F50, 0xFFB91B09, 0x72165A7A, 0x981D1D0D, 0x92508A25, 0x3DEF0218} } } ,
7871 { { {0xB972D809, 0x5DE8F782, 0x4C0A5A2E, 0x38E36BBB, 0xEC075A14, 0x994D0396, 0xA64CA465, 0x292D5ED5},
7872 {0x6D88B244, 0xD37169E6, 0xEDBB6D5E, 0xA90322B2, 0x55B8A030, 0x7B50CD8A, 0xA8C2D108, 0x171D62E9} } ,
7873 { {0x1E8998F0, 0x111C53D9, 0x910B9569, 0xAF8DFCA0, 0xF360C3B7, 0x65E02209, 0x9C8FF8C9, 0x56F35ED9},
7874 {0xD75A5BC9, 0xE2375232, 0x42E87AB8, 0x8211D575, 0x93BC7635, 0xA3087129, 0xC308D1D3, 0x6B168B24} } } ,
7875 { { {0xB9E98759, 0x45A4DAF9, 0x083CB113, 0x8221FB50, 0xF4AF89A8, 0xAB19F37E, 0x73354BD7, 0x625C997D},
7876 {0xFDA60634, 0x061770BE, 0x2E6D6313, 0x831D090D, 0x5B6FF916, 0x5C4A45AA, 0x215D9122, 0xA2B1016A} } ,
7877 { {0x0FD8E52A, 0x6611CFAA, 0xD4A38F47, 0x82E6CD8E, 0x3DE13746, 0xCC87D763, 0xC582F574, 0x936B8A7E},
7878 {0x29EC31D7, 0xEB764BFA, 0x5BB4C58D, 0x5617313C, 0x9061CD4D, 0xEE8ADC3A, 0x2F428E30, 0x180A98BD} } } } ;
7880 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3165 a000");
7881 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3166 a001");
7882 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3167 a010");
7883 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3168 a011");
7884 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3169 a100");
7885 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3170 a101");
7886 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3171 a110");
7887 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3172 a111");
7888 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3173 a200");
7889 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3174 a201");
7890 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3175 a210");
7891 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3176 a211");
7894 static const fp12_t var_a = { { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
7895 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7896 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7897 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7898 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7899 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7900 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7901 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7902 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7903 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7904 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7905 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
7906 static const fp12_t var_expected = { { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
7907 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7908 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7909 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7910 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7911 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7912 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7913 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7914 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7915 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7916 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7917 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
7919 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3177 a000");
7920 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3178 a001");
7921 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3179 a010");
7922 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3180 a011");
7923 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3181 a100");
7924 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3182 a101");
7925 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3183 a110");
7926 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3184 a111");
7927 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3185 a200");
7928 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3186 a201");
7929 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3187 a210");
7930 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3188 a211");
7933 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7934 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7935 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7936 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7937 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7938 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7939 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7940 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7941 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7942 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7943 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7944 {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D} } } } ;
7945 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7946 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7947 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7948 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7949 { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
7950 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } ,
7951 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7952 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7953 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7954 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7955 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7956 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
7958 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3189 a000");
7959 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3190 a001");
7960 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3191 a010");
7961 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3192 a011");
7962 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3193 a100");
7963 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3194 a101");
7964 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3195 a110");
7965 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3196 a111");
7966 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3197 a200");
7967 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3198 a201");
7968 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3199 a210");
7969 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3200 a211");
7972 static const fp12_t var_a = { { { {0x9DD3CB65, 0x0111764E, 0x2B8820B9, 0xECEE535F, 0xAC1D764A, 0x049FA394, 0xBFE123D7, 0x45EC613D},
7973 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7974 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7975 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7976 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7977 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7978 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7979 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
7980 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7981 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
7982 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
7983 {0xC4586936, 0xFDDD1362, 0xA8EFBE8D, 0x26235941, 0xA7C5136A, 0xF6C0B8D6, 0x803DB851, 0x74273D84} } } } ;
7984 static const fp12_t var_expected = { { { {0x402068EC, 0x48E05B8B, 0xF350C87D, 0xF4E1F6F9, 0x1CEDCC2A, 0x19A88E40, 0xFFDD6FD2, 0x4E506CE8},
7985 {0x3470B7E7, 0xF485580B, 0x1F6C54EB, 0x5DCCD27D, 0xBD776C8A, 0x89FF2386, 0x4023CC2F, 0xAEE38F33} } ,
7986 { {0xC21C0025, 0x5A7E5BEB, 0xDACF7B08, 0x98A0B123, 0x456BA39F, 0xEE8C154B, 0xC030243F, 0x92EB684D},
7987 {0x16DDBE5A, 0x853498D3, 0xDA85C52D, 0x5AA26D11, 0x4B358E95, 0xB8B09C72, 0x7FFD87FC, 0x059807C7} } } ,
7988 { { {0xD6BD556E, 0x3C543D47, 0xE734FCB0, 0x65C07617, 0x2E47C26A, 0x9F080E32, 0x8020182A, 0xB7479ADE},
7989 {0x92241A60, 0xACB672CE, 0x57A3AD27, 0x55D92EE2, 0x4CA716AA, 0x74F638DB, 0x00278034, 0xA67F8388} } ,
7990 { {0xD8F9BE7F, 0xDFB2F4BE, 0xB5554035, 0xF3431E35, 0x90A13234, 0xA73CB1BD, 0x402DAC3C, 0x98837015},
7991 {0xB6EDF2D0, 0x29A4C698, 0xD42E296C, 0xD513688E, 0x59AC74AA, 0xC584E392, 0xFFEC3FE5, 0x2CC03E3B} } } ,
7992 { { {0x06B53B33, 0xEA1C2665, 0x6A60CA90, 0xA887F859, 0x270C4F5F, 0x189DEAA2, 0x4028BC36, 0xA3B37FA4},
7993 {0x1D92F98D, 0x6F50BF38, 0x44E68FBE, 0x032A656B, 0x7241DDF5, 0xD14E8714, 0xC0264432, 0xA94B876B} } ,
7994 { {0x2DBB7CB4, 0x0A6931A6, 0xB50B8A5B, 0xB544DA23, 0x966B1D2A, 0x716138E4, 0xFFFB0FF9, 0x0B300F8E},
7995 {0x402068EC, 0x48E05B8B, 0xF350C87D, 0xF4E1F6F9, 0x1CEDCC2A, 0x19A88E40, 0xFFDD6FD2, 0x4E506CE8} } } } ;
7997 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3201 a000");
7998 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3202 a001");
7999 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3203 a010");
8000 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3204 a011");
8001 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3205 a100");
8002 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3206 a101");
8003 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3207 a110");
8004 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3208 a111");
8005 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3209 a200");
8006 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3210 a201");
8007 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3211 a210");
8008 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3212 a211");
8011 static const fp12_t var_a = { { { {0x859DFB46, 0x24B6C5C5, 0x1B54414A, 0x57D4A4CE, 0x6856BDCF, 0x7BE621EC, 0x7D5FE5E1, 0x7C851D04},
8012 {0x88487DE9, 0x71C45FFF, 0xDE5D934B, 0x090AC736, 0x4897E0FF, 0x465E28A1, 0xC71D4E3B, 0x0660BD97} } ,
8013 { {0x9ACB12DE, 0x05C5B59C, 0x6F73B87E, 0x5CBFCBF9, 0x6A87FFA8, 0x85AC4376, 0xF57D199E, 0x980048CE},
8014 {0x16AE4E5F, 0x2E433793, 0x42C78852, 0x97858946, 0x9AFD48F3, 0x543082B7, 0x1BE10E51, 0x66B57BA5} } } ,
8015 { { {0xA5F9DCB0, 0xC1AEE420, 0x646FE217, 0xBBB00AFF, 0x9FD44CC0, 0xD8A68E12, 0xEC235C2A, 0xA7DEFE7B},
8016 {0x8BE51CA4, 0x58B2B093, 0x847201F3, 0x9587B3A1, 0x05EB72A9, 0x0BE5CAC0, 0x792722F1, 0x2094C4A2} } ,
8017 { {0xBDBCC8E6, 0x59BFBD11, 0x8FB8C775, 0x7CB6025C, 0xB92E0234, 0xBD1A390C, 0x3268EBA6, 0x2538787B},
8018 {0x5FD24D29, 0xD49D96E1, 0xBD0A21C9, 0x43DE9B29, 0x5B7464B0, 0xD585DA41, 0x8E778AA5, 0x7EC9A715} } } ,
8019 { { {0x5AAA2610, 0x0AF6A046, 0xE1805023, 0xDE745574, 0x37F3ECE7, 0x0FFF2AFF, 0xBC118B0F, 0x1E269EA8},
8020 {0x6C534264, 0x1CFF25F1, 0x491CB87E, 0x9C8CAE07, 0xB3F14B66, 0xF929E609, 0xF60F0B8D, 0x353F6867} } ,
8021 { {0x2A288125, 0xD2B173F4, 0xB47D2FE1, 0xD238B49A, 0x51D9AFC2, 0x0BF55E9C, 0x782A77BD, 0x9CF66683},
8022 {0x6CFB91A2, 0x74AF4907, 0xAD52126F, 0x0A39962A, 0xD3121E4F, 0xDD55AAD0, 0x5123A85D, 0x751F4FC1} } } } ;
8023 static const fp12_t var_expected = { { { {0x24A13634, 0x3425A75B, 0x62E2B9CA, 0x4C7F8A2A, 0x52F2D475, 0x9B8601C9, 0x1D56F16E, 0x1525AE57},
8024 {0xE3A28100, 0xBF201B3D, 0x10CDC0F9, 0x673E4DFB, 0x109739BA, 0xB1E0AE1B, 0x17B95586, 0x4D875575} } ,
8025 { {0x22DCD6A7, 0x11CB4FAC, 0x66D9E3DD, 0x6B3BB05B, 0xC2849909, 0x7A1342F3, 0xA330EDC6, 0x5D6BC7AF},
8026 {0x146447FF, 0x15C6579C, 0xD08EB32E, 0x76CF3419, 0x6DB61656, 0x62EA1347, 0x017F854B, 0x713C6011} } } ,
8027 { { {0x6C05D250, 0x35A7C5BE, 0xBB78E315, 0x0F850B39, 0x2319A86B, 0x4029E721, 0x52AFF8FB, 0x1D2F8515},
8028 {0x2376EC78, 0xFA28D9CD, 0x2F44EF4D, 0x677A4998, 0x209890D2, 0x56DF505F, 0x1BE6ACB4, 0x3ADE999B} } ,
8029 { {0x38392551, 0x921F9C22, 0x88D00769, 0x0E28324B, 0x4724DD6B, 0x8AFA9D2E, 0xBF13E8A1, 0x5306998C},
8030 {0x4C204FE9, 0x4CF5737F, 0x35460E5B, 0x4140F4E2, 0x6670FC9B, 0x4894C783, 0x7B86A9F6, 0x1EA60E16} } } ,
8031 { { {0xC940A545, 0x7FC83749, 0x6CE91129, 0xE0ED0A98, 0x1DE2CD1A, 0x209E4BAA, 0x0BF10594, 0x8B01EF00},
8032 {0xAC7BE24B, 0x4A4DC9C1, 0x39EB448B, 0x3C3A82B8, 0x733F59A0, 0xB8095E76, 0x5E699AFC, 0x00C3E725} } ,
8033 { {0xAD9F8568, 0x11675133, 0x2A2DE112, 0xD974497D, 0x6A056B10, 0x45CF4CD0, 0x3D59D4C6, 0x84A47D40},
8034 {0x80D9D694, 0xE16027DC, 0xF5F81F4A, 0x34246B52, 0xA2AC1179, 0xBFA9BE06, 0x9106D23B, 0x357D2804} } } } ;
8036 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3213 a000");
8037 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3214 a001");
8038 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3215 a010");
8039 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3216 a011");
8040 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3217 a100");
8041 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3218 a101");
8042 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3219 a110");
8043 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3220 a111");
8044 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3221 a200");
8045 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3222 a201");
8046 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3223 a210");
8047 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3224 a211");
8050 static const fp12_t var_a = { { { {0x4E621496, 0x1CCEC416, 0x6C4DCB8A, 0x75DC4DD3, 0xA9DF346B, 0x47B08D1E, 0x4846F482, 0x0FE83762},
8051 {0x02602568, 0x1C5E7559, 0xBEE601F1, 0x32F49573, 0x34A7AF70, 0xDF4258AE, 0x6D263BD6, 0x50CBD1E3} } ,
8052 { {0x2A8910EB, 0xAFF0B0A6, 0x397912AA, 0x938EFEFA, 0x6A8F777A, 0xE1A7A487, 0x04B835B4, 0x7536440C},
8053 {0xD9874BB4, 0xE08717E4, 0x88569DE4, 0x8ED7A338, 0xB1D6039B, 0xEEFE11E1, 0x8F1C80E2, 0xAAA0B6F3} } } ,
8054 { { {0x0CE5EE6E, 0x48DAE9DB, 0x20A00C9D, 0xCF4AD9AE, 0x99EF0677, 0xF8ADC7B4, 0xE412CA39, 0x27A6D679},
8055 {0x0C0AF83F, 0xED5D4966, 0xF82A944B, 0xF4A8302C, 0xF33C64A5, 0x59FB1367, 0x21839982, 0x5C9E1213} } ,
8056 { {0xE0667026, 0xB68F560F, 0x74F062BF, 0x5F8323A7, 0x73F49B40, 0x7AED0B9C, 0xE4A61171, 0x7A2D96B2},
8057 {0xF3A2BA4C, 0x714BAC44, 0xD85B9AA2, 0x8C7FE70E, 0x55F15109, 0x3BF7A1C6, 0xC9342AD5, 0x28466805} } } ,
8058 { { {0xA3E415B3, 0xA5C45A99, 0xC44DDA98, 0x1AF0BA1D, 0x04A778E8, 0xA1A3BE82, 0x1AD5106B, 0x25B19656},
8059 {0xB04FA118, 0x069C868D, 0x1ED73E8C, 0xA6A04CE5, 0x215940FD, 0xF006A741, 0x1C77B039, 0x08A98F75} } ,
8060 { {0x496D2842, 0x7929C256, 0x9B3F4ADF, 0x414EDD07, 0x2430C55A, 0xB79683C6, 0x840ADFF6, 0x84945432},
8061 {0x78F7EC03, 0x16E1E2D1, 0x3646C4F5, 0xA8BD12C0, 0x614EDD9E, 0xCDF52BF7, 0xC6B1433D, 0x5A05CD8C} } } } ;
8062 static const fp12_t var_expected = { { { {0x38AA899A, 0x1444926D, 0x1C49A68B, 0xE834444C, 0xB76F97B7, 0x8C33534F, 0x07779E73, 0x06FB1C9E},
8063 {0x9973436F, 0xCAE5CB79, 0x83426DB2, 0x514246F5, 0x011809C9, 0x72823A9C, 0xFE9CE796, 0x70B45BBF} } ,
8064 { {0xCE992B08, 0x8533EE43, 0x42014425, 0x82E9FFAF, 0x42521C19, 0xF68FA42A, 0x849FC240, 0x46E49803},
8065 {0xF8E17ACD, 0xA98ACF6B, 0xBF54A146, 0x191AD26E, 0x42B8786D, 0x97ACC676, 0xEE53251B, 0x83749647} } } ,
8066 { { {0xEFA670F9, 0x550C9B9B, 0x2C2B3734, 0xF074BA6D, 0xB90167DE, 0x9136FA3D, 0x141AFE33, 0x7E36FDB5},
8067 {0xD2F7626A, 0xAFA5D4E4, 0x30E510E6, 0x26DBBB6C, 0x432D5796, 0x299131F0, 0xC16A88E5, 0x15F66F77} } ,
8068 { {0xEC55D3EC, 0xFBD5BF69, 0xEDB532F3, 0xC38C46D9, 0xD0C89907, 0xB800EADE, 0xE3D4ECFC, 0x3F814164},
8069 {0x1AE8F379, 0xDE20B344, 0xC2140DD6, 0xF7DF6834, 0xA8FD013C, 0x71C825EA, 0x1DDDD8C0, 0x2D7D996F} } } ,
8070 { { {0x8041F7E2, 0x091F83B1, 0xC56B2D7C, 0x8C391D20, 0x64978DAC, 0xCED70FFC, 0xE708CEFF, 0x2E9112B7},
8071 {0xC198519E, 0x51CAAA42, 0xB24A1D83, 0x2A9712F7, 0x6ED724BF, 0x56264A34, 0x12EBD9C9, 0x0815700E} } ,
8072 { {0x80C5CA94, 0x49AAE93F, 0xDB4FED1D, 0xDA895CFD, 0x15A6A595, 0x8A3069E4, 0x73A674DB, 0x780D78DE},
8073 {0x973717B0, 0xB000F973, 0x39B0B4BD, 0x537538FB, 0xAE7FAA23, 0x483B1297, 0xD453BD48, 0x0B7BC861} } } } ;
8075 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3225 a000");
8076 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3226 a001");
8077 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3227 a010");
8078 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3228 a011");
8079 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3229 a100");
8080 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3230 a101");
8081 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3231 a110");
8082 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3232 a111");
8083 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3233 a200");
8084 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3234 a201");
8085 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3235 a210");
8086 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3236 a211");
8089 static const fp12_t var_a = { { { {0xFCD79F61, 0x9C2E069A, 0x52AFDEE5, 0xAB75B49F, 0x85CE1151, 0xA1F7C528, 0x3EA44187, 0x4C2DC81B},
8090 {0xBB58F1E6, 0x77D54489, 0x1427E685, 0xA8CADB22, 0x2A8DAA12, 0x42E3FAC1, 0xAF6C6336, 0x56966406} } ,
8091 { {0x1E0FBE20, 0xBC34D2A4, 0xBE28CE6B, 0x51FF8284, 0x33778436, 0x67AFC2B3, 0xDE37A7B1, 0xB6030E82},
8092 {0xA15C3E8D, 0xEC4CED69, 0x3ADF68AC, 0xBD70FF2B, 0xC02298AF, 0x17BEA11A, 0x6D61EEB6, 0xB429AA32} } } ,
8093 { { {0x6EBB04C2, 0x95B2DF18, 0x0903ADDC, 0xC848AFE5, 0x50C9520F, 0x3EFD8EDF, 0x42C0C162, 0x3DC944E4},
8094 {0xDCCA2255, 0xF5DCC7BE, 0xF9DF2431, 0x48B6D262, 0x5FF3DC86, 0x37043CED, 0x5FC107C4, 0x798A70F8} } ,
8095 { {0x2CD164A3, 0xDD1D6F73, 0x2B9244AE, 0xF1A9D737, 0xD636961C, 0x871717F9, 0x88C06494, 0x30AE3543},
8096 {0x178DF7DA, 0x56A6E5CA, 0x5E3B1BEF, 0x9276AB34, 0x1E5BFE9E, 0x7B28646F, 0x89D3DC37, 0x7959CE03} } } ,
8097 { { {0xB014C354, 0x5E081AA9, 0x445519AB, 0xFC74951A, 0x1BDCE65A, 0xF2364FCE, 0x7AE9707C, 0xAE6DB428},
8098 {0x8223E966, 0x2597D0D1, 0x708ED792, 0xA1EE27F7, 0x685F66C1, 0x661E889E, 0x306E167A, 0x75CD0EDE} } ,
8099 { {0x783D8406, 0xAFE83D88, 0xA1475AEA, 0xFBF0E92F, 0x5A408CE4, 0xE46C905C, 0x97DA8871, 0x9F6F6249},
8100 {0xB9306031, 0x17206141, 0x795F4242, 0xC4E83FDB, 0x10BC20CB, 0x72D85617, 0x700F7C56, 0xB0DCF25C} } } } ;
8101 static const fp12_t var_expected = { { { {0x8080ADA5, 0xD08328CF, 0x9A9D4D1C, 0x31DBD024, 0xB43631DE, 0xB37E2AE0, 0x13969069, 0x1505C4E3},
8102 {0xB5BC4ED0, 0x46649707, 0x08C1D901, 0x8D44B115, 0x29083667, 0xB2C2F998, 0x2459BF4E, 0x60B53032} } ,
8103 { {0x78DEE06D, 0xB7F5065F, 0x248F0C4D, 0xF483D452, 0x3B2609F7, 0x9AB8DFA8, 0x7F6AAA86, 0xB955C9DC},
8104 {0x1E9E4494, 0x3095CB4E, 0x8C212320, 0x838A2579, 0xB9086758, 0xA659C64D, 0x9ED267AA, 0x17D672FA} } } ,
8105 { { {0x57A3373C, 0xD5949CA6, 0x8B2EDFCC, 0x55FBED70, 0xC52699A4, 0xDF6E640E, 0x549EFCCB, 0xB9466949},
8106 {0x50C0F262, 0x37D28D65, 0x4A91C2E4, 0xB34F231B, 0x42F79581, 0x10B119B5, 0x0AFA7BCC, 0x0159D448} } ,
8107 { {0x6B93B485, 0x837963C3, 0x85D03284, 0xEA3EAC1C, 0x4B33B65E, 0xF51285DF, 0x333E258B, 0x69E4852F},
8108 {0x7F0C2A07, 0xB8D300BF, 0x7D0FC9D7, 0x2C5A12AE, 0xACDD8E8A, 0xAB4271E5, 0x4E413DC5, 0x17F5050E} } } ,
8109 { { {0x0AEAD5F6, 0x82C678E3, 0xA897AC61, 0xD94B719F, 0x169DB513, 0x627D953B, 0x95152B74, 0x5E844A4E},
8110 {0xB38C38A4, 0x14169D9F, 0xC193D8DC, 0xB4EBDBDF, 0x0E6D233F, 0x89DA988A, 0x5A22CBE6, 0x4A13AD91} } ,
8111 { {0x551EAAC9, 0x0DC3674B, 0x0182F3F2, 0x752F73B0, 0xF8CD481A, 0x3F5F486E, 0xC2E5BD4C, 0x2C1C8E1C},
8112 {0x1986F136, 0x45D205C1, 0x0FDD765D, 0x42B4D04E, 0xD697E26C, 0xE4F5AC2E, 0x662DC0B1, 0x7700FFD3} } } } ;
8114 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3237 a000");
8115 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3238 a001");
8116 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3239 a010");
8117 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3240 a011");
8118 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3241 a100");
8119 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3242 a101");
8120 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3243 a110");
8121 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3244 a111");
8122 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3245 a200");
8123 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3246 a201");
8124 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3247 a210");
8125 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3248 a211");
8128 static const fp12_t var_a = { { { {0x9A4560F3, 0x9F8D195A, 0x37797112, 0xDD5B8CDD, 0x2E0C83FB, 0x2A6C3BC5, 0x9F07A991, 0x4F1C95E3},
8129 {0xF23C11F5, 0xA79D648C, 0xC7C1FB18, 0x05093E79, 0x7170D416, 0x1E22F3D8, 0x44A93194, 0x6D2B565A} } ,
8130 { {0x793BDA79, 0x921ED32B, 0xCA0576DB, 0x1CD9A571, 0x3A62B28F, 0x596C319E, 0xF56B0417, 0x79A2D49F},
8131 {0x1551C5FB, 0x7680BFE0, 0x9D3766D2, 0x7A4674F4, 0xD7638559, 0x908575A4, 0x4089F15F, 0x2E22BB85} } } ,
8132 { { {0xD597F642, 0x0BBB2F00, 0x49B0300E, 0xA73364E9, 0x41708742, 0xF049C022, 0x7676C25A, 0x5A29664C},
8133 {0x020FADA2, 0xB6621B67, 0xB6BF50E2, 0x89A62FE7, 0x4C1B0F5A, 0x576A68D2, 0x352CB4E6, 0xB3C2334D} } ,
8134 { {0x5B9A0623, 0xA191C4E8, 0x3316AE28, 0xDFBB26A6, 0xDCD68221, 0xBFE3FA58, 0x3D9928FB, 0x653DE502},
8135 {0x428B1E7C, 0x1A8CAFA1, 0x9C2EC912, 0x5F177A30, 0x5AA1E025, 0x923E7B0F, 0xE5F14087, 0x3CB59585} } } ,
8136 { { {0xAF5D8A30, 0xEEE49DE3, 0xE48166B2, 0x8637C223, 0x95127E4B, 0x70FE0FA0, 0x183D2DEC, 0xB442DF81},
8137 {0xF8EE359A, 0x1C837DBA, 0x33F7622A, 0xF14B7D6A, 0x92930A2A, 0xE577AA92, 0xD5459FB6, 0x8A405C91} } ,
8138 { {0x196FFB02, 0xFE524C71, 0x5C2B6007, 0xA088B976, 0x94AC4F1D, 0x0598B515, 0xBCA9E846, 0x6978C700},
8139 {0x943B28C6, 0xCCE3B407, 0x655B4195, 0x681DB36B, 0xD93A5088, 0x95D3E1B3, 0xFBD33DEB, 0x7074FB07} } } } ;
8140 static const fp12_t var_expected = { { { {0x99AF1BCC, 0x685E90B2, 0x4FF2B1DC, 0xECEC83D3, 0x97302313, 0xA65C701D, 0x6C321D47, 0xB9014581},
8141 {0x78B8D956, 0xDF2DB049, 0xD239092D, 0x6AC7BB95, 0xBA3DF5B5, 0x01380B65, 0x04770E8A, 0x462FCD31} } ,
8142 { {0x80AD31EB, 0x0B01B555, 0xFA828EC0, 0xB948C408, 0x1BB99BC7, 0x282FDFF8, 0xF02D32E3, 0x97F103F4},
8143 {0x68344AD0, 0x06BA5D7F, 0x8C1B0F67, 0xD33CAB9C, 0x42DF7712, 0x3ABD2ED0, 0xDDFC8780, 0x7686ECCD} } } ,
8144 { { {0x73E3ED73, 0xF4C3AEA6, 0xF18F257D, 0x9FA513F0, 0x0816F0CF, 0xDD111E1B, 0x4C2C112F, 0x6025EF07},
8145 {0x1666A049, 0x8AA60EDA, 0x3B3B6ADB, 0xFACF18AF, 0x2B0A7C5B, 0x8BC8E362, 0xC0558477, 0x09DB7687} } ,
8146 { {0xDCE692B6, 0x22883E5F, 0x4C10ABD8, 0x43C406DC, 0x487B38B0, 0xA669A936, 0x84AB27F7, 0x85529125},
8147 {0x8B739EEE, 0xF42310D7, 0x386F15E1, 0xF00D2821, 0xD8FB02A7, 0xFA4C5052, 0x114FD44B, 0x6686D484} } } ,
8148 { { {0x3C666B2F, 0xBF27017D, 0x1F1AE043, 0x44E3AAC8, 0xA59508F4, 0xCD9AB064, 0xABDAB66C, 0x280A7CD3},
8149 {0x738034AE, 0x632C8A21, 0xECD8DC2F, 0x6AF156FE, 0xFF51129D, 0xF29FE610, 0x1111515B, 0x1DAA4CFB} } ,
8150 { {0x5A118856, 0x7BDE288D, 0x6680168C, 0x1A56D304, 0x68665FE4, 0x121D2099, 0x53243DE3, 0x938ADDFC},
8151 {0x234C30AB, 0x452BDB2B, 0x7025430C, 0x77F03623, 0xE04450FE, 0x52236069, 0xD82C096C, 0x2091E007} } } } ;
8153 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3249 a000");
8154 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3250 a001");
8155 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3251 a010");
8156 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3252 a011");
8157 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3253 a100");
8158 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3254 a101");
8159 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3255 a110");
8160 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3256 a111");
8161 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3257 a200");
8162 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3258 a201");
8163 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3259 a210");
8164 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3260 a211");
8167 static const fp12_t var_a = { { { {0xAC615350, 0xC0957DCA, 0xA6E51F84, 0x20FA6016, 0xC5AA5EC5, 0x214136B3, 0x1466F80D, 0x81F8A9BC},
8168 {0x6EF0F1A8, 0x85506A21, 0x51307766, 0x7AD5119C, 0x643B1985, 0x40532B99, 0x814466C7, 0x28CE63FD} } ,
8169 { {0xC729CC11, 0x83C0A115, 0x10F5C581, 0x2EAF4A2C, 0x29AEF2C0, 0xF6DB8230, 0x0212E305, 0x599936AF},
8170 {0xF8912DD8, 0x9657D7C6, 0x211DD7EC, 0xD95110DF, 0xC8935D32, 0x3C8D49F7, 0x2A03ADBC, 0x8F29D447} } } ,
8171 { { {0xE843F46B, 0x31DA224D, 0x05C236D4, 0x0CB9ECEC, 0xF820FA3E, 0x52C90C7E, 0x240D111A, 0x0B845714},
8172 {0x7E2E7A01, 0x3F461EB5, 0xFA6D1D71, 0xFB7985DB, 0x4BF980B7, 0x6DB2FE0C, 0xC8DAB75C, 0x25F09EE9} } ,
8173 { {0xA09AA291, 0x9E66CC04, 0x10A6B9B8, 0xCECF3DD6, 0xA652844E, 0x27786217, 0x7485AFBB, 0x45955E5B},
8174 {0xB7ADE26C, 0x3BE1D7B4, 0xCA265599, 0x412BF38E, 0x8C728D40, 0x144BA8E0, 0x4C24093C, 0x4268F815} } } ,
8175 { { {0x877D4C03, 0xFD918A18, 0xDC4405F6, 0x1FCB13A1, 0x4BCC101F, 0xB1D7CDDB, 0xF9D004E2, 0x6E60662C},
8176 {0x6A56DCDA, 0xA767506E, 0x40DF8B2F, 0x7A93B41C, 0xE051ADBD, 0xB29741E4, 0xDC761662, 0x8CC53D03} } ,
8177 { {0xD03D188B, 0x2B86A716, 0x4EB6E138, 0xB3FAC017, 0x738069B7, 0xC67F57AC, 0xA1F94E7D, 0x05876BC6},
8178 {0x19D56087, 0x2756EA64, 0xBC9F3DBC, 0x101E2E8E, 0x4BBF1C30, 0x5FC90605, 0x497AAE4C, 0x58CF830B} } } } ;
8179 static const fp12_t var_expected = { { { {0x51BAA8F2, 0x11A856E3, 0xED4AB75F, 0x08A577A1, 0x46C64F58, 0x493EE5AE, 0x91E4F1BA, 0x5B0BF092},
8180 {0xBDCE6A67, 0x4ADF24ED, 0xF01431CF, 0xDB63E705, 0x19B436BB, 0xAF88EB83, 0x31F5DBCF, 0xA14B915A} } ,
8181 { {0x2285A59B, 0x7B83FEBF, 0x2ECBDB5C, 0xD6AEA2C7, 0xB614D3C8, 0xBFBB8210, 0xA8F0D62F, 0x0F431569},
8182 {0xDEB8D1CD, 0xBE7E0531, 0xF8997256, 0x1401723E, 0x037717ED, 0x9127E333, 0x632CE7AC, 0xB015D671} } } ,
8183 { { {0xDC4255C3, 0xE7413954, 0xE3AAD541, 0xDDA47EA1, 0x37F17296, 0x8ECE0CB9, 0x13DA4BFF, 0x940EF863},
8184 {0x0A3762A0, 0x22453F13, 0x9165923A, 0x1CA1162F, 0x8F08DC3D, 0xA35FC304, 0xB6AFFD82, 0xB0E5785F} } ,
8185 { {0x6F7B5DB6, 0x7D8C984C, 0x22FDF991, 0xB9B44669, 0x93125395, 0x2801047B, 0x8FC942E1, 0xA2960D0C},
8186 {0x3DA24847, 0x2D46880C, 0xD3F72A1F, 0xFC58693F, 0x31346C57, 0x06D180D0, 0xE42F1E74, 0xA1967D67} } } ,
8187 { { {0x81870C36, 0xE6EA7715, 0xC84C38FA, 0xC906D270, 0xB0971D84, 0xA7D94BEC, 0x3A8F557D, 0x1337B8FC},
8188 {0xD1E19703, 0x1D505A47, 0x20BFF3DB, 0xB4E959FA, 0x4CB7C7F9, 0x2878D986, 0x26FEEF3F, 0x2F5346EC} } ,
8189 { {0x4E267C78, 0x0ABF3A5C, 0xACA96E92, 0x8E17A010, 0x18D89E26, 0xEB15128B, 0x0DCBA617, 0x8FD26041},
8190 {0x05D50D04, 0x39DE15C1, 0xB80F1B03, 0x6B867BF5, 0x51AA98CA, 0xAC3BD9EF, 0x650D2B44, 0x3C41D66C} } } } ;
8192 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3261 a000");
8193 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3262 a001");
8194 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3263 a010");
8195 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3264 a011");
8196 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3265 a100");
8197 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3266 a101");
8198 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3267 a110");
8199 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3268 a111");
8200 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3269 a200");
8201 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3270 a201");
8202 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3271 a210");
8203 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3272 a211");
8206 static const fp12_t var_a = { { { {0x23047C00, 0xC7E808FE, 0xF61ADDAE, 0xB2807F7F, 0x5159C084, 0xFBE9647E, 0xD68D5C4F, 0x437596D2},
8207 {0xAFC8FEFD, 0x0E0AB7E9, 0x995023E8, 0xB71B4E0A, 0x57308E71, 0x8739188F, 0x198E41BA, 0x8F4CDFE1} } ,
8208 { {0x2309AEC0, 0x4AD8B6EB, 0x5EAE2C0D, 0xF17B0B26, 0xD1F33604, 0xE9DBFC4C, 0x353EEB86, 0x4A04B03E},
8209 {0xB55042A5, 0xD3151956, 0x2F5856F9, 0x1A34EE54, 0xCE058BEB, 0x046C037B, 0x27376C9C, 0x4D8C6D08} } } ,
8210 { { {0x85214888, 0x8A8898E2, 0x932ED6D4, 0x9CCFAF75, 0x75790FD5, 0x2866BF2E, 0xE048C31F, 0x427D6EAC},
8211 {0xC4183254, 0x95D12B6A, 0x352F32F1, 0x31A2C264, 0x585FF949, 0xC98692F9, 0xFBD3A026, 0x94E205BB} } ,
8212 { {0x087D08F0, 0xA915CB3A, 0x3B4ADB7A, 0xFBB1877C, 0x4114959A, 0xF045AFF1, 0xAE2C5127, 0x728B3017},
8213 {0x0ACBA34C, 0x735821A0, 0xBE0D7514, 0xA21B619F, 0xE81DCB82, 0x2431E83F, 0x02BF9684, 0x7CEDD22C} } } ,
8214 { { {0x3DEF37F4, 0x7551156E, 0x6B153158, 0xE3790C8E, 0x8916EBE3, 0x78919D52, 0xA3A5C12B, 0x199824C3},
8215 {0x2B0C5ABA, 0x9F41C26E, 0xAC15A904, 0xCD322AE1, 0xDD549129, 0x11F77E48, 0xF1C5449B, 0x8932DA9E} } ,
8216 { {0x9B92271D, 0xC43AAD19, 0xB91C0C5E, 0x76A5AA04, 0x613C6FDC, 0x94B4CB30, 0x65DD859F, 0x1880BC34},
8217 {0x5CB1BDD4, 0x7148191D, 0x1DC5B777, 0xBA7AEDFF, 0x292EAAFF, 0x23059CB0, 0xDC7BC020, 0x59663A3B} } } } ;
8218 static const fp12_t var_expected = { { { {0x83A6D6BA, 0x62BEC361, 0x4E643FEB, 0x3431053D, 0xF9B7FA0D, 0x71790FAF, 0x635D38CE, 0x4126E39E},
8219 {0xDD2D0DB5, 0x5E60F7E0, 0xEA0B25EC, 0x54452CCE, 0x2251BAE6, 0x1B2AA125, 0xF3D6C346, 0x0B61BA9F} } ,
8220 { {0x3E1955DE, 0x0A40C75F, 0x38A6D6CE, 0x1AB6C00F, 0xD010C18C, 0x1F8AAB5A, 0x0F27BD8F, 0x43159D8F},
8221 {0xE9DA2F4F, 0x15C07C49, 0xE3365B7F, 0xACDFA4A0, 0x13D23EC1, 0x285EEF73, 0xF1EBEB7E, 0x2DF0F647} } } ,
8222 { { {0x418C49A2, 0x139C3EBC, 0xEB4D0983, 0xD82FD616, 0x1A5BE887, 0x4CD10024, 0x791891EC, 0x86B2E670},
8223 {0x55740E7E, 0x0E946284, 0x94A5BF77, 0xBB3038CA, 0x76B635C3, 0xF5DFAD5F, 0xC92650C1, 0xB5CE87D3} } ,
8224 { {0xF96986EF, 0xB1FCC646, 0x9B245A84, 0x71D5BEED, 0x54C030C2, 0x9E6EFD2C, 0xFA4649F2, 0xA65F3D25},
8225 {0xAD3E83A0, 0xC959BA9C, 0x06352536, 0x866BA785, 0x9A682766, 0xEBAEEB26, 0x8CFF719B, 0x48053871} } } ,
8226 { { {0xAE7CD4EC, 0xBBF063F8, 0x83734422, 0xE091E78F, 0xF9539A67, 0x78E04A35, 0xE4F4D992, 0x0AA980D9},
8227 {0xBBE113E2, 0x18E64CD2, 0xF7F22B54, 0x9369B6D5, 0xF90A1EFE, 0xDEEE0E7C, 0x64D59DC8, 0x9A300EC0} } ,
8228 { {0x8EC82E97, 0x0E5EADAE, 0x2F2D37A7, 0xEDA6FBB8, 0xA84AE739, 0x034457B5, 0xF9AD11D2, 0x603B0268},
8229 {0xBFD46163, 0x0667649B, 0xCACCB0BA, 0x1D78F263, 0xE09D178F, 0x7883272E, 0xD5BB683D, 0x7E12680C} } } } ;
8231 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3273 a000");
8232 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3274 a001");
8233 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3275 a010");
8234 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3276 a011");
8235 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3277 a100");
8236 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3278 a101");
8237 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3279 a110");
8238 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3280 a111");
8239 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3281 a200");
8240 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3282 a201");
8241 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3283 a210");
8242 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3284 a211");
8245 static const fp12_t var_a = { { { {0x2C1D0A19, 0x00BD13F6, 0xBF56DCBE, 0x7905D72E, 0x7245D0FD, 0x78F87141, 0x97713B94, 0xABB0EF43},
8246 {0xA73D456D, 0x9E716DCD, 0x21EEE39C, 0x56DB366B, 0x5F04CF1E, 0xDDAAF39C, 0xB03945C2, 0x5A97E151} } ,
8247 { {0x5087C875, 0x32BD872A, 0xA3D898B6, 0xE3AC3E43, 0x7251C919, 0x299FD06A, 0xD5B7A7CF, 0x2C9DCDFA},
8248 {0x199AB112, 0x8E3EF4CB, 0x3038EC51, 0x01B2B3D2, 0x22FC3694, 0xD94BF1AB, 0x03C565BF, 0x2D355821} } } ,
8249 { { {0x7B3305CA, 0x625A19B2, 0xB405D6E5, 0xCBDBE879, 0x4885659E, 0xA81584A2, 0xD80BB8DF, 0x21B04A08},
8250 {0x0A6018DD, 0x500B5D99, 0xA071254B, 0xC686E660, 0xBC9B67EC, 0x2375E793, 0x3D7B90B9, 0x97547799} } ,
8251 { {0xD1FB0418, 0xE1E5762C, 0x689B5DBF, 0xF9628700, 0x16ABCC40, 0x980FE540, 0xDA754A9D, 0x35053C28},
8252 {0x859CD5BC, 0xC6FF784E, 0x3DB060AB, 0x14A3D84E, 0xB8C5600B, 0xFE2A47A1, 0x39D72F75, 0x19D2B280} } } ,
8253 { { {0x4B770B7F, 0xBAC5AF59, 0xC771A635, 0x0AD84708, 0x93CE8002, 0xD216563A, 0xDCE5D769, 0x98EE7725},
8254 {0x319689EA, 0x24F60B73, 0xB4C51D26, 0x3F61C6DE, 0x6538A84A, 0x6551E87F, 0x690861A3, 0x534BE8C6} } ,
8255 { {0x7ADAC210, 0xABB88ADA, 0xD9075271, 0x54F534AE, 0x869A4770, 0x3849408D, 0xEB76B76B, 0xA0A462D3},
8256 {0xBA798124, 0x04C74632, 0xDC3250D1, 0xF7DCA8D9, 0xE086D01D, 0xAC4710CC, 0xB150C0B8, 0x9CAE1B6E} } } } ;
8257 static const fp12_t var_expected = { { { {0xB884D5A6, 0x67065D0D, 0x987C2AFC, 0x4F1DEF67, 0x9DF758FD, 0xF959B17A, 0x6FF096C2, 0x2BBFBBE7},
8258 {0x5D7FAF2F, 0x42D5BE98, 0x55DF04A2, 0x619D8977, 0x80C91DDC, 0x74DF8040, 0x428872EC, 0x95B9A7A4} } ,
8259 { {0xB5F86EB6, 0x5625BA27, 0xBC758FB9, 0xE8E76CE3, 0xF4949059, 0x405A5EBF, 0x7AD85C79, 0x7D233160},
8260 {0x5644C69A, 0x907DA19D, 0x80068EC3, 0x31D67F36, 0x0D002CCA, 0xE95C357F, 0xD6FA71FB, 0x7EB00450} } } ,
8261 { { {0x4D5226CD, 0xBDA42B19, 0x318E4C33, 0x0A7E48C3, 0xC407389A, 0xCC778FF5, 0xEA90CD45, 0x185493D7},
8262 {0x07978293, 0x5DDCDB71, 0x16BE1CEA, 0x6E331D49, 0x26D82583, 0x69FA8897, 0x8EBA6B00, 0x1069261D} } ,
8263 { {0xB9F56AAD, 0x57A19D6F, 0x64019212, 0xF3389AD8, 0xB43386CA, 0x0D968EED, 0x376E90D5, 0xA49B5006},
8264 {0x7AE03CAE, 0x8C3CA117, 0x3012D022, 0xACC13EAC, 0x3B48B23F, 0xE2053A30, 0x0A44B290, 0xB35E2CE1} } } ,
8265 { { {0xCF96A353, 0x41AEF37C, 0x3224FDD3, 0x2BA13772, 0xCE2353B0, 0x94FDEA2B, 0x799AC470, 0x4B544379},
8266 {0xEC95D158, 0x809A3F8E, 0x0B975C50, 0xCC628449, 0x6EF8ED92, 0xC38E6539, 0x24E6630F, 0x9DF03823} } ,
8267 { {0x3C2AADE6, 0x71DC470C, 0x2359F3A6, 0x28F3D4D9, 0xA6EFB1FC, 0xE013FF9D, 0x5FD12B0A, 0x9FFFFF6D},
8268 {0xB699324E, 0x6B536D6E, 0x3873AF81, 0xAA5C82FF, 0xE8C4A87A, 0x8F2B173A, 0x25F11771, 0x3337EE31} } } } ;
8270 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3285 a000");
8271 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3286 a001");
8272 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3287 a010");
8273 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3288 a011");
8274 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3289 a100");
8275 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3290 a101");
8276 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3291 a110");
8277 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3292 a111");
8278 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3293 a200");
8279 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3294 a201");
8280 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3295 a210");
8281 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3296 a211");
8284 static const fp12_t var_a = { { { {0xD36FCAB9, 0xBD6690BD, 0x3900E032, 0x062571A2, 0xA532BE24, 0x27A2DF28, 0xDDB6631D, 0x7A76D6B9},
8285 {0x83B04BC7, 0xD8DE8D74, 0x97C27341, 0x995BBBA9, 0x1DBF1500, 0x549D0B8D, 0x75F0C5FE, 0x704FECB3} } ,
8286 { {0xD590746F, 0x27FCF578, 0x9E3497BF, 0xBB26FC40, 0x24DB0129, 0x18AED666, 0xBB9ECDD3, 0x63B1260D},
8287 {0x26E30E29, 0x52FFB50F, 0x508DF719, 0xDBDD5307, 0xCC79C11F, 0x6CF8165B, 0x70D48F32, 0xA956AD83} } } ,
8288 { { {0xE7FBB087, 0x47C5385E, 0xD6926E78, 0x01F950E9, 0x37AF7F17, 0x1EC822E4, 0x41120A8D, 0x8A0ECE08},
8289 {0x879B8D2C, 0xDAE94560, 0x7091CA24, 0x3EEE1DF1, 0xF35372C8, 0x727E24D8, 0x0D1BE594, 0x99C0527A} } ,
8290 { {0x8FCC6D98, 0x240EECC4, 0x1D7ED3A1, 0xC0ED91C6, 0x0CF68FAF, 0xEAF2A7B2, 0x36E2CBA1, 0x4234299A},
8291 {0x3CF5D411, 0x1AB67614, 0xA48EE7C7, 0x2A1E16C6, 0xCCF23475, 0x33B3D5BB, 0x9F39E1D1, 0x86A34EDE} } } ,
8292 { { {0x21A78279, 0x08860D02, 0x1CD24088, 0x53955A5F, 0x67219F83, 0x85679CBC, 0x56E8F560, 0x3EF88E8F},
8293 {0xFA9EB1E2, 0xCC5726A4, 0xD2845D67, 0xC6F5B3FC, 0x0CD1EFAF, 0x83BE88AC, 0xC0C21D1E, 0x69246096} } ,
8294 { {0xC1BFC6D5, 0xEF0C7C9B, 0x76A7A108, 0x9CADA6F1, 0x5835CF2B, 0xB71AAC78, 0x258AB478, 0x7873AE42},
8295 {0xB4E865F0, 0x92DF1DDE, 0x8CD15E04, 0x68CAC9AF, 0xD7B527FD, 0x38D3BA1F, 0x48CFAB51, 0x87EAE178} } } } ;
8296 static const fp12_t var_expected = { { { {0xFD2F8BD0, 0xD06AFD61, 0x7DD34342, 0x2491D7CF, 0x452F03A9, 0xCF8BA45C, 0x9ECCEBAB, 0xB8C275F1},
8297 {0xE3C694E9, 0x3AF8DC7A, 0xD11132E6, 0xEAD1DA16, 0x18527729, 0xD69906C9, 0xED5E6E59, 0x27A35B81} } ,
8298 { {0xFFA83417, 0x4A793156, 0x75797BA4, 0x7D89F4CC, 0xD724FB6B, 0x2384ED05, 0x513586AD, 0x60F61A5A},
8299 {0x966E4E31, 0x4AB88A91, 0xB3406E2A, 0xB3F3E4D8, 0xC5EFE482, 0xF4AD8714, 0xA8C49FB1, 0x791C7A3D} } } ,
8300 { { {0x6EFCD537, 0xD5EE1632, 0x4E3EA1D4, 0x22E64374, 0x0E9FC85B, 0x720A2721, 0xD3A51A14, 0x91209621},
8301 {0x87651881, 0xDBFE9F08, 0x26F3A614, 0x135BAB39, 0x46D73F74, 0xE6137AC1, 0xAA0F4DB1, 0xB4C5EA16} } ,
8302 { {0x79CFA853, 0xF66EFE69, 0x2529AE6E, 0x010894C6, 0xF8219992, 0xCD0CC9B1, 0x07E8D28F, 0xA81B5D48},
8303 {0x3A861DB7, 0xEFAC0C82, 0x016BAB42, 0xF010C5C4, 0x8C41CC01, 0x46D44629, 0x6CAAD514, 0xA5181A40} } } ,
8304 { { {0xF7F6C557, 0x79EAEF6F, 0x946809E1, 0x1EA77027, 0x12AE3740, 0x37E98296, 0xCB7859C9, 0x61EC56A5},
8305 {0x78F523F8, 0x76109CD3, 0xC5468FF2, 0x866AB96A, 0x4E238703, 0x75D31240, 0x7C1DAD78, 0x4082E695} } ,
8306 { {0x51CFE858, 0xCEC837E2, 0xC9ED9D1E, 0x7ED19F5D, 0xF1C12942, 0x0ED273A4, 0xE3C08E1D, 0x074ED2B0},
8307 {0x20A7C053, 0x77448C48, 0xE365C13C, 0x764158BC, 0x6750B906, 0x43A20F42, 0xAF198E21, 0x376C7890} } } } ;
8309 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3297 a000");
8310 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3298 a001");
8311 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3299 a010");
8312 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3300 a011");
8313 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3301 a100");
8314 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3302 a101");
8315 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3303 a110");
8316 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3304 a111");
8317 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3305 a200");
8318 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3306 a201");
8319 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3307 a210");
8320 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3308 a211");
8323 static const fp12_t var_a = { { { {0xDED45FC5, 0xACA15D29, 0x5794935D, 0x226BF481, 0x69ECE418, 0xE61A8034, 0x2B0542AE, 0xA03D6EAF},
8324 {0x62C2C349, 0xD765F694, 0x99A5369B, 0xB005482A, 0xF41AD7D1, 0x34834276, 0xF6DDFADF, 0x6C6F7D90} } ,
8325 { {0x48FB1B58, 0x239019C7, 0x136206EE, 0x762BB5C5, 0xBCF487C8, 0xC586C712, 0x7E1D0AFB, 0x25F35C79},
8326 {0x9E197315, 0x133C53B1, 0x4B4E4614, 0xEB8032DC, 0xD34B4938, 0xC3C89F2D, 0xC25BB390, 0x3EF67E6D} } } ,
8327 { { {0x89AA12E3, 0xF0011364, 0x226054C5, 0x7EDEBFB1, 0x669ABC5C, 0x3311870F, 0x29F0D1BB, 0x6CF952C1},
8328 {0xDD1433B0, 0x9ECDF701, 0x6DB10868, 0x94109AFA, 0xA89D48EB, 0x75FCECBB, 0x4730FD5D, 0x8B1471AD} } ,
8329 { {0xC546C388, 0xC972C1FE, 0x23CD42FB, 0x478B8D00, 0xD582861C, 0x0E8BA983, 0x36FB4B55, 0xB70E939A},
8330 {0x272A4AC0, 0x8199D075, 0x0B457DFF, 0xAFD1D920, 0x7B4F0F6D, 0x657317E8, 0x24D520DB, 0x0FEEAEB2} } } ,
8331 { { {0x75382988, 0xE5745E31, 0x2E63E0AD, 0x611BB019, 0xCB2654CA, 0x7E2212C2, 0x3790C00E, 0x07149267},
8332 {0x749BCA40, 0xFA0E28C0, 0x3E1BB90F, 0xD8D00988, 0xFF3EF1A1, 0xC16C9727, 0xC186061B, 0x0E400EB2} } ,
8333 { {0x3391597C, 0x619A7CD8, 0x295C3311, 0x1D21B0F3, 0x77021FA4, 0x5245E433, 0xAA84BAB4, 0xA5B049D3},
8334 {0x939A71FF, 0x25F0AEBA, 0xFD39EFE6, 0x9B7B2EB0, 0xBF55A642, 0xE93E8BA0, 0xC3D47EBB, 0xA82191FB} } } } ;
8335 static const fp12_t var_expected = { { { {0x37EFD89B, 0x0D7CE29A, 0xA94DA712, 0x6FA4FB29, 0xB90ABADF, 0x85048BCC, 0x61E63E58, 0xADD5AAA1},
8336 {0x63844C39, 0xAE1CE894, 0xD5BDFB73, 0xADDCB7BC, 0x78CE9BCE, 0x5993BBA3, 0xB9C685DD, 0x320A46AE} } ,
8337 { {0x4FA30B45, 0x1F5D1886, 0xE2EC0F73, 0x2B8B7DF2, 0xAE250A93, 0xA8B27326, 0xE5115528, 0x20870E8E},
8338 {0x7AD6CCAA, 0xE9907AD3, 0xCBF97D1F, 0xD3ACCE55, 0xC70BB4B7, 0x031AA862, 0x61D5BC60, 0x4BBC4A3B} } } ,
8339 { { {0x08539247, 0xF68074CD, 0x62A373A6, 0xDE4D38C2, 0xB78E4252, 0xEA10F4EE, 0xB3CFCC14, 0x77A52A10},
8340 {0xBBE3046C, 0x425EFE01, 0x08504921, 0x807A2133, 0x84C750B7, 0x66FFC738, 0x405BB4D2, 0x869388CF} } ,
8341 { {0x93F9BCD0, 0xA4792A8A, 0x562D88B6, 0x96B64CB9, 0xAAD9C48E, 0x44327DDD, 0x0D8AF168, 0x3DCB43AC},
8342 {0xEB01AA76, 0x2B97CCAF, 0x5FE3952F, 0x479DA785, 0x23807EAF, 0xCAF71100, 0xC1032A79, 0x476611A5} } } ,
8343 { { {0xA0A37541, 0x40980086, 0x64ED7421, 0xACB0E0A6, 0x9419D198, 0xFCAA3EAE, 0xDB5F157F, 0x9D6DAB67},
8344 {0xD2B8B7FA, 0xA9EC318B, 0x56F3F6C8, 0xFBB42DAD, 0xB9079A72, 0xFF66E48A, 0x8124A64A, 0x242FC8C8} } ,
8345 { {0x068D6B59, 0x26FBD431, 0x201F6145, 0x79CCFC3F, 0xC7CC8423, 0x56EF550F, 0x94B2E425, 0x04B87253},
8346 {0x9B344428, 0xD8207E53, 0xBEB45A88, 0x243BCCED, 0xB57469F0, 0x069DF3EA, 0xAF614332, 0x5A5B41B5} } } } ;
8348 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3309 a000");
8349 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3310 a001");
8350 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3311 a010");
8351 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3312 a011");
8352 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3313 a100");
8353 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3314 a101");
8354 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3315 a110");
8355 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3316 a111");
8356 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3317 a200");
8357 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3318 a201");
8358 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3319 a210");
8359 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3320 a211");
8362 static const fp12_t var_a = { { { {0xCEF0A565, 0x5B9DD3AE, 0x07436A98, 0x5E81F8AD, 0xF352267C, 0xE908593E, 0x4FDFFCB2, 0x1CEB96C6},
8363 {0xC9A8F509, 0xC8077567, 0x622AEFB2, 0x577BBE31, 0x75415353, 0x36E7069A, 0x9B7ECB83, 0x89ADE32B} } ,
8364 { {0xADAC8F65, 0xD7B82C60, 0xE213D826, 0xFFE8E650, 0x1131DD42, 0xC2B8E3D5, 0x96FE3775, 0x193C5C03},
8365 {0x7EFA6DD0, 0x6111E805, 0x6589CAE6, 0xB6CBB56C, 0x1AEA90BB, 0x0A719902, 0xA32BA507, 0x75745370} } } ,
8366 { { {0xD552E55F, 0x5706A915, 0x0DC048A4, 0xD0301995, 0x098CF867, 0x869ABA43, 0x48FBB879, 0x6310A8B6},
8367 {0x4A90B968, 0x671763C8, 0x5ED974FE, 0xF3E39C94, 0xD16EFA9A, 0x72A0732D, 0x3CCCE499, 0x299246B0} } ,
8368 { {0x2428FCEF, 0x128CE7DB, 0xE281E8AC, 0x0CF381D2, 0x6BBF07C8, 0xB7AF247C, 0xE573A8BC, 0x27A66181},
8369 {0x114DE512, 0x00833CE2, 0xB0A3D9AA, 0xD95B7586, 0x35F2CB52, 0xFF1E7E26, 0x8E50B3F7, 0x2EDB0ACE} } } ,
8370 { { {0xCC2091AE, 0xA8B30088, 0xAD0DBA6A, 0xA17AD58E, 0x087BC958, 0xF8706B86, 0xC000A6D4, 0x1694B03E},
8371 {0xAEC084AF, 0x6CE6FF12, 0xDA44D0F1, 0x10C3C65D, 0x1529DF3D, 0x07587564, 0x9369866D, 0xAE0D5115} } ,
8372 { {0x7933EBA6, 0x51B6DB78, 0xB3653FA9, 0x990A38A7, 0x81E8BB11, 0x713C4DDC, 0xC98F63C9, 0x4F1B51B4},
8373 {0x62C6131D, 0xFEE4DE0D, 0x8632FB7E, 0x1D19CCA6, 0xBEBA1E8D, 0xE6346492, 0x526A75C3, 0x6CB7CE55} } } } ;
8374 static const fp12_t var_expected = { { { {0xFD5CECAB, 0xD38EE966, 0x38C7463B, 0x71DF6509, 0x7B7AE569, 0x47CCAFB6, 0xCC0E43AA, 0x94E818E3},
8375 {0xB45F9E4B, 0x7DF07FFE, 0xC6A8361A, 0x27FCABFE, 0x665B8074, 0xE09ED0BA, 0x730073DC, 0x8AF207A7} } ,
8376 { {0x73A6CA42, 0x10D272A1, 0x2C22FF03, 0xD8A18059, 0x4B44FEA5, 0xF00F6AA0, 0x97AB29DE, 0x3B03AEDF},
8377 {0x0FD88F3F, 0xE54B0487, 0x9A5EAB7D, 0xFC890BEF, 0xED00DB55, 0xD0F55E35, 0xCB5E43EE, 0x7D7E2A84} } } ,
8378 { { {0xCFF6FE2D, 0xFB4D108A, 0xBF0DEC68, 0x2BA03953, 0x5DF386FE, 0xA22DCD79, 0xB9C0D303, 0x5EC9DFC5},
8379 {0xBF3046F4, 0x5ED963D4, 0x8CCC5479, 0x648DA6DA, 0x7DF44698, 0x512AFE0E, 0x3E7C2F2E, 0x1925408E} } ,
8380 { {0xE2BDA780, 0x8941936B, 0x55D775A1, 0x12928790, 0x6C3BA114, 0x39BD3623, 0x0AA710C9, 0x0962A54C},
8381 {0x4D12AEF7, 0xC5D699AF, 0x91B9EA6B, 0x05D3CD4A, 0xB4E37523, 0xFC3AA5B5, 0x0786205E, 0x25690E7C} } } ,
8382 { { {0x0082C537, 0x8A0DC40A, 0x8E6CE9A5, 0x595A498B, 0x8A80E5C2, 0xAF28FAE3, 0xE2D66809, 0x8A10460E},
8383 {0xC2AC97A4, 0x5C28BFBD, 0xB6742366, 0x9A08D588, 0x05F85599, 0x869B62AC, 0x2FE8A5C5, 0x114EC55D} } ,
8384 { {0xB897A8D0, 0xDC9DD0C9, 0xFF8A4F3D, 0xC0D32A3E, 0xAD984241, 0xE175DBF4, 0x8681B6ED, 0xAF74E65B},
8385 {0x3E259EB0, 0x80450890, 0x50E78D7F, 0x6D871EA9, 0x89E08868, 0x601E8AF0, 0x5926C857, 0x6801985C} } } } ;
8387 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3321 a000");
8388 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3322 a001");
8389 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3323 a010");
8390 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3324 a011");
8391 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3325 a100");
8392 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3326 a101");
8393 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3327 a110");
8394 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3328 a111");
8395 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3329 a200");
8396 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3330 a201");
8397 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3331 a210");
8398 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3332 a211");
8401 static const fp12_t var_a = { { { {0xF4FB5B51, 0xB340C877, 0xB89AD14B, 0xD7A54D55, 0xCE8ADAE9, 0x161EB066, 0x7ADB80BF, 0x527CD9B6},
8402 {0xAC8B710E, 0x41DF4B8B, 0xD6B8876A, 0x442E1F3E, 0x2298D173, 0xFA18D6ED, 0x6CDB15AD, 0x3C1787DC} } ,
8403 { {0x5195DCD9, 0xBED9C4FB, 0x8F42188C, 0xA51EAF55, 0x5E9EC851, 0xABD76D5A, 0x501D5964, 0x72E7D8B7},
8404 {0x6887DD12, 0x4F3A59AA, 0xE34A100A, 0x28A1053D, 0x4733B02B, 0x5310DEC8, 0xC00A0386, 0x8D9ABF3F} } } ,
8405 { { {0x0DC509F8, 0xAD54CC6D, 0xC40E8EE3, 0x047BCB40, 0x9E646997, 0xD58C4AFB, 0x5A42E352, 0x91921655},
8406 {0x1B839C31, 0x792B487A, 0x80F246C1, 0xC92FD1D4, 0xE78FCFD5, 0x2622560A, 0x06051135, 0x9A63BE39} } ,
8407 { {0xA19B396D, 0x02026D8F, 0xC6113E0E, 0xA1F2674A, 0xF74D5637, 0xC6E03873, 0x75843A6F, 0x1676FDE1},
8408 {0x0B36E27F, 0x870DF191, 0xCD51FA8D, 0x2B02564C, 0x20E70AC4, 0x911345CF, 0x1DF58260, 0x4E7C5096} } } ,
8409 { { {0xADC130D1, 0xC0255A2B, 0x0D1490B7, 0xB8ED7C89, 0x6CC3BD59, 0x165A7436, 0x0CDD84E7, 0x67896D58},
8410 {0x95BB559A, 0x98BC76EF, 0x7361C74E, 0x981D58DE, 0x4569D0D1, 0x3C5188DF, 0x2D1E4FF8, 0x59B15AEA} } ,
8411 { {0xDD7EFB36, 0xB7A15F32, 0xC8B65CD0, 0x7D8F6F46, 0x695A4A77, 0x43D863CA, 0xA066B4FC, 0x7FDE1900},
8412 {0x22CAB61E, 0xA1E482E0, 0x0CCAC0C8, 0xA6A18653, 0xFE0B0D4B, 0x1656F4E0, 0x858655EE, 0x6047FABA} } } } ;
8413 static const fp12_t var_expected = { { { {0x1A31902B, 0xB56A1961, 0xC89857AD, 0x1B9E19A8, 0xC7F7DA91, 0x3AFEEEE6, 0x1616C5FD, 0x80B9C951},
8414 {0x75AD2705, 0x205EA9F3, 0x919E31B7, 0x78A48154, 0x8F29EADF, 0xCC79A8B6, 0x8F3C92C2, 0x4E26B748} } ,
8415 { {0xE0A507FE, 0x64166E62, 0xA8A8D356, 0x4CB66C33, 0xF04BAB45, 0xDCCF8B99, 0x16BBAEE9, 0x97A76295},
8416 {0x3835ACB2, 0xC2F914CB, 0xB35CF949, 0x6BF9DE02, 0xA01EECFE, 0x78BDC1D6, 0xD8994F64, 0x677B20D8} } } ,
8417 { { {0x91D1EB68, 0x88ED8421, 0x5A7AFB94, 0xEED2004E, 0x9635A381, 0xCA96D398, 0x81FFB086, 0x0F263906},
8418 {0x645A0EDE, 0x11626A73, 0xA7B58134, 0xB2082B7A, 0xEE8ED1B4, 0x4E461987, 0xC2DFDF4E, 0x6CCB4ED2} } ,
8419 { {0x0C481674, 0x563F8F7B, 0xA2A1C5CC, 0x0966BF5E, 0x4A51573A, 0xC594967A, 0x90EE570E, 0x3B13D7F6},
8420 {0xA724E322, 0x74E2D802, 0x8AF7B783, 0xF3F67D88, 0xC27A88A8, 0xF8DC65A5, 0x16904C48, 0x6D1D3E87} } } ,
8421 { { {0x2CF84F91, 0xF8DB6F10, 0x831DA8E4, 0xA5617B0D, 0x874C00CF, 0x0D646E79, 0xEA27B54A, 0x13809A6C},
8422 {0xDA98BBCB, 0x3CAC4141, 0x75E14367, 0xF7BA296A, 0xD9C842BE, 0x7AB23921, 0xD18F909C, 0x62EDD9FD} } ,
8423 { {0xD29F89D7, 0x56B104F6, 0xE00F0A75, 0xC0AB4CBB, 0xBD3E4B63, 0x72A409FE, 0xC78D5699, 0xA3D634A8},
8424 {0xB4ABB7D7, 0xEA0E69EF, 0xCCB6F5F2, 0x70C6B8B6, 0x185109C8, 0x599C35D3, 0xA79C75D3, 0x6B4B40FD} } } } ;
8426 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3333 a000");
8427 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3334 a001");
8428 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3335 a010");
8429 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3336 a011");
8430 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3337 a100");
8431 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3338 a101");
8432 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3339 a110");
8433 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3340 a111");
8434 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3341 a200");
8435 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3342 a201");
8436 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3343 a210");
8437 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3344 a211");
8440 static const fp12_t var_a = { { { {0x3DAC74C6, 0x536F4C4B, 0x2548DF3F, 0x31A05835, 0xA3934F53, 0x56E63FB8, 0x8541B1A0, 0x5C38D5DB},
8441 {0xB0D87BA2, 0x94AAE0EA, 0x84460CA1, 0xF9783C23, 0xD90BEE4E, 0x1B87E5A3, 0x9292ADAE, 0x387B96EB} } ,
8442 { {0x0C24038F, 0xC8E8A558, 0x55D4D0DF, 0xA42C240D, 0x2810A196, 0xFD237278, 0x7EFB2DEB, 0x4C7215FB},
8443 {0x77AB3671, 0xC67BAB49, 0x6792EE48, 0x0E8D6EA7, 0xC91AD048, 0x9BA8D106, 0x7FC5F3A8, 0x5FC1EF3E} } } ,
8444 { { {0x340DE534, 0xA1DB6D3F, 0x72607C39, 0xF65CC7DC, 0xC20F6979, 0x68246758, 0x4BAC293E, 0x6151F758},
8445 {0x816849EE, 0x31A5547C, 0x45BD24E0, 0x8EF99C9D, 0xB26554EC, 0xA309C096, 0x33952C8D, 0x9ACC515E} } ,
8446 { {0x2E391DC0, 0x71D45FBF, 0x50AF912F, 0xA18CECFD, 0x858F9484, 0xB268FDAB, 0x5A2883EA, 0xB43F0FF3},
8447 {0x7F345B61, 0x50D4DB3E, 0x69E1EDC2, 0x038989AA, 0x4CFEB8BE, 0xAC915FFF, 0x8EB23A42, 0x64AFFD02} } } ,
8448 { { {0xEFAAA04F, 0xBBC3F2D1, 0x65FFC065, 0x1F72E318, 0xEF2806EF, 0x5F17DC50, 0xCCEBBF83, 0x5BCC3388},
8449 {0x54E3CE8A, 0x2D09C53C, 0x31347BB0, 0xE15E8167, 0x919B823B, 0xA9D1639D, 0x8737F9BF, 0xAEE7F1AC} } ,
8450 { {0x07EA3FA1, 0xB98D21C9, 0xB22D3F08, 0xE6B39D33, 0xCDFB1659, 0x9DE24169, 0x49FBB63A, 0x48947744},
8451 {0x29D40F0E, 0x42C4F287, 0x2DBB8818, 0xC2A6CF8F, 0xCA94A25B, 0x217FACED, 0xFFA88138, 0x40FB606B} } } } ;
8452 static const fp12_t var_expected = { { { {0xF72D4C49, 0x7140B70F, 0x08CD73A8, 0x048BF93A, 0x4BF3C9D0, 0xF8EF7CB4, 0x703C2E9C, 0x0A0D7246},
8453 {0x150BF780, 0xE14962D3, 0xCA3E974A, 0x37129A31, 0x23B506DC, 0x34F308C2, 0x63CC1F25, 0x65EF7023} } ,
8454 { {0xDFC3E638, 0xB8DEC7E8, 0x1759678F, 0x3799F59B, 0xC82264C9, 0x7B84F30A, 0x276004E3, 0xAECB4690},
8455 {0x55215AE7, 0x7E55A583, 0xB620C41F, 0xFB604599, 0x4C7D4334, 0x8C2EDAB0, 0xAB05B22A, 0x75251788} } } ,
8456 { { {0x9ACB070E, 0x982AA4B6, 0x72005B61, 0x866DA903, 0x231E450A, 0x981DE5A3, 0x8CAE4932, 0x84CCF300},
8457 {0xDDE435CB, 0x31EF4F1D, 0xDB65B3D5, 0x8D033B6D, 0xC098C6BF, 0x225DF1A2, 0x96074098, 0x9B2075E6} } ,
8458 { {0x79A1046E, 0xE57CB500, 0x9C94FCDD, 0x58E30246, 0x9DCF59C4, 0x9EB155CC, 0x50DDD9F7, 0x5DA6FD5D},
8459 {0xCB84C1E2, 0x3B303487, 0x31EB3CA2, 0x088001CA, 0x486B6711, 0x302802BD, 0x464C1697, 0x3D44E7FA} } } ,
8460 { { {0xF9C8F4D1, 0x93A4A173, 0x62537C74, 0xE02A4713, 0x396946CD, 0x3DDF1C88, 0x9BAFE416, 0x21E79405},
8461 {0xD64FEC4A, 0xF766CEC4, 0xE99CEA7D, 0x96B61067, 0xFF2DDCCA, 0x8EFD2E22, 0xE23718C0, 0x40ED61AF} } ,
8462 { {0x8A491FF6, 0x48E61BD9, 0xA414EDB5, 0x19CF2378, 0xF8AF6FDC, 0x0CBA3FD0, 0xCC01F018, 0x4413BBDD},
8463 {0x109063D7, 0xAD86B3A0, 0x8537FAB8, 0x797E3A01, 0x1251AB90, 0x9D7C6F64, 0xBE07CD06, 0x5BE4A4FF} } } } ;
8465 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3345 a000");
8466 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3346 a001");
8467 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3347 a010");
8468 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3348 a011");
8469 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3349 a100");
8470 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3350 a101");
8471 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3351 a110");
8472 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3352 a111");
8473 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3353 a200");
8474 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3354 a201");
8475 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3355 a210");
8476 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3356 a211");
8479 static const fp12_t var_a = { { { {0xC0F67F3D, 0x4312C297, 0x7C1A4B6A, 0x480C20E2, 0x8B95231C, 0x73D0E3E2, 0x7F41EE55, 0x61BA119B},
8480 {0x9DE472A7, 0x18DC9390, 0x0024D566, 0xE3302F7D, 0x5452D242, 0x22016284, 0xE3479268, 0x7EE335CF} } ,
8481 { {0xDD670F1A, 0x6CEEC2CC, 0x2F3C2C48, 0x959BB1B6, 0x323B3A84, 0x037A9817, 0xA9C5BF5A, 0xA74A2E00},
8482 {0x7A357351, 0x19B49289, 0xC1606A92, 0x75E6943C, 0x168C663B, 0x2DD02AB7, 0x4EB7F3C0, 0x61AC4C79} } } ,
8483 { { {0xDDBF4732, 0x053E1593, 0xD3A93D33, 0x7BF09F8D, 0x7E5BDA0B, 0x6B5E66A4, 0x9B9D1EA1, 0x76201503},
8484 {0x0CC8BA82, 0x2B3C1236, 0xF87C0D4C, 0x7722E1E1, 0x88BB5548, 0xB3F53B91, 0xC988344A, 0x569F040B} } ,
8485 { {0xDA151697, 0xD25E7C08, 0x1FFC1904, 0x3EE21844, 0x783C46C8, 0x156D9BFD, 0x3F681D4D, 0x3AEA2178},
8486 {0x1803A8C3, 0xA04025F6, 0x3EA33F4F, 0xB7C9DBAE, 0x65E99ADE, 0x1172886F, 0xE2D1DCA1, 0x35434C69} } } ,
8487 { { {0xD1385E18, 0xB3B63FE3, 0x9B87DBD0, 0x6B361E4A, 0xE160E0CF, 0xE8B5D5C9, 0x0C29C1EA, 0x750BA0B5},
8488 {0x7C5CACF5, 0x5E27409D, 0xDBE22EEC, 0xC76661D6, 0xB741756F, 0x18E8CF9A, 0x7F098E31, 0xB7F8F81D} } ,
8489 { {0x87C19EC4, 0x16296243, 0x7C8D4554, 0x5FB9B891, 0xA7B700AF, 0x57CC59D7, 0xD6DF4410, 0xB0B96625},
8490 {0xC9BC1D8D, 0xABC0E7B7, 0x9F23E642, 0xF8C6D414, 0x80795276, 0x97842B9E, 0x62CD9DB0, 0x81ACBC75} } } } ;
8491 static const fp12_t var_expected = { { { {0x409ED0ED, 0x1D83D1F5, 0x81459BC6, 0xDD0C45E3, 0xD9DFA478, 0xB3B90A41, 0x48AB4FF9, 0x4ECB1657},
8492 {0x7C538232, 0x6F88FFD6, 0xB365A03B, 0xB800B7D2, 0xEF62C42A, 0xC9D44D7A, 0xA584045C, 0xB675FAD5} } ,
8493 { {0x6396AE30, 0x2E7EF2E4, 0x6AA35914, 0xEB523B6D, 0xC2F0639A, 0x6163E91A, 0x94F02C17, 0x501EF021},
8494 {0x346F8D5E, 0xEB65E952, 0x60B8F32F, 0x808D925F, 0x1B3C8F4D, 0x07C1B128, 0x28E8C6E8, 0x5B4A7042} } } ,
8495 { { {0x5B6E5575, 0xCED59D42, 0x22AAF154, 0x99FCCF09, 0x615F4A6D, 0x24124AB1, 0x204CFCCF, 0x29A722A6},
8496 {0x5F87DDA5, 0xD57A08F8, 0xFAD9348B, 0x89BE0309, 0xF9E16C9D, 0x0468B86F, 0x93FF021D, 0x1B427CC0} } ,
8497 { {0xC7FD5A17, 0x70A2EC78, 0x9DB78120, 0xF7B9F732, 0xFDAECBAD, 0x6F289604, 0x9B60E671, 0x487323FC},
8498 {0x92EE3E2C, 0x52570596, 0xE9FBBF9F, 0xAA5ECF38, 0xDF6067E7, 0x6C6F17FE, 0xE51861D5, 0x796E15FE} } } ,
8499 { { {0x24ADD49F, 0x0C817791, 0x2A445EFD, 0x6C0EBF3C, 0x33E4E48B, 0xA13FC885, 0xC0E02133, 0x997DE301},
8500 {0xEFE49EF0, 0x28C79934, 0x1C586066, 0x03B61252, 0x655873F4, 0x3D725FF7, 0x0AFE324C, 0x0584A9FA} } ,
8501 { {0x0CE5F263, 0x531D8170, 0xE2DF2A0E, 0x98DB72A8, 0x542E222A, 0x99C10CC4, 0xF177F254, 0x1E8CE244},
8502 {0x3E3B5989, 0x77E11B08, 0x96404F63, 0xA190F90A, 0x74B02091, 0xE8E629CA, 0x0840BAF1, 0xAD4F3D0F} } } } ;
8504 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3357 a000");
8505 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3358 a001");
8506 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3359 a010");
8507 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3360 a011");
8508 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3361 a100");
8509 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3362 a101");
8510 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3363 a110");
8511 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3364 a111");
8512 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3365 a200");
8513 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3366 a201");
8514 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3367 a210");
8515 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3368 a211");
8518 static const fp12_t var_a = { { { {0x48AFA2ED, 0xC1B80A0F, 0x9F2A98D0, 0xB99091F1, 0x555CE684, 0x528391E6, 0xB098868E, 0x04CF78D1},
8519 {0xCE855ED1, 0x0C62DC3E, 0x1A3B854F, 0x83EB1A92, 0x454A96F9, 0x414BC01F, 0xF3320357, 0x608F8276} } ,
8520 { {0xBF417E3F, 0x72ADB67E, 0xA2C87CA4, 0xE3965796, 0xCA1621FC, 0xA88EB2F3, 0x5D41675D, 0x57E862E0},
8521 {0x3BB784BE, 0x45B3EAC2, 0xAC576465, 0x8A0FBE2F, 0xEFAF1757, 0x7C71C109, 0x26A1A8DE, 0x98A0CA73} } } ,
8522 { { {0x01DEFBD2, 0xA26AB846, 0x9950FD84, 0x085652A8, 0xDA3480EA, 0x62AA6A58, 0xC83F51E7, 0x7E7AA831},
8523 {0x99C85D44, 0xE3AB9437, 0xD25F46A7, 0xBC3CC9AD, 0x97BA6567, 0xEDAF8BFF, 0x4CA5AC74, 0xACCE9A7D} } ,
8524 { {0xDFA58956, 0x7AE745E7, 0x4CDA0A61, 0xC7429B56, 0xFA91D983, 0x7C98606B, 0xFB2F02D3, 0x56838C4F},
8525 {0x54D59AD0, 0xF546B212, 0x3C54BBF5, 0x0672B0D7, 0xE69622F4, 0x5005C5D3, 0xB33BB6D5, 0xB1F08205} } } ,
8526 { { {0xBBE0B858, 0xEF0F3DF5, 0x02C5DBE1, 0x7FBB4D57, 0x57A6ECCC, 0xD9F12341, 0x55204D33, 0xA2EE9826},
8527 {0x397ADDDB, 0x108FB9EA, 0xD4127FA4, 0xBB1853B1, 0xE079BD06, 0x937C6F62, 0x5E5E3005, 0x8E3B6156} } ,
8528 { {0x500A685B, 0xE5C1EAA7, 0x5A23703B, 0xB01F150C, 0x12C71B68, 0xFE00844E, 0x4814AC8E, 0x1604F566},
8529 {0xE132D900, 0x30C3F1DE, 0xBF2289FE, 0x780C5856, 0xA18C6422, 0x1698D883, 0xC43B8F1B, 0xA96767D6} } } } ;
8530 static const fp12_t var_expected = { { { {0x27DFD1BD, 0x4A5E2E27, 0x382D2D76, 0xF4E6843F, 0xB1E0A680, 0x5A9EBAE7, 0xD9DEE68D, 0x3DC42D6B},
8531 {0x2781192E, 0xC152361A, 0x4FBDDF2D, 0x0598CB2F, 0x71447CE8, 0x584200BC, 0xCDDFBEDC, 0x7A8761CB} } ,
8532 { {0x396842BB, 0x506D502F, 0xFCA78A08, 0x958EF6B4, 0x0101BD7E, 0x25E5CD2D, 0x5ADC45F5, 0x16AAFB90},
8533 {0xF134ABD0, 0xBA2CD058, 0x933B4048, 0x2197D579, 0x15D4BBF7, 0x5BEED64C, 0xD52C32D3, 0x5CC10A9D} } } ,
8534 { { {0x7E16FD12, 0x98F39971, 0x4708B200, 0x9CBBF431, 0xE01BBA58, 0xC443B1B5, 0x2AB35984, 0x716F2E59},
8535 {0x447E29B0, 0x1C35F21B, 0x108DBFF9, 0x165118BB, 0x408E3232, 0x01B8D93B, 0xD437BAE6, 0x6E558006} } ,
8536 { {0x1CBB8F07, 0x633EE5A4, 0x09002CB2, 0x7352456C, 0x4510110C, 0x8CBCD73F, 0x76EEB2EF, 0x979384A5},
8537 {0xE18355D6, 0x3B8BDCC6, 0x0669D4E9, 0x3648C418, 0xDD2D3784, 0x09E4BFEC, 0xB3093B15, 0x778E7C6E} } } ,
8538 { { {0xFBA94945, 0x490DEFE2, 0x8F66FCA2, 0x952ADDBC, 0x23681CDE, 0x3C0F23A6, 0x574A139F, 0xAA0AF735},
8539 {0x82983A5B, 0x07D44A14, 0x27A0E747, 0xCCC719FB, 0x7E1F1B4F, 0xC97D5FD6, 0xAB299A6D, 0x92E7EB46} } ,
8540 { {0x67331267, 0x6F1C7A8F, 0x6AB9185D, 0x08C24120, 0xF38251B3, 0xA4194756, 0x190C5582, 0x8B352081},
8541 {0x9861531C, 0x3B2D5798, 0x31E8628F, 0x13B4C585, 0x95C5A4F4, 0xE62A78FA, 0x3437A9E2, 0x2A8A47B4} } } } ;
8543 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3369 a000");
8544 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3370 a001");
8545 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3371 a010");
8546 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3372 a011");
8547 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3373 a100");
8548 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3374 a101");
8549 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3375 a110");
8550 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3376 a111");
8551 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3377 a200");
8552 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3378 a201");
8553 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3379 a210");
8554 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3380 a211");
8557 static const fp12_t var_a = { { { {0xCD557F3E, 0x205116D2, 0x3262D0CD, 0x6D04EFF6, 0x8D208913, 0x370FD625, 0x209D7214, 0xAFEB3935},
8558 {0xFAAF1AF2, 0xEDA9A992, 0x69DDDC81, 0x16416149, 0xB29FCE51, 0xE3DB202C, 0x68618A85, 0x2D476736} } ,
8559 { {0xB5150D1B, 0xB4E3B9B9, 0xEC076E40, 0x3DC539FE, 0x2E3D954D, 0x0A174FAA, 0x35CD36E9, 0x817CFD58},
8560 {0x8C3ABFA1, 0x1BC4C769, 0x0E0AE3BD, 0x42758889, 0x4DB12350, 0xB31F5E5E, 0x28963464, 0x79EA15EB} } } ,
8561 { { {0xC9BF03D5, 0x15BCCFA3, 0x1B9D1B5C, 0x60C37D41, 0xA6F013A5, 0x2C84DB66, 0x3D271215, 0x7D118AB6},
8562 {0xA174C442, 0x742B43EE, 0xD7EA5EF9, 0x4D5E9B03, 0x85907E42, 0xD903ABDD, 0xEE21F9B4, 0x266B3982} } ,
8563 { {0x9F947EEF, 0x5F562ABB, 0xA6885DA5, 0x594DAE1A, 0x54C922FF, 0xBB65F2E8, 0x9D9E6FDF, 0x2B220E45},
8564 {0x06C4862A, 0x604A1DE0, 0x0BBCAA4C, 0xD1F1FD8B, 0x1BE2869E, 0x990083A8, 0xA3EDA78F, 0xACC678E4} } } ,
8565 { { {0x28734DED, 0xEAADBB55, 0xCC68B7AB, 0xADE47264, 0xDFFF9E4A, 0x453797DE, 0x7BF470E5, 0x8882C5F5},
8566 {0x24129AE9, 0xAFA33DCF, 0x945CE44F, 0x11B60324, 0xDC004E3B, 0xEEC72C35, 0x3B652A2A, 0x313B26C7} } ,
8567 { {0x8A34A5A4, 0x9AF45099, 0x73A6CE2F, 0x19413543, 0x4ADF5946, 0x691917AC, 0x2A203F09, 0x3334DE90},
8568 {0x04B750BE, 0x57EA8F0D, 0xC785A2D4, 0x453FF3F1, 0x883C046D, 0x3D8AC1BC, 0x1619D409, 0x825E1DE4} } } } ;
8569 static const fp12_t var_expected = { { { {0x7545190D, 0xBA370BFB, 0x452291A4, 0x9BDD2E98, 0x9D57B222, 0x91E9381F, 0x541B58BA, 0x41EC1A97},
8570 {0x64A30B25, 0xD893F7AE, 0x86DB1DD1, 0x7FE2FDF6, 0xD716D9C0, 0x59CFD937, 0x78D739B6, 0x8258825B} } ,
8571 { {0x003BB8CC, 0xF60FB8E7, 0x74F62827, 0xCFEFF4BD, 0x0CA00E03, 0xC08F9530, 0x4B5997E0, 0x9312C69A},
8572 {0x6D268DE4, 0xBB5092DD, 0x943B4091, 0xF7C0FBD9, 0xC2D6DDB4, 0x184B7581, 0xC61BC03C, 0x47D1C3B0} } } ,
8573 { { {0x034A03F4, 0xDA2902C2, 0x03DFB8D1, 0x7FCCDFBE, 0x61601BD8, 0xB3D0612A, 0xD443B4E7, 0x9235B597},
8574 {0x83E03469, 0x62C45193, 0x91BB9C82, 0xAAE1EC22, 0x22E2B1A0, 0x21317970, 0x27FF318D, 0x645BEAD7} } ,
8575 { {0xB0CBE777, 0x90474508, 0xF96636C4, 0x502199A1, 0x1D7D068F, 0x3F2B7D9E, 0xCB4CFE06, 0x13100A94},
8576 {0x0C344AF6, 0x0551BBDD, 0xD04CCECD, 0x26B79BB5, 0x05235FEE, 0xA432AD7C, 0x2EBBBF79, 0x5BEC86D6} } } ,
8577 { { {0x99EDE3EF, 0x2D31C8AE, 0xD6841831, 0x0D18FD53, 0x4F4C14B3, 0x94D52EB0, 0xE9913258, 0x33952102},
8578 {0x64D2C550, 0x89ED942B, 0x0CF849F3, 0x60C56D25, 0x5DC4FA58, 0xE4FE023A, 0x83F34251, 0xAD9C10E7} } ,
8579 { {0xCB890DBF, 0x697391A2, 0x2D109E96, 0x581BB53A, 0x31BCB0EC, 0x772119CF, 0x044FDB4F, 0x66A0C845},
8580 {0x176A3012, 0xA11855A5, 0x13841B04, 0xBEEFC84E, 0xBF636E0F, 0x7F0E77C5, 0x47E9B84A, 0x3577ACBA} } } } ;
8582 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3381 a000");
8583 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3382 a001");
8584 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3383 a010");
8585 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3384 a011");
8586 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3385 a100");
8587 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3386 a101");
8588 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3387 a110");
8589 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3388 a111");
8590 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3389 a200");
8591 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3390 a201");
8592 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3391 a210");
8593 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3392 a211");
8596 static const fp12_t var_a = { { { {0x9D1B711A, 0xC94F80E6, 0x93BFF143, 0x5754CFAB, 0x4DE8699A, 0x41FFC70C, 0x8A97FFDC, 0x4CAD4836},
8597 {0xB6ADE826, 0xBD1F2879, 0x051E3CCE, 0xE707044A, 0x50B975DB, 0x010E3C47, 0x2E4A2497, 0x73125B5F} } ,
8598 { {0x53247E83, 0x6C0E8FA3, 0xDDCDA99B, 0xE869C735, 0xE7B37128, 0xC213984B, 0x2D0F9D66, 0x9F44250D},
8599 {0x3AE5C77A, 0x64A7A021, 0x59FD3B37, 0xEB174D2C, 0x40935F0A, 0xE482DA29, 0x88F6EDBD, 0x1EE7E56D} } } ,
8600 { { {0x474454F7, 0x1FADCA04, 0xFAD1103C, 0x40724C88, 0xA2484AC6, 0x42B46F9F, 0x9ECCD82D, 0xA0A2CA50},
8601 {0xB7FE0ED2, 0xD23624AC, 0x341C0998, 0xD327BCFC, 0xF831DBAC, 0x1629AC82, 0xE02A6349, 0x260858F0} } ,
8602 { {0x3509588C, 0xA2912229, 0x69A91F8F, 0xC732078F, 0x898446CC, 0xEADA0B4C, 0x687DF06C, 0x408F45CA},
8603 {0xEA9991C7, 0x19131484, 0x7A1CBEC1, 0xEFA27D9B, 0xD3349036, 0x33DEFAC9, 0xCF612858, 0x9C776563} } } ,
8604 { { {0xE1553440, 0x608459CF, 0xDD437561, 0x47468AC4, 0xE80AC32A, 0xD1F8B942, 0xE81A8F94, 0x5F3CC229},
8605 {0xACF9A090, 0xC1851B16, 0x688A8429, 0x45905C21, 0xB8F46672, 0xA27E2959, 0x9378FE3F, 0xB15F725E} } ,
8606 { {0xDD23C0CE, 0x92DDF3F1, 0x6D66899C, 0x34394C1F, 0x6A743E79, 0x8E30ED04, 0x9BACBC65, 0x465DEB9E},
8607 {0x84BB2D94, 0x8AF445BA, 0x96CA4B06, 0xB21770BC, 0x8EA0DEA9, 0x7A8BD16E, 0xD2B4EA80, 0x00EACFA6} } } } ;
8608 static const fp12_t var_expected = { { { {0x037AE09F, 0xC29CEB4F, 0xA61C4A15, 0x7CF60060, 0xC09DE967, 0x327F597B, 0x3637BD2A, 0x0E3E69B9},
8609 {0x39DBDF08, 0x186DFE84, 0x17F3BB80, 0x393CF75D, 0xBD624F67, 0x5C9FE7A9, 0x3518299B, 0x2EC313DC} } ,
8610 { {0xC6F6AD22, 0x6E3592A2, 0x5F885F42, 0xB8D33726, 0xB8F1568C, 0x581D29A1, 0x5EF7BD2C, 0x1606C17A},
8611 {0x76ACAA2C, 0xE9DE63E0, 0x28D64BE6, 0xAD48B392, 0x9597DB60, 0xA635432D, 0x730F1D1A, 0xA5117981} } } ,
8612 { { {0x1566718E, 0x53455D86, 0xF3368DA5, 0xC0A2BAD2, 0xD065579B, 0x799AD102, 0x7CBB7B5C, 0x456AA472},
8613 {0xA2DFEC66, 0x21EB0253, 0x2960EDF3, 0xFAFAD723, 0x4A8F2C51, 0xFB1F7873, 0x53A41925, 0xB4242F82} } ,
8614 { {0xCAEC1910, 0xBCD6A4A8, 0x111F41A9, 0x9C131522, 0x82445AE6, 0xEAC2404B, 0x95FFAA81, 0x7FBB2409},
8615 {0x46FD75EC, 0x2DAFBE76, 0x004A9FBA, 0xAA1A81D8, 0x771F0D16, 0x8CD60E61, 0x27CA408A, 0x2D11F86D} } } ,
8616 { { {0x77F5B803, 0xDFDEF327, 0x23DEBE70, 0x75E6D5AF, 0xF04EFACA, 0x93DEB4E4, 0x9D530611, 0xA3076495},
8617 {0x8C1A6865, 0xB7327351, 0x0F9965E5, 0x151004DF, 0xCE9E7863, 0x1E261FE0, 0x86B749F0, 0xAC5F0115} } ,
8618 { {0x2A77C5D8, 0xD7D5E716, 0x3CC134C4, 0x6E0FB363, 0x675D32E6, 0x36C11979, 0xAE244DE0, 0x4B7A924D},
8619 {0x609C8EEE, 0x809A68B8, 0x331BD9CF, 0xE4001D57, 0x4235A298, 0x25ACF678, 0xA42349FF, 0x948DE0D9} } } } ;
8621 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 3393 a000");
8622 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 3394 a001");
8623 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 3395 a010");
8624 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 3396 a011");
8625 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 3397 a100");
8626 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 3398 a101");
8627 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 3399 a110");
8628 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 3400 a111");
8629 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 3401 a200");
8630 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 3402 a201");
8631 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 3403 a210");
8632 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 3404 a211");
8636 static const fp12_t var_a = { { { {0xEEC21534, 0xC33576F5, 0x6F3C7BE1, 0x84EBE5DD, 0x80DB642B, 0x965D98D0, 0xC945F6F1, 0x3031E457},
8637 {0x68AD0FFA, 0x4C3267ED, 0x9914248D, 0x9C43A7EA, 0x0E2067D6, 0xC52762D3, 0x0642445F, 0x1A03E935} } ,
8638 { {0x23B24EDA, 0xD4ABA188, 0xF28DB3C4, 0xE32135BC, 0x7D76DF18, 0xCFB3857C, 0x084E5DD7, 0x46520BE6},
8639 {0x247A7223, 0x0EEF4D1C, 0x8631B3BE, 0xD15516D9, 0xC7785B21, 0x74D5D911, 0x600E890E, 0x0A20CED5} } } ,
8640 { { {0x8B745066, 0xED68DF50, 0xB069ABCA, 0xB6ADE08D, 0x984C53C8, 0x6CAFCDB8, 0xF5CAB8FD, 0x4BB6CD15},
8641 {0x9CD0420D, 0x316E77B8, 0x29323DB5, 0x9ACEEA85, 0xD59AE267, 0x0E2685A7, 0x41D38F5F, 0x7755915A} } ,
8642 { {0x1C946D33, 0xD6BBE003, 0xCDFC4A31, 0x71DF231F, 0x690FF49E, 0xA1954ACF, 0x508562A1, 0x49FCBF3A},
8643 {0xDEE715BD, 0xA115E759, 0xF5E0DA44, 0x41C43645, 0x1F751B15, 0xF8E9061B, 0x04D0CA0F, 0xA48899FC} } } ,
8644 { { {0x4A126866, 0x9A99EF14, 0x0071F680, 0xA13DE09F, 0x230678A3, 0xEBAAF50A, 0x93A21EA5, 0x17D06359},
8645 {0x5EF30962, 0x88E0BA27, 0x15C49C38, 0x85E16C79, 0xCD1D0C86, 0xCC9D8A6F, 0x07234677, 0x429BAE81} } ,
8646 { {0x4FC18121, 0x7DC70E08, 0x9290A13D, 0x60017748, 0x83B0A425, 0xF6077EB9, 0x7D2A5E8D, 0xB4761CE8},
8647 {0xFB728D2F, 0x4CF4B6BF, 0x76F24031, 0xA17A7D97, 0x3B225373, 0x55F5BBB3, 0xA7990A26, 0x6F7B659A} } } } ;
8648 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8649 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8650 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8651 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8652 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8653 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8654 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8655 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8656 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8657 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8658 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8659 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8661 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1809 a000");
8662 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1810 a001");
8663 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1811 a010");
8664 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1812 a011");
8665 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1813 a100");
8666 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1814 a101");
8667 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1815 a110");
8668 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1816 a111");
8669 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1817 a200");
8670 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1818 a201");
8671 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1819 a210");
8672 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1820 a211");
8674 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1821 a000");
8675 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1822 a001");
8676 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1823 a010");
8677 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1824 a011");
8678 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1825 a100");
8679 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1826 a101");
8680 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1827 a110");
8681 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1828 a111");
8682 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1829 a200");
8683 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1830 a201");
8684 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1831 a210");
8685 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1832 a211");
8688 static const fp12_t var_a = { { { {0x5CD86E1E, 0x0C150E89, 0x15DEFE0A, 0x9671B54B, 0x963523CA, 0xC85F6B43, 0x8AA89296, 0x040FD6B7},
8689 {0x7FF3134F, 0x98C80469, 0x44A3B675, 0x9DF9419B, 0x16EB5EF1, 0xBA0C3D5D, 0x00671770, 0x2F7918E4} } ,
8690 { {0x66FFA336, 0x0F42D583, 0xAA1C38A8, 0xB8A72A8C, 0xF39422C4, 0x9659A829, 0x782A8865, 0x1071BE30},
8691 {0x841A4A37, 0x550D2063, 0x42B6B682, 0x0DA32476, 0x97D969E7, 0x4FB8BC4A, 0x712C069D, 0xAC25D2CD} } } ,
8692 { { {0x42C1BA96, 0x8FE32CC4, 0xDDC3A2BF, 0x66453D81, 0x2086CA32, 0xD93BF676, 0x0279AD75, 0x6BD64F9B},
8693 {0x7E18FE60, 0xAB8FC1A8, 0x9D27E73C, 0xB24B08A6, 0xE130C725, 0xAD346740, 0x552D1DCB, 0x98FB09FA} } ,
8694 { {0xA4DC14F2, 0xD7F3B6CF, 0xA7D0E600, 0x6F848745, 0x8DC959A1, 0x4E7D6C4C, 0xE7E77DA8, 0x2AEB1B05},
8695 {0xBFF9BB4E, 0x04CA79F9, 0xEEE0E9DB, 0x7A68F60D, 0x06655BCF, 0xB2B5E8D0, 0x0B200273, 0x2A6FA0CE} } } ,
8696 { { {0x086DB72B, 0x6B0D1E2A, 0x93EC90B2, 0x2CA17296, 0x3BE4E8D5, 0xE0340B29, 0x24BD054C, 0x8E405080},
8697 {0x03A2E961, 0x083078C9, 0x8B687E14, 0xCB66E057, 0x53F3AF26, 0x6F7AA4F3, 0xEE763167, 0x06517B41} } ,
8698 { {0xDB884B09, 0x18A5B38C, 0x708FAF9E, 0xC635A137, 0x74980C24, 0xD7E92761, 0x75D26305, 0xB9979B64},
8699 {0x7D4DD0E9, 0xA0137D94, 0x605A5CF5, 0x2862B8D6, 0xAD4B9C84, 0x3A7876DC, 0x1B990C64, 0x9E76AE24} } } } ;
8700 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8701 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8702 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8703 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8704 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8705 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8706 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8707 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8708 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8709 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8710 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8711 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8713 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1833 a000");
8714 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1834 a001");
8715 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1835 a010");
8716 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1836 a011");
8717 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1837 a100");
8718 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1838 a101");
8719 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1839 a110");
8720 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1840 a111");
8721 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1841 a200");
8722 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1842 a201");
8723 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1843 a210");
8724 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1844 a211");
8726 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1845 a000");
8727 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1846 a001");
8728 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1847 a010");
8729 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1848 a011");
8730 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1849 a100");
8731 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1850 a101");
8732 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1851 a110");
8733 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1852 a111");
8734 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1853 a200");
8735 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1854 a201");
8736 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1855 a210");
8737 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1856 a211");
8740 static const fp12_t var_a = { { { {0xF2173182, 0xE800CE4E, 0xCB060670, 0xDDED0251, 0xBC2AA905, 0xAC82F920, 0x977460E9, 0x3DA271BF},
8741 {0xDECC4A93, 0xF6348127, 0xF237FFA3, 0x2A344A13, 0x911623C0, 0xB7EAF71E, 0x71B2880C, 0x2FCAE3C4} } ,
8742 { {0x8A23F6E5, 0x1FC8D67C, 0xEE4087B3, 0x8B91BFBC, 0xD5B1DAFC, 0x08DA2895, 0x47383068, 0x17176AF1},
8743 {0x3DC23BEB, 0x73FD12C7, 0x818F6386, 0xE7DED4A4, 0xB8FA6069, 0xBBC86996, 0xCC1A7EED, 0x63C2028E} } } ,
8744 { { {0xD09F1D4F, 0x4A2CF5C6, 0x6A700396, 0xB87CF9F0, 0xC87107F9, 0xF5E465D2, 0x03B03869, 0x2B07A653},
8745 {0x8F39DCAE, 0xBF53DEE8, 0xBCEC7CC6, 0x9E54FB6C, 0xC75E25D2, 0x5ED014FA, 0x08AD8E5D, 0x6C1F64CD} } ,
8746 { {0xBB6D0D11, 0x31CF8C1B, 0x5F8080AE, 0xD959393C, 0x2C030E5C, 0xA50C1C13, 0x877414AC, 0x85BCA8F5},
8747 {0x0926C4A6, 0xC41AEAA9, 0x8F209D1C, 0xD1997521, 0xA39CAAC1, 0xF97741E8, 0x43B5ACAB, 0xBA0F454E} } } ,
8748 { { {0x22D21279, 0xDEA71C02, 0x5B928EF5, 0x8FDCA81B, 0x8937624B, 0x91D90022, 0x915876DE, 0xB56282EF},
8749 {0x21B27205, 0xAAC14FA8, 0x27119084, 0x41D579C0, 0x715139DE, 0x267E9622, 0xDAC01925, 0x0040BF90} } ,
8750 { {0x18F1D9D2, 0x9881E32F, 0x2A45EDBB, 0xBAE2396F, 0xA14B5301, 0x74E41019, 0x1D580FDE, 0x8C2B599B},
8751 {0x8B8F8AB8, 0xDBD3F6F9, 0xF1894BB1, 0xEF5F8931, 0x95AD3F06, 0xBD793BDF, 0x6A6EB9D8, 0x2CEBE4EE} } } } ;
8752 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8753 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8754 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8755 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8756 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8757 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8758 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8759 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8760 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8761 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8762 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8763 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8765 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1857 a000");
8766 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1858 a001");
8767 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1859 a010");
8768 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1860 a011");
8769 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1861 a100");
8770 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1862 a101");
8771 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1863 a110");
8772 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1864 a111");
8773 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1865 a200");
8774 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1866 a201");
8775 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1867 a210");
8776 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1868 a211");
8778 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1869 a000");
8779 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1870 a001");
8780 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1871 a010");
8781 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1872 a011");
8782 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1873 a100");
8783 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1874 a101");
8784 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1875 a110");
8785 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1876 a111");
8786 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1877 a200");
8787 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1878 a201");
8788 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1879 a210");
8789 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1880 a211");
8792 static const fp12_t var_a = { { { {0xF21DE4E6, 0xEA8B7DA4, 0xDA8465D6, 0x7B8405E1, 0x7B37BD53, 0x4566741E, 0x68686B65, 0x1B5FF71B},
8793 {0x3C47C2C1, 0xFF885489, 0x9A0B330C, 0x1CD5A1F3, 0xB6C4DC5D, 0xD769BFE7, 0xD03DB814, 0x72EA0081} } ,
8794 { {0x472B3243, 0x9BEA0569, 0xB85AB7B3, 0x33248F22, 0x5CFEAD89, 0x3EC8A763, 0xEF47A2E9, 0xB36BFDE2},
8795 {0x698988EC, 0x00552F61, 0x0F9CEF4C, 0x4822D2F9, 0xB8DDDF15, 0xCD45C37E, 0x286086DB, 0x41C5FAD1} } } ,
8796 { { {0x888DEDA8, 0xB65732E9, 0x7C45BBC2, 0x716D3E9F, 0x751C746F, 0xDCD38C14, 0x3030005C, 0x2BE218A5},
8797 {0x877D5C75, 0x067866B0, 0x7E96DBF6, 0x36973317, 0xBFC23B31, 0x398D6845, 0xD08726CD, 0x4BC1DEB4} } ,
8798 { {0xF18D840B, 0x82592EAA, 0x7060DA05, 0x4FBACB90, 0x8542E284, 0xCC22E47E, 0xE73CAB11, 0x82E8997F},
8799 {0x4C12DA77, 0x7B8EBD8E, 0x527B0249, 0xE5F5469B, 0x3211EECD, 0xF2D78399, 0x65B8D041, 0x80F289CC} } } ,
8800 { { {0xB1D4DCEF, 0x8986E5F7, 0x24857330, 0xB4786CF3, 0x96CE6386, 0x12EFAF3C, 0x910D37BF, 0x9C845A09},
8801 {0xAC4D7A38, 0x0721ACCB, 0x3AC0B46D, 0x9882B5FF, 0xB5895AB6, 0x13669325, 0xC416E992, 0x124B7A96} } ,
8802 { {0xBE7EE1F5, 0x95619837, 0xBAC9DD6B, 0x14E56875, 0x43F3DE87, 0xE462FEE7, 0xECC33EDE, 0x8371B7DB},
8803 {0xDC9C079F, 0x94343150, 0x21A0AFF6, 0xCE1376C8, 0x2C601A40, 0xF5AF799B, 0x0AB94ACF, 0x72ABC209} } } } ;
8804 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8805 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8806 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8807 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8808 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8809 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8810 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8811 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8812 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8813 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8814 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8815 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8817 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1881 a000");
8818 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1882 a001");
8819 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1883 a010");
8820 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1884 a011");
8821 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1885 a100");
8822 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1886 a101");
8823 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1887 a110");
8824 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1888 a111");
8825 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1889 a200");
8826 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1890 a201");
8827 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1891 a210");
8828 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1892 a211");
8830 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1893 a000");
8831 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1894 a001");
8832 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1895 a010");
8833 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1896 a011");
8834 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1897 a100");
8835 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1898 a101");
8836 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1899 a110");
8837 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1900 a111");
8838 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1901 a200");
8839 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1902 a201");
8840 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1903 a210");
8841 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1904 a211");
8844 static const fp12_t var_a = { { { {0x8C5DF2D1, 0xAE555691, 0xEA817879, 0xFDB3C4E7, 0xBBB9DDBE, 0xBFE84157, 0x741E1177, 0x0EB93B66},
8845 {0x5124C676, 0x4BDAAADC, 0x36EBD8F2, 0x492256F7, 0xBD8B3FBD, 0x2FF6FBD2, 0x9476E657, 0x50F2221B} } ,
8846 { {0x565705C9, 0x1CDA7244, 0xFEDD4EDF, 0x8A88E858, 0xBF9F27BC, 0x50FB3580, 0xE7FD81FF, 0x3C3A65C7},
8847 {0xC00F5049, 0x94BFB12B, 0xE4D68E2A, 0x0AD9E6B3, 0xCE160C05, 0x9CD104C5, 0xFEB7B521, 0x9E0C44B7} } } ,
8848 { { {0xE8C573AB, 0x6AC855B2, 0xB294F844, 0x9047B15F, 0x052E26A9, 0xA094F55C, 0x7FE7F1EE, 0x36DF7C50},
8849 {0x1FE225E9, 0x18BEF8C2, 0xDACD8B4F, 0x5225CE08, 0x026F1DD9, 0x55C3AA1C, 0x2647019A, 0x8D051804} } ,
8850 { {0x606562F1, 0x5FDED161, 0xA5B83A55, 0xBA2CF795, 0x218B3E6C, 0xD662A3D0, 0xBE9F84A5, 0x35DA3A4F},
8851 {0xA2C5F200, 0xC16B30FB, 0x04405E2D, 0xA2C67BD7, 0x3FB50B2C, 0xB1C4FA56, 0x2A1FFC69, 0x8D165EFA} } } ,
8852 { { {0x6D0F221D, 0x055CD5B8, 0xE6829B50, 0x72D0B05D, 0x9D88F6A2, 0x7AAE911A, 0x9E2A6070, 0x9C836AD0},
8853 {0xBEDB843C, 0xB7AAEE07, 0x8F727427, 0xBA5E4263, 0xAB0D7D8E, 0x4BD786AA, 0x653CB296, 0x50B74AA8} } ,
8854 { {0x23BDF5DC, 0xA7DF169D, 0x41D1C977, 0x99EBE0F6, 0x3DC98458, 0x44B3AE34, 0x1BD33EA4, 0x3D38BB7A},
8855 {0xC6614545, 0x654B1056, 0x13D7DD4A, 0x8A702774, 0x560D2292, 0x00345BC4, 0x344D6F92, 0x0C99B4EC} } } } ;
8856 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8857 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8858 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8859 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8860 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8861 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8862 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8863 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8864 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8865 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8866 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8867 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8869 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1905 a000");
8870 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1906 a001");
8871 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1907 a010");
8872 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1908 a011");
8873 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1909 a100");
8874 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1910 a101");
8875 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1911 a110");
8876 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1912 a111");
8877 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1913 a200");
8878 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1914 a201");
8879 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1915 a210");
8880 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1916 a211");
8882 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1917 a000");
8883 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1918 a001");
8884 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1919 a010");
8885 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1920 a011");
8886 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1921 a100");
8887 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1922 a101");
8888 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1923 a110");
8889 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1924 a111");
8890 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1925 a200");
8891 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1926 a201");
8892 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1927 a210");
8893 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1928 a211");
8896 static const fp12_t var_a = { { { {0xFFE0F828, 0xC9F5E2BB, 0x43F666CA, 0x8867A5AF, 0x0216F2C4, 0x2030941D, 0x35FB3B8E, 0x5669FEB2},
8897 {0xD5D99DE5, 0x71425A6B, 0xBC37D7B0, 0x8BC52557, 0xDF7567DE, 0xDABFE702, 0x361EA253, 0x211E20C7} } ,
8898 { {0x6D1C5BC1, 0x394B94A8, 0xBA5212CE, 0x67CB14D0, 0x36AF5544, 0x558EAA53, 0xA6D2B701, 0x0AF271BD},
8899 {0x997BCE52, 0xC7FD7F7A, 0x24570227, 0xF1C2030E, 0xDECBEE61, 0x4671D7ED, 0x86125240, 0x1886FDA9} } } ,
8900 { { {0xA755C2D8, 0xFE88CCDE, 0x07D40BCB, 0xEB00D815, 0xB27D41E3, 0x563B573C, 0x6D5F65D8, 0xA4F67C3A},
8901 {0x0E19C5A1, 0x8CEB2FB1, 0xC9CFCF11, 0xCA741B6C, 0xC7E98FAE, 0xCA8E27C1, 0x82C843FC, 0x8A3433E4} } ,
8902 { {0x5DF88F0A, 0x614F934D, 0x22F501BA, 0xE0F7D849, 0xE70F83B7, 0xE0F2B844, 0x469269EB, 0x3B791FF6},
8903 {0xC3CF8A5D, 0x2D0EFA64, 0x9DD95B80, 0xDEA74D9B, 0x030D974E, 0x4D901108, 0x0815A609, 0x398A2758} } } ,
8904 { { {0x0E51CCF6, 0xEA5E6AF8, 0x995D67D7, 0xA322E63C, 0xD33855E9, 0xE294F0FD, 0x2ED2A55A, 0x0EE17AEF},
8905 {0x0F4AB224, 0x52D03C30, 0x1F418BE2, 0x81ABD80F, 0x8BDF7D8E, 0xE4D9347D, 0x322B6E14, 0x10D916AC} } ,
8906 { {0x26211146, 0x64D255C1, 0x3703E673, 0x5AD186AE, 0xC388D812, 0x9FEBF756, 0xE3930547, 0x40450D47},
8907 {0x282C374F, 0xE3E97683, 0x3DE0C5AA, 0x3411D1AF, 0x445C79F7, 0xE666AE8B, 0x20D04578, 0x820C9C40} } } } ;
8908 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8909 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8910 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8911 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8912 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8913 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8914 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8915 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8916 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8917 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8918 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8919 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8921 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1929 a000");
8922 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1930 a001");
8923 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1931 a010");
8924 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1932 a011");
8925 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1933 a100");
8926 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1934 a101");
8927 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1935 a110");
8928 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1936 a111");
8929 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1937 a200");
8930 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1938 a201");
8931 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1939 a210");
8932 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1940 a211");
8934 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1941 a000");
8935 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1942 a001");
8936 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1943 a010");
8937 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1944 a011");
8938 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1945 a100");
8939 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1946 a101");
8940 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1947 a110");
8941 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1948 a111");
8942 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1949 a200");
8943 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1950 a201");
8944 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1951 a210");
8945 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1952 a211");
8948 static const fp12_t var_a = { { { {0xDDAAA7DC, 0xD6041BD9, 0x61A85BC9, 0xB9F610D4, 0x8E7459FE, 0x8D05E024, 0x6162E69B, 0x1D42FEA1},
8949 {0x81914A73, 0x09DFD8A1, 0x25E68154, 0xB8CC065E, 0x5301B759, 0xEEBA24E4, 0x2E4AF6FF, 0x3ECE17E2} } ,
8950 { {0x4723DB39, 0x8B76FD9B, 0xE254D2ED, 0xA2DD9C2C, 0xFA3967F9, 0x65E0F8A4, 0xA5125F6E, 0x75A6BDD7},
8951 {0xD15C9F66, 0x2E90503E, 0x43A78365, 0x0E44A224, 0x1D2084F4, 0xD4713AAF, 0xF8304B7D, 0x35969C7A} } } ,
8952 { { {0xB92EB233, 0x0B4C357F, 0xC79DC9F6, 0x354BDF7B, 0x0B1220B1, 0x205A6160, 0xEDB289A9, 0x58970092},
8953 {0x0C886A6B, 0xFBC998B2, 0x436DB17E, 0x765F2581, 0x472DE936, 0xB1CFC481, 0x5C3D495F, 0x9ABAFE56} } ,
8954 { {0xCA30A985, 0x1EDE60A4, 0x5E75B4C2, 0xD38E3C8F, 0x0781E60C, 0xF6C07F5A, 0xB55AC486, 0x19A0C37D},
8955 {0x0547E343, 0x59E6C2A8, 0x3FCF9C42, 0x60882451, 0x612E2F68, 0xE3F069A0, 0x36FADD5A, 0x226B694E} } } ,
8956 { { {0x4D9CA0C2, 0xCF497A6C, 0x34FB8A5D, 0x1E92BFAD, 0x72A60A61, 0x6163BE0E, 0xBAFAC5D7, 0x48C2F000},
8957 {0x583AB0F8, 0x6F0700D4, 0xE2D8D64E, 0xC40E6C2C, 0x8E751474, 0xF6392DBB, 0xA63006C1, 0xAC28D268} } ,
8958 { {0x5843FFDE, 0x660051F3, 0x154C70ED, 0xF6E8F433, 0x118D67DE, 0x1A208C96, 0xFA2C873F, 0xB785A9E5},
8959 {0x31CDC4E5, 0xA962CF95, 0x45B4EFBD, 0x587CC7E9, 0xE237D7C6, 0xD3C6FA5F, 0x466095BC, 0x41F19FF1} } } } ;
8960 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8961 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8962 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8963 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8964 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8965 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8966 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8967 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
8968 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8969 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
8970 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
8971 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
8973 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1953 a000");
8974 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1954 a001");
8975 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1955 a010");
8976 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1956 a011");
8977 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1957 a100");
8978 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1958 a101");
8979 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1959 a110");
8980 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1960 a111");
8981 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1961 a200");
8982 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1962 a201");
8983 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1963 a210");
8984 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1964 a211");
8986 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1965 a000");
8987 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1966 a001");
8988 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1967 a010");
8989 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1968 a011");
8990 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1969 a100");
8991 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1970 a101");
8992 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1971 a110");
8993 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1972 a111");
8994 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1973 a200");
8995 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1974 a201");
8996 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1975 a210");
8997 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1976 a211");
9000 static const fp12_t var_a = { { { {0x40A708C8, 0x6C57879C, 0x0F526C54, 0x7DE1A91C, 0xEA7AF463, 0x1AF6A090, 0xB104FFB6, 0x750835AC},
9001 {0xA9FD10DB, 0xADE2A91D, 0x9507C958, 0x9798000D, 0xFD3E2C0A, 0x883EF60E, 0xB344BBFF, 0x4372F9C9} } ,
9002 { {0x371C3322, 0xAA298A6A, 0x9B1C5AAD, 0x0082E2D6, 0xEE5EC062, 0x9E342A36, 0x1CBFD7D1, 0x1AFAF3B2},
9003 {0xFBE6F113, 0x6661BDC8, 0xBC1698F3, 0x00C41162, 0xC65CB61D, 0x6C9EF35C, 0x0C6D4F4C, 0x20495CFC} } } ,
9004 { { {0x39F7EA61, 0x2812489C, 0xC1072741, 0x59F3C10E, 0x9D8C1C69, 0x11EB64AD, 0xB92F20BE, 0x6613ADB0},
9005 {0xD248A8BD, 0xFC26A898, 0x400B10F4, 0x2F23351E, 0xB8A7ED3E, 0x222A980A, 0x2C2BD1E9, 0x15281A5B} } ,
9006 { {0xD2F6471D, 0x32B7CE4D, 0xFE652DCA, 0x1ECA861B, 0x6C521DB5, 0x4058B5A4, 0x84390F98, 0x41429B4E},
9007 {0xE57F100F, 0xDA35C267, 0x8DA3C056, 0x24EE4C3D, 0x3A4A045C, 0x8380632E, 0xB1E0647F, 0x1439E6AD} } } ,
9008 { { {0xE1273D82, 0x4D5B6842, 0xB0555BD3, 0xBB25F92F, 0xB18C0F99, 0x101F6A88, 0xBA6EF629, 0xA4F03357},
9009 {0x50027862, 0xA6C9DBE4, 0xD07A6457, 0x5B92B11D, 0xEBB9B000, 0x9A8761A6, 0x38EE8159, 0x7B42A3B5} } ,
9010 { {0xD4A5EEB2, 0x456C228E, 0xA88B2E1F, 0x59B18328, 0xB4B2B983, 0xC92CE1A1, 0x18163DB0, 0xB2DDFB0F},
9011 {0x21291C68, 0x4B80960B, 0x75A217D9, 0x1B29AA16, 0xB61103F2, 0xCE9D05DB, 0x1D6A613A, 0x8EFC1FCC} } } } ;
9012 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9013 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9014 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9015 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9016 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9017 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9018 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9019 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9020 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9021 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9022 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9023 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9025 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1977 a000");
9026 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1978 a001");
9027 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1979 a010");
9028 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1980 a011");
9029 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1981 a100");
9030 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1982 a101");
9031 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1983 a110");
9032 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1984 a111");
9033 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1985 a200");
9034 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1986 a201");
9035 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1987 a210");
9036 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1988 a211");
9038 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1989 a000");
9039 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1990 a001");
9040 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1991 a010");
9041 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1992 a011");
9042 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1993 a100");
9043 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1994 a101");
9044 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1995 a110");
9045 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1996 a111");
9046 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1997 a200");
9047 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1998 a201");
9048 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1999 a210");
9049 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2000 a211");
9052 static const fp12_t var_a = { { { {0xE0C873F0, 0x2158C688, 0x46498A44, 0xAB7AB05D, 0x4FE091F2, 0xDE7266A7, 0x9C488A91, 0xB611224A},
9053 {0x2F323C9B, 0xF23F00FE, 0x8020A4E2, 0x37320EBA, 0x1239EB4D, 0xB3E9A435, 0xFF2816D3, 0xB8F0C55F} } ,
9054 { {0x1D9D9952, 0x2C72C6D9, 0x58D59ACD, 0x92A7C79F, 0x46BA4971, 0x09928194, 0x432A0151, 0x8286CED6},
9055 {0xCD8B9B96, 0x042D9402, 0x87F07A0B, 0x9F3C8A48, 0x11E594E2, 0x26A9EF16, 0x39D2360C, 0x2F0D7B63} } } ,
9056 { { {0xDE5D0CD8, 0xEE71E406, 0xEBC30F1D, 0x30985AEB, 0x9FA08964, 0x43CBB789, 0x48D879AF, 0x254CCFB3},
9057 {0x17293057, 0x28D4B05A, 0xB8A2AE66, 0xCB6159E1, 0x553BAE56, 0x34067DBD, 0x696B2D93, 0x53311CB1} } ,
9058 { {0x57994CAA, 0x31154962, 0x774EAA4F, 0xD2E459D2, 0x4B1B8B59, 0xC92ED839, 0xEA1AD64A, 0x3884ABD3},
9059 {0x1A2033C8, 0x4964820F, 0x7F7D9A38, 0x04A1A1F4, 0xC5408461, 0x43DD636C, 0xECEF1871, 0x676E2A42} } } ,
9060 { { {0x835E1764, 0xFB555B8D, 0x057B1CFE, 0x52C81DE0, 0xC89AE824, 0x0711B650, 0xA5CC52E0, 0x79D914C6},
9061 {0x4D7ED766, 0x91A619C4, 0x0C839F74, 0x0B92F952, 0x8727D007, 0xEBB65E95, 0x1F3A59BE, 0x1BD26B08} } ,
9062 { {0x50D1E4D3, 0x98AE06E9, 0xE83DE4FB, 0x597B2E4B, 0xE3E63DE6, 0xC3D0BD72, 0xB77BC7F4, 0x8BC0AABA},
9063 {0x8AA2D6D1, 0x6689BC2A, 0x4746A9CF, 0x1A7545E1, 0xFC9E19A3, 0xFA5283E4, 0x5FD3B1B7, 0x8F7612CA} } } } ;
9064 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9065 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9066 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9067 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9068 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9069 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9070 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9071 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9072 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9073 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9074 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9075 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9077 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2001 a000");
9078 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2002 a001");
9079 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2003 a010");
9080 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2004 a011");
9081 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2005 a100");
9082 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2006 a101");
9083 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2007 a110");
9084 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2008 a111");
9085 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2009 a200");
9086 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2010 a201");
9087 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2011 a210");
9088 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2012 a211");
9090 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2013 a000");
9091 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2014 a001");
9092 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2015 a010");
9093 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2016 a011");
9094 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2017 a100");
9095 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2018 a101");
9096 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2019 a110");
9097 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2020 a111");
9098 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2021 a200");
9099 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2022 a201");
9100 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2023 a210");
9101 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2024 a211");
9104 static const fp12_t var_a = { { { {0x7636C2E7, 0x90F54B62, 0xFEF7AFF0, 0x1BF975AD, 0xF44F96C4, 0xF23005F9, 0x9C68ECD5, 0x3957CF2A},
9105 {0x3FC69CD3, 0x7364D1B5, 0x8D0285ED, 0x268F3F45, 0x794339C3, 0x98791C66, 0x888B2709, 0x0BC3E010} } ,
9106 { {0x28390DA4, 0xAD58B80D, 0xC377DF41, 0xE4A2852B, 0xEAAC2164, 0xD0A2DA4C, 0x919FB2D2, 0x19F92FBD},
9107 {0xC5C525B6, 0xA190BD9A, 0x4703C71F, 0xE93185E6, 0xDF5928EF, 0x11CAF208, 0x78FED4F8, 0x2F9F41F3} } } ,
9108 { { {0xFF19AC78, 0xF69747EC, 0x6A20B372, 0x7DAB2A3D, 0xF612CFCB, 0xD0BB8B38, 0xD464E5D6, 0x33B2C21A},
9109 {0x93AA917E, 0x17A7D9BA, 0xA2C041B9, 0x2321EC92, 0x533E66A2, 0x0090AA93, 0x8D2B7045, 0xACAEB8C1} } ,
9110 { {0x0F1C666E, 0xB4E5754E, 0xC062D417, 0xC7C72C71, 0xD8C37DBB, 0xA9DBDCC5, 0x6163062D, 0x56F1392F},
9111 {0x3706816D, 0x4210CCED, 0x8EB0DFEC, 0x9E98E4CB, 0x3EBF2F13, 0x4B498FC8, 0xA245BCE2, 0x456B93CB} } } ,
9112 { { {0xEADE79B9, 0x7280732D, 0x2B8D4FB2, 0xBB484D42, 0xF073C44E, 0x5DC68D77, 0xF5864A28, 0x1E8E32ED},
9113 {0x2EF438E0, 0xC5E95012, 0x0CC5BC04, 0xE5151282, 0x953A888D, 0xF6FFB070, 0x94BBEE90, 0x12FA042F} } ,
9114 { {0x86827166, 0xF8E39C29, 0xCCF2FEDE, 0xD07B8621, 0xD70A722E, 0x200FEBD9, 0x4D5EB753, 0x98451C87},
9115 {0x87017F49, 0x8E8408DA, 0x88AEE694, 0x416A081D, 0x4092D84A, 0x6B951C05, 0xC252B61E, 0x561E76EB} } } } ;
9116 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9117 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9118 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9119 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9120 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9121 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9122 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9123 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9124 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9125 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9126 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9127 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9129 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2025 a000");
9130 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2026 a001");
9131 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2027 a010");
9132 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2028 a011");
9133 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2029 a100");
9134 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2030 a101");
9135 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2031 a110");
9136 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2032 a111");
9137 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2033 a200");
9138 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2034 a201");
9139 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2035 a210");
9140 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2036 a211");
9142 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2037 a000");
9143 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2038 a001");
9144 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2039 a010");
9145 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2040 a011");
9146 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2041 a100");
9147 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2042 a101");
9148 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2043 a110");
9149 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2044 a111");
9150 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2045 a200");
9151 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2046 a201");
9152 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2047 a210");
9153 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2048 a211");
9156 static const fp12_t var_a = { { { {0xBA4A4C99, 0x4FA297E9, 0x2FDC2EA7, 0xA477220A, 0x11691A2B, 0x6D296D81, 0x277357C7, 0x547637A9},
9157 {0x1A645A8C, 0xC539D6F8, 0x05D28287, 0x879154EA, 0xBA3465CA, 0x3E73EBBB, 0xC74E29A5, 0x7E2C83AB} } ,
9158 { {0x991AE610, 0xC0E1A594, 0x22CFB2BF, 0x1A3D12FF, 0x639A4EFE, 0xFB5864C4, 0x80388FFC, 0x23454DCA},
9159 {0x9B6C36B2, 0xD34F9573, 0xF1C19035, 0xB66718DA, 0x6701A91C, 0x463B4340, 0x42A536EF, 0x79B22CCE} } } ,
9160 { { {0x78C45DC0, 0xD4ECF35F, 0xB15E2F3A, 0x53C77C67, 0xD3253E1D, 0xC4418D3D, 0x93DA6989, 0x16AD6DB4},
9161 {0xFE02F867, 0x60791384, 0xF7857D70, 0x10CB1839, 0xEC7A5980, 0x9EB74908, 0x0EED998C, 0x789CE624} } ,
9162 { {0xEE59AFCE, 0x54C2694A, 0x2AFB775C, 0xAF1B32ED, 0xA65D4CB6, 0x0178E95C, 0xDF0EBA88, 0x7F8F51F9},
9163 {0x19CA5CBD, 0x5676FB16, 0x31F38C52, 0x029AD583, 0xD934CCAA, 0xA30A22E6, 0x090F6A86, 0x34308D6A} } } ,
9164 { { {0x6C4F4E56, 0x4AB676FF, 0x464A2104, 0xBC47557D, 0x0CCD0FC9, 0x2EB07FB4, 0xE0C53263, 0x33AFC1C0},
9165 {0x844D4D95, 0xDC4EF930, 0x4AD30D5A, 0x881D14B9, 0x518F0BA6, 0xDF1EDE6E, 0x4FB22479, 0x8A8438D1} } ,
9166 { {0x2EAA2C58, 0xFCAC9C9D, 0x4D4E6473, 0x94CBF850, 0xC6F38034, 0xF92E8A49, 0x54927C34, 0x33285CB4},
9167 {0xD095C5E0, 0x5E8DDCC8, 0x3006198C, 0x6964A99E, 0xBB2F4BFA, 0x3B77BBCC, 0xBFD32777, 0x3DC2E155} } } } ;
9168 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9169 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9170 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9171 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9172 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9173 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9174 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9175 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9176 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9177 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9178 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9179 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9181 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2049 a000");
9182 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2050 a001");
9183 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2051 a010");
9184 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2052 a011");
9185 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2053 a100");
9186 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2054 a101");
9187 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2055 a110");
9188 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2056 a111");
9189 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2057 a200");
9190 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2058 a201");
9191 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2059 a210");
9192 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2060 a211");
9194 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2061 a000");
9195 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2062 a001");
9196 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2063 a010");
9197 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2064 a011");
9198 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2065 a100");
9199 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2066 a101");
9200 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2067 a110");
9201 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2068 a111");
9202 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2069 a200");
9203 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2070 a201");
9204 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2071 a210");
9205 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2072 a211");
9208 static const fp12_t var_a = { { { {0x6294E79B, 0xF7546A0E, 0xD187FDE3, 0x20F57A90, 0xDEBE08FC, 0x67997FB4, 0xB74A39CF, 0x61B0ABC2},
9209 {0x523499F1, 0x83247182, 0x6400461C, 0xF8072ED1, 0x12289696, 0xC97E6F86, 0x74CEB146, 0x39039A23} } ,
9210 { {0x9E3D06CF, 0x021F36C9, 0x1DFBB6B6, 0xC1929EEA, 0x98CCBF45, 0xB1E43B2B, 0x85E8326A, 0x0E62B184},
9211 {0xDF899866, 0x3565CCFE, 0x00CC0BAE, 0xA5D04527, 0xE5F95319, 0xE8D862F7, 0x4D707379, 0x35E6F3DC} } } ,
9212 { { {0x7AF96943, 0x25DAF9B7, 0x698D45E5, 0x3BF1C625, 0x22DF391F, 0x4985CB65, 0xFE3EBF32, 0x3FB7DB63},
9213 {0x111CE83F, 0x9B280FE1, 0xAFA72344, 0x682D625C, 0x572FB283, 0x25310B8C, 0x6585C752, 0x101B064A} } ,
9214 { {0xACBC0C25, 0xAAA28B1F, 0xAD73CB4C, 0x61915805, 0xEDB72744, 0xE9231833, 0xDD2996D6, 0x0B332595},
9215 {0x7833B9F6, 0x210A8E2C, 0x60289895, 0x0A992611, 0xCFDDF208, 0x630B4261, 0x996F7CC1, 0x8CA3A0CE} } } ,
9216 { { {0xE73B2019, 0x1913B8A8, 0xC96315DE, 0x6492D8EA, 0x50D844D6, 0x87036151, 0x9FFE009E, 0x3DD40D23},
9217 {0x69DDDD80, 0x6E4DC43B, 0x93B7C9AF, 0xDF54A29A, 0x47C3E044, 0xB913973C, 0x082F2429, 0x95B213B4} } ,
9218 { {0xFE6C34DB, 0x3D2E8CCD, 0x63084097, 0x7F6714C9, 0xEA6AE05F, 0x66BB6AC8, 0x42C05382, 0xB3C701D1},
9219 {0x1B63F35C, 0x6BC33593, 0x360CFE1E, 0x6823D9C9, 0xA42FB20C, 0x7FCEFC05, 0xCE95D2A1, 0x9B54C8DE} } } } ;
9220 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9221 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9222 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9223 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9224 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9225 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9226 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9227 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9228 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9229 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9230 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9231 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9233 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2073 a000");
9234 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2074 a001");
9235 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2075 a010");
9236 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2076 a011");
9237 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2077 a100");
9238 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2078 a101");
9239 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2079 a110");
9240 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2080 a111");
9241 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2081 a200");
9242 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2082 a201");
9243 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2083 a210");
9244 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2084 a211");
9246 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2085 a000");
9247 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2086 a001");
9248 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2087 a010");
9249 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2088 a011");
9250 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2089 a100");
9251 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2090 a101");
9252 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2091 a110");
9253 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2092 a111");
9254 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2093 a200");
9255 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2094 a201");
9256 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2095 a210");
9257 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2096 a211");
9260 static const fp12_t var_a = { { { {0x28D6E488, 0x1F88FC1B, 0xDBA005C4, 0x6654A7C3, 0x94D83B95, 0xFA01E5F2, 0xC2A5A977, 0xB6EA390E},
9261 {0x02C57FF7, 0x434990E9, 0x7672BACF, 0x6669B83A, 0x0C369503, 0x4F8863DF, 0x47375885, 0x5094B722} } ,
9262 { {0x7931A915, 0x061ABC8A, 0xFFF165A1, 0xFB34A4D4, 0x129484DC, 0xFBBD7989, 0x1C71DDAC, 0x198D0956},
9263 {0xD30A8EFF, 0x5C584793, 0xC19BD33E, 0xDA3DC466, 0xE2FC2681, 0x00E6BB5C, 0x1138F5E8, 0xA58A667C} } } ,
9264 { { {0xE6BCAAD8, 0x7DD2B8C6, 0x0715E071, 0x4B8DD402, 0x1568E4AE, 0x68969143, 0x4D3EC65A, 0x32814C67},
9265 {0x2267C9BF, 0x62A7A99B, 0xEDF631C6, 0xF2687C5C, 0x782AD58E, 0xB2146096, 0xC8FF8400, 0x105A67FE} } ,
9266 { {0x2763D884, 0x4BD0CE92, 0xBDA31DB6, 0xF0F337C3, 0xDF3738E6, 0x6B622A4A, 0x93EF94E8, 0x808E94FF},
9267 {0x48658B0F, 0x3B6536E8, 0x68D76603, 0x67C92DA1, 0xAFA5EEF7, 0xAE3971FE, 0x4CA020C6, 0x31A6B8D6} } } ,
9268 { { {0xEE591160, 0x7A9CEA03, 0x32D099AD, 0x536D524E, 0xF96DA682, 0x8CF98733, 0xEAC41F11, 0x66BCA817},
9269 {0x967D80B5, 0x1273E1B3, 0xDF96BDD4, 0xC3B91270, 0xB00414CD, 0x9D428063, 0x37773E09, 0x8BD4F6C5} } ,
9270 { {0xB023AB26, 0x531076C8, 0x06EDD1BC, 0x6830D03E, 0x7B2DEF7B, 0x7E83608E, 0x906434BC, 0x6F2716AE},
9271 {0xBFF4F3AE, 0x515B98DC, 0xBE9B76E3, 0x05B99C4E, 0xE0DC57FC, 0x56D4E9DB, 0x260D680F, 0x0ED77F73} } } } ;
9272 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9273 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9274 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9275 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9276 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9277 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9278 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9279 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9280 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9281 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9282 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9283 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9285 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2097 a000");
9286 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2098 a001");
9287 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2099 a010");
9288 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2100 a011");
9289 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2101 a100");
9290 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2102 a101");
9291 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2103 a110");
9292 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2104 a111");
9293 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2105 a200");
9294 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2106 a201");
9295 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2107 a210");
9296 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2108 a211");
9298 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2109 a000");
9299 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2110 a001");
9300 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2111 a010");
9301 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2112 a011");
9302 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2113 a100");
9303 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2114 a101");
9304 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2115 a110");
9305 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2116 a111");
9306 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2117 a200");
9307 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2118 a201");
9308 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2119 a210");
9309 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2120 a211");
9312 static const fp12_t var_a = { { { {0xC3060ED8, 0x5F3A345E, 0x47E17135, 0x4E5CF865, 0x6A319C14, 0x3C28E3E7, 0xC00ED852, 0xADAE1235},
9313 {0xE12BEB6F, 0x9DE1F103, 0x3329BBC7, 0xA87F1544, 0xE008FAE7, 0xE6DFA794, 0xB8EA954B, 0x1A3C231F} } ,
9314 { {0xBC88C4DC, 0x68DDDC2F, 0x4171D1BD, 0x681A0CF0, 0x0C0060E3, 0xFDFF2CF4, 0xFA8C8485, 0x6F17BE8B},
9315 {0xA634F0EB, 0xE43C7F45, 0xD7806A8C, 0xE159EB34, 0x452C344B, 0xB7685111, 0x082F4040, 0x376FC014} } } ,
9316 { { {0x6FBE893C, 0x7500B268, 0x820EA614, 0x57AEDDBB, 0xE53ADF47, 0x3AA3A502, 0xF8015D43, 0x481D6861},
9317 {0x0DBBAD0A, 0x4AA89398, 0x28B84D90, 0xBD462FBA, 0x833CF183, 0x4FBEE2C3, 0x7434439F, 0x00008CA4} } ,
9318 { {0xF29B8BB4, 0xD17E9918, 0xD6A7C864, 0xFA854B06, 0xBBEE6DE4, 0xAEBA9F82, 0xB9B93628, 0x08827A36},
9319 {0xA4BB123D, 0x3CF2F4C0, 0x1783AF17, 0x04F94C91, 0x0593D0C5, 0x97677664, 0xD98B4C9D, 0x357BE398} } } ,
9320 { { {0x3818AC87, 0x04AA3120, 0x7701300F, 0x6237F289, 0x3F01368C, 0x552EE0C6, 0x39DA9995, 0x060968EA},
9321 {0x608F5568, 0x6262F53C, 0x50B25B95, 0xF79CF409, 0x701313FB, 0xA772C6D3, 0x13061B3C, 0x0A4ABA93} } ,
9322 { {0x9A2E0161, 0xD6911577, 0x59645C01, 0x13DA23D7, 0x5C0A084C, 0x5F3A3D5E, 0x75B0E208, 0x07DB5A50},
9323 {0x9C3B986D, 0xA349376D, 0x3F037207, 0x50E3AF9B, 0xA27B9F8D, 0xCA09DCCC, 0x017F7939, 0x1CC202EC} } } } ;
9324 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9325 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9326 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9327 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9328 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9329 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9330 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9331 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9332 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9333 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9334 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9335 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9337 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2121 a000");
9338 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2122 a001");
9339 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2123 a010");
9340 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2124 a011");
9341 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2125 a100");
9342 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2126 a101");
9343 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2127 a110");
9344 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2128 a111");
9345 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2129 a200");
9346 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2130 a201");
9347 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2131 a210");
9348 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2132 a211");
9350 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2133 a000");
9351 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2134 a001");
9352 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2135 a010");
9353 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2136 a011");
9354 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2137 a100");
9355 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2138 a101");
9356 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2139 a110");
9357 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2140 a111");
9358 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2141 a200");
9359 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2142 a201");
9360 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2143 a210");
9361 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2144 a211");
9364 static const fp12_t var_a = { { { {0xEC50A4C0, 0x51EEDABF, 0x0B17FC64, 0xB0B7AD62, 0x98383E45, 0x45153350, 0x2BE4794F, 0x9C29EF6B},
9365 {0x45062DCD, 0x2B3D1AD4, 0xBF4121B5, 0x83672203, 0x72DC0948, 0xAB38D7B4, 0xFE7FF40A, 0x3566FE5A} } ,
9366 { {0x80B7CEA4, 0xBEAF31C8, 0xAF2D0176, 0xF465E380, 0x12A1492D, 0xCA899E52, 0xD7472DF2, 0x2349AD48},
9367 {0x995FC079, 0x60A29198, 0x8C1DB58A, 0xDFBF7B86, 0x962C94C8, 0x112B9A85, 0xA8D5625C, 0x2D2D3C8A} } } ,
9368 { { {0x0C8F1FE4, 0xA734481E, 0x29B128AC, 0x1127EF30, 0x21FBE996, 0xE1617AB4, 0xF744A934, 0x661E4340},
9369 {0x6698FB96, 0xED47E493, 0xD8F416A7, 0x6A8D23A8, 0xB5557A27, 0x230E47B3, 0x1C9AF623, 0x085B16A5} } ,
9370 { {0x26974671, 0xD321D46E, 0xC38FBAC4, 0x6BB6F0CC, 0x0A67777C, 0xC477A7E2, 0x062F090A, 0xB5E0C9E6},
9371 {0xE0EE0DD1, 0xBC41E282, 0x9152AF61, 0xA6359710, 0xB65C1BEB, 0x3A6BA0DD, 0x77332164, 0x3760DDBA} } } ,
9372 { { {0xA39EE6F9, 0x4DE0510A, 0x0DE5BA39, 0xA06961BE, 0x53A0D69D, 0xECA5C585, 0xC3328817, 0xA33DCB79},
9373 {0xA5D9CFA9, 0xF37DBCE4, 0x5FBE2165, 0x8DF7F2F5, 0xB8AC41B6, 0xE1B28709, 0xD5233282, 0x98E9EFA6} } ,
9374 { {0x98D37772, 0x5C2D3E51, 0xD2C94F6A, 0x9340AFEC, 0xC04DD655, 0x1257F40C, 0x2B262AED, 0x00694BB2},
9375 {0xDFA69590, 0xFDFD7C8F, 0x5DDEE26B, 0xD44625B6, 0xD2997737, 0x040D9AAF, 0xD5AAAFDB, 0x3521C123} } } } ;
9376 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9377 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9378 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9379 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9380 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9381 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9382 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9383 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9384 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9385 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9386 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9387 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9389 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2145 a000");
9390 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2146 a001");
9391 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2147 a010");
9392 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2148 a011");
9393 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2149 a100");
9394 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2150 a101");
9395 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2151 a110");
9396 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2152 a111");
9397 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2153 a200");
9398 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2154 a201");
9399 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2155 a210");
9400 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2156 a211");
9402 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2157 a000");
9403 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2158 a001");
9404 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2159 a010");
9405 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2160 a011");
9406 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2161 a100");
9407 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2162 a101");
9408 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2163 a110");
9409 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2164 a111");
9410 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2165 a200");
9411 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2166 a201");
9412 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2167 a210");
9413 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2168 a211");
9416 static const fp12_t var_a = { { { {0xF7E72A04, 0x8CBC4A2F, 0x4AAC5CA1, 0x51E40EA7, 0x036EF70C, 0x32B67B3E, 0x3A395CD1, 0x2318D8AB},
9417 {0x0D57D311, 0x8267FB88, 0x8D4C2F1C, 0x08E6597C, 0xF7E941E9, 0xA88DAF37, 0x525B8849, 0x27F58552} } ,
9418 { {0x7D3A3350, 0xA16D4CF0, 0x43776857, 0x750C4076, 0x5C185F9E, 0x7A1EDE96, 0x2D6292DA, 0x8CF9F51C},
9419 {0x3D62481B, 0x6C93AB88, 0x5C6175D6, 0x71F18F79, 0x11E7B4BC, 0x361B2D90, 0xAA25BEF8, 0xB0F0701B} } } ,
9420 { { {0xD6744542, 0xA990A772, 0xC8B38E8C, 0x66E411D4, 0x55EBB684, 0x6FEBD2C0, 0x01F5D2D9, 0x9CF5DF2F},
9421 {0x46E53FDD, 0xE36272C1, 0xCC29F143, 0xE3AB215A, 0x9A676A86, 0x402896CE, 0x7A74D4F7, 0x3C302635} } ,
9422 { {0x1A611544, 0xEBD36857, 0xA9900790, 0x06B4A3C3, 0xB25C29AD, 0xCB684BC0, 0xB48C6CA0, 0x24F9BA23},
9423 {0x7AEBFF0C, 0x52B6562A, 0x7669144A, 0x4B283378, 0xA1CFD258, 0xA5FDB020, 0x1F46E574, 0x00F5D2BB} } } ,
9424 { { {0xC23E414D, 0xEFD317CB, 0x70ADF1A8, 0xAEF47355, 0x75FF875D, 0x776291B2, 0x42DBC285, 0x6705CA39},
9425 {0xF8CC5E2B, 0x5F92A7AB, 0x8334F63D, 0x25C0A1FB, 0xC8B36A05, 0x7290C3FF, 0x36B76136, 0x5F31D22C} } ,
9426 { {0x3E829584, 0x7F4D2E65, 0xEBBD5DF8, 0x86BD3D2D, 0xE6E9867D, 0xBD5455E7, 0x686032CA, 0x8485CCDF},
9427 {0xCAB8D73F, 0xF563964E, 0x641B608F, 0xB7788659, 0xF847C70A, 0x0A48DCEE, 0x1B9A631A, 0x99C993A3} } } } ;
9428 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9429 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9430 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9431 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9432 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9433 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9434 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9435 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9436 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9437 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9438 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9439 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9441 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2169 a000");
9442 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2170 a001");
9443 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2171 a010");
9444 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2172 a011");
9445 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2173 a100");
9446 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2174 a101");
9447 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2175 a110");
9448 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2176 a111");
9449 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2177 a200");
9450 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2178 a201");
9451 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2179 a210");
9452 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2180 a211");
9454 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2181 a000");
9455 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2182 a001");
9456 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2183 a010");
9457 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2184 a011");
9458 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2185 a100");
9459 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2186 a101");
9460 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2187 a110");
9461 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2188 a111");
9462 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2189 a200");
9463 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2190 a201");
9464 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2191 a210");
9465 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2192 a211");
9468 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9469 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9470 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9471 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9472 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9473 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9474 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9475 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9476 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9477 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9478 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9479 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9480 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9481 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9482 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9483 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9484 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9485 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9486 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9487 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9488 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9489 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9490 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9491 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9492 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9493 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9494 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9495 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9496 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9497 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9498 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9499 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9500 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9501 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9502 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9503 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9505 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2193 a000");
9506 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2194 a001");
9507 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2195 a010");
9508 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2196 a011");
9509 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2197 a100");
9510 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2198 a101");
9511 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2199 a110");
9512 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2200 a111");
9513 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2201 a200");
9514 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2202 a201");
9515 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2203 a210");
9516 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2204 a211");
9519 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9520 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9521 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9522 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9523 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9524 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9525 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9526 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9527 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9528 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9529 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9530 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9531 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9532 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9533 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9534 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9535 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9536 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9537 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9538 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9539 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9540 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9541 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9542 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9543 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9544 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9545 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9546 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9547 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9548 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9549 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9550 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9551 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9552 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9553 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9554 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9556 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2205 a000");
9557 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2206 a001");
9558 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2207 a010");
9559 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2208 a011");
9560 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2209 a100");
9561 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2210 a101");
9562 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2211 a110");
9563 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2212 a111");
9564 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2213 a200");
9565 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2214 a201");
9566 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2215 a210");
9567 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2216 a211");
9570 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9571 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9572 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9573 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9574 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9575 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9576 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9577 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9578 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9579 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9580 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9581 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9582 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9583 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9584 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9585 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9586 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9587 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9588 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9589 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9590 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9591 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9592 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9593 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9594 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9595 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9596 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9597 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9598 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9599 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9600 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9601 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9602 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9603 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9604 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9605 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9607 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2217 a000");
9608 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2218 a001");
9609 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2219 a010");
9610 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2220 a011");
9611 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2221 a100");
9612 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2222 a101");
9613 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2223 a110");
9614 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2224 a111");
9615 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2225 a200");
9616 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2226 a201");
9617 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2227 a210");
9618 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2228 a211");
9621 static const fp12_t var_a = { { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
9622 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9623 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9624 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9625 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9626 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9627 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9628 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9629 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9630 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9631 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9632 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9633 static const fp12_t var_b = { { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
9634 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9635 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9636 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9637 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9638 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9639 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9640 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9641 { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
9642 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9643 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9644 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9645 static const fp12_t var_expected = { { { {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
9646 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9647 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9648 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9649 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9650 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9651 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9652 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
9653 { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
9654 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
9655 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
9656 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
9658 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2229 a000");
9659 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2230 a001");
9660 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2231 a010");
9661 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2232 a011");
9662 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2233 a100");
9663 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2234 a101");
9664 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2235 a110");
9665 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2236 a111");
9666 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2237 a200");
9667 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2238 a201");
9668 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2239 a210");
9669 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2240 a211");
9672 static const fp12_t var_a = { { { {0x63B42FC6, 0xA70AC67A, 0xA98710DD, 0x3076E635, 0x8AEF9F15, 0x145C93E1, 0xE4534203, 0x0D1A08B2},
9673 {0xCACA524D, 0x3CDC872F, 0x1A9FE452, 0xD6BDA150, 0xAA90DC97, 0x045802F4, 0x6C7F85D7, 0x1A7301E4} } ,
9674 { {0x6BC205E5, 0xA977F70D, 0xF3B19230, 0xC5E63313, 0x23FB0ABB, 0x27C57323, 0x7270ED5E, 0x01A47C68},
9675 {0x4A4C6CA5, 0x9FEBD945, 0x3F37921D, 0x710A5B48, 0xEF6019C5, 0x3D0B734E, 0x86CA4BFD, 0x18492588} } } ,
9676 { { {0x86BEBC1C, 0x13CBD397, 0x5968648A, 0x2DA55F12, 0xB95EE022, 0xFD3C2773, 0x8FB4011B, 0x43A41836},
9677 {0x02E3AD78, 0xC5FB8EFD, 0x2677D48D, 0xED528EFB, 0x1511E3D8, 0xC4349567, 0xC61E5D80, 0x383FC493} } ,
9678 { {0x49BF71C7, 0xAFFCA9AD, 0x2957108B, 0xCAC7A58D, 0x9221CE44, 0xCFC098BD, 0xB941CE1C, 0x24FCC43C},
9679 {0xC8D72FA9, 0x97E61FF7, 0xE9134F70, 0xB8A35CB3, 0xAA8E9F0A, 0xF87EB8B0, 0x096F8A8C, 0x33C047CC} } } ,
9680 { { {0xAE2FD8ED, 0x8255E78C, 0x6B806847, 0x75F5B00A, 0x2E50F1A8, 0x0A2E155E, 0x6C31E836, 0x64027195},
9681 {0x713F40CA, 0x3D2C2BF1, 0x8A01E7E5, 0xA895BC57, 0x2A090B9B, 0x6CE096FB, 0xEB73B49C, 0x7216A1DE} } ,
9682 { {0xA58FADE6, 0xD798A876, 0x71D401C1, 0xD7D2CEA9, 0x574ED3C5, 0x7372FD23, 0xE54A063A, 0xA5D74887},
9683 {0xEE76A566, 0x23E2D33F, 0xCDF5A447, 0x97F9BAA5, 0x51DBC1F7, 0x0342EFE9, 0x8BD55C3B, 0x72231AED} } } } ;
9684 static const fp12_t var_b = { { { {0xE57F5374, 0x38EA0A53, 0x1CB05875, 0x23C7E116, 0x65088452, 0xFFDB966D, 0xA20B07A6, 0xB24536BE},
9685 {0x9673D85D, 0xF1D20BDC, 0x3202C665, 0xD95989BD, 0x182D0870, 0xD158F0ED, 0x04BC06C3, 0x20E11F4D} } ,
9686 { {0xA1084BDD, 0x6EC461E0, 0xE3DE129D, 0xA79F6628, 0x4AF01942, 0xEB685983, 0xDFBD0801, 0x225432F9},
9687 {0x3D3AB456, 0x9068F621, 0xD40DC617, 0xDBAE8245, 0x0FD42E09, 0x35515FB6, 0x340274D8, 0x31105BCC} } } ,
9688 { { {0xD3EE61EE, 0x7E1E6874, 0xD234C9A4, 0x3E0C75EB, 0x869C90D3, 0xA297D60A, 0x19FAA630, 0xB4CFA39C},
9689 {0x7C381733, 0x26D5365D, 0x5B749881, 0x98DBFD58, 0x59F24B3C, 0xB89F8665, 0x38C1B19E, 0x84BEC287} } ,
9690 { {0x6B52C121, 0xB6AF56BF, 0x39BAFCEF, 0x8FFAE111, 0xE3400DC7, 0xEC361E2C, 0x8E524A65, 0x0B957242},
9691 {0x82ACC15F, 0x225F28CE, 0xE3AF9DDA, 0xC5F7164F, 0x0A8D4F4E, 0x4770B655, 0xADC8CAE9, 0x237E429C} } } ,
9692 { { {0xBD842298, 0x9EDCBB21, 0x23A7A1E7, 0xBC490A7A, 0x65F33EAE, 0xC25541B0, 0x7A28A2AD, 0x39518DB7},
9693 {0xCB8E3427, 0x26ED0821, 0x6C2EDF6A, 0xF069503E, 0x161F7984, 0xE7DAFE24, 0x6F43434A, 0x279DAC32} } ,
9694 { {0x242C2504, 0xFD5D6EBE, 0x87C61396, 0x4BC3CD9D, 0xFA1A5F2C, 0x527382C7, 0xDA67590B, 0x0182DD21},
9695 {0x041BF2CE, 0x21B0827C, 0x8FA4D003, 0x4CE0CF82, 0x14C39DCF, 0x066A6F2E, 0x9C942214, 0x18F98DA3} } } } ;
9696 static const fp12_t var_expected = { { { {0xE7074E9F, 0xE106471C, 0xF1BF8A0B, 0x412D1AAA, 0x9C1599B2, 0x18D7CDE3, 0x463F6D81, 0x054BA0AF},
9697 {0x613E2AAA, 0x2EAE930C, 0x4CA2AAB8, 0xB0172B0D, 0xC2BDE508, 0xD5B0F3E1, 0x713B8C9A, 0x3B542131} } ,
9698 { {0x0CCA51C2, 0x183C58EE, 0xD78FA4CE, 0x6D85993C, 0x6EEB23FE, 0x132DCCA6, 0x522DF560, 0x23F8AF62},
9699 {0x878720FB, 0x3054CF66, 0x13455835, 0x4CB8DD8E, 0xFF3447CF, 0x725CD304, 0xBACCC0D5, 0x49598154} } } ,
9700 { { {0xF880E96F, 0x92FBB25A, 0x57254EE7, 0x58A0285D, 0xEC18E740, 0xA473A112, 0x698FCB23, 0x3E601D10},
9701 {0x1CEF9010, 0xEDE23BA9, 0xAD748DC7, 0x731CDFB2, 0x1B21A560, 0x8173BF61, 0xBEC132F6, 0x02EAE858} } ,
9702 { {0xB51232E8, 0x66AC006C, 0x63120D7B, 0x5AC2869E, 0x7561DC0C, 0xBBF6B6EA, 0x47941882, 0x3092367F},
9703 {0x4B83F108, 0xBA4548C6, 0xCCC2ED4A, 0x7E9A7303, 0xB51BEE59, 0x3FEF6F05, 0xB7385576, 0x573E8A68} } } ,
9704 { { {0x6BB3FB85, 0x2132A2AE, 0x8F280A2F, 0x323EBA84, 0x94443057, 0xCC83570E, 0xE65A8AE3, 0x9D53FF4C},
9705 {0x3CCD74F1, 0x64193413, 0xF630C74F, 0x98FF0C95, 0x40288520, 0x54BB951F, 0x5AB6F7E7, 0x99B44E11} } ,
9706 { {0xC9BBD2EA, 0xD4F61734, 0xF99A1558, 0x23969C46, 0x516932F2, 0xC5E67FEB, 0xBFB15F45, 0xA75A25A9},
9707 {0xF2929834, 0x459355BB, 0x5D9A744A, 0xE4DA8A28, 0x669F5FC6, 0x09AD5F17, 0x28697E4F, 0x8B1CA891} } } } ;
9709 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2241 a000");
9710 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2242 a001");
9711 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2243 a010");
9712 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2244 a011");
9713 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2245 a100");
9714 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2246 a101");
9715 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2247 a110");
9716 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2248 a111");
9717 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2249 a200");
9718 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2250 a201");
9719 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2251 a210");
9720 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2252 a211");
9723 static const fp12_t var_a = { { { {0x11BEFF20, 0xDD1FEC30, 0x1EDE9542, 0xCADAB3EE, 0xD14EF90C, 0x1C2F4F1A, 0x2CB42DF0, 0x3C1E5E39},
9724 {0x2AEBFD3E, 0x38997185, 0xCD5A8EB2, 0xE7777355, 0x77AD18D9, 0x28B4ACF2, 0x9216EFF3, 0x914F02E2} } ,
9725 { {0xFCA7805F, 0x85868678, 0x8AEEA9BD, 0x2E0EB862, 0x051C05FD, 0xD2B81E4F, 0xACDE7975, 0x74081680},
9726 {0xCCA3B0EB, 0xD6EDF9CB, 0x14F8AEC7, 0x89C27467, 0xAA2F7E5E, 0x354719A0, 0x2C2046AB, 0x531C78EE} } } ,
9727 { { {0x75BC2A33, 0x8249CD78, 0x2D93BD25, 0x71A0377A, 0xF3DF9FF1, 0x7780FD48, 0x1710EC7A, 0x46C17A19},
9728 {0x4236A082, 0xA41BA54E, 0xE77747C9, 0x859CF73E, 0xA4CBC3E9, 0x41592446, 0x8722292E, 0x498CAC54} } ,
9729 { {0x126A94B1, 0x9CB3C734, 0x55399FF7, 0xF503872A, 0xDF8909AC, 0x45A5F05A, 0xEB3ABD7A, 0x03D5A851},
9730 {0x5E21B5C0, 0x8BAF59ED, 0x5D2BBB74, 0x4BD08071, 0xF830B490, 0xAB1839AA, 0x82C2FF5D, 0x2B124B38} } } ,
9731 { { {0xCE322F1F, 0xD92094D4, 0x0D62984C, 0x93F7B047, 0x4BC77C3C, 0xA7EA2A9C, 0xA4043DB4, 0x6A05CD67},
9732 {0x59A03CEB, 0xB38C44EB, 0x4BE0B3DD, 0xC08140B0, 0x71F8C3C0, 0x011B6FBB, 0xF944636D, 0x1ED97A75} } ,
9733 { {0x986D2AE6, 0x85273135, 0xA43CCD82, 0xF3FD6515, 0xFF6892FD, 0x63DEF73F, 0x7F869ED4, 0x1E9EF57B},
9734 {0xE81C9B0C, 0x84D662FF, 0x225AF466, 0xE7DEFD1F, 0x758DF7CC, 0x1D125A3A, 0x88BDA441, 0x12776976} } } } ;
9735 static const fp12_t var_b = { { { {0xC426486D, 0x29906A79, 0x26AC7C3E, 0x3706E85A, 0x019E4C32, 0x72D25642, 0xB92D11F2, 0x313FB89B},
9736 {0xDB538785, 0xAB9237F0, 0x0EA93D42, 0xC6281B92, 0xAD9264E1, 0x24F2144F, 0x4DCA1720, 0x0BDE6233} } ,
9737 { {0x0E6B0724, 0x8BE07F74, 0x601C64B7, 0xF880CD00, 0x91483762, 0x0068A3F0, 0x908BF62D, 0x20EDE350},
9738 {0xEE5B4286, 0x0C857225, 0x4FAD5C74, 0x2B696D47, 0x4F0E1458, 0x604B08DA, 0x658D26E6, 0x6240ECB9} } } ,
9739 { { {0x241224B9, 0xB68E6F6D, 0x601171FF, 0x9ECC9B8E, 0x3958B22D, 0x94C04B67, 0x011520C6, 0x50663FF8},
9740 {0x6F9287CC, 0xD4BBAC9D, 0x954FE7F9, 0x9E943E83, 0x825E6BF0, 0x7595D10A, 0x6DD616C1, 0x99FD2105} } ,
9741 { {0x7FC03CAA, 0xF4DC03B9, 0xC7AF07F0, 0x1EFA0A79, 0x11F15753, 0xE1CD921B, 0x47214B4D, 0x4B02BA77},
9742 {0x78C96130, 0x6A59A16F, 0x21814C2A, 0x33569A65, 0x003A801F, 0x38E0E45E, 0x413FA202, 0x5C96AFD5} } } ,
9743 { { {0x725E8F04, 0xCDC34E9B, 0xA3305481, 0x988218CE, 0x1E5051F0, 0xE1013CC8, 0xA1227CD7, 0x225AEE4E},
9744 {0x99922C9E, 0x799041DC, 0xCC37B085, 0x18B8808A, 0x1AB6B87C, 0xC822DE02, 0x8045443F, 0x21406A90} } ,
9745 { {0x939328C7, 0x0A70E57E, 0x402AE7C8, 0x6E690659, 0xA6FDD444, 0xCC3E9F64, 0x8B945C26, 0x266D03D5},
9746 {0x2E98C767, 0xE7C743AC, 0xFF0DCF01, 0x079F99C3, 0xB1E855D8, 0x6E10E5C6, 0x05D52DA8, 0x88717E24} } } } ;
9747 static const fp12_t var_expected = { { { {0xD5E5478D, 0x06B056A9, 0x458B1181, 0x01E19C48, 0xD2ED453F, 0x8F01A55C, 0xE5E13FE2, 0x6D5E16D4},
9748 {0x063F84C3, 0xE42BA976, 0xDC03CBF4, 0xAD9F8EE7, 0x253F7DBB, 0x4DA6C142, 0xDFE10713, 0x9D2D6515} } ,
9749 { {0x0B128783, 0x116705ED, 0xEB0B0E75, 0x268F8562, 0x96643D60, 0xD320C23F, 0x3D6A6FA2, 0x94F5F9D1},
9750 {0xBAFEF371, 0xE3736BF1, 0x64A60B3B, 0xB52BE1AE, 0xF93D92B6, 0x9592227A, 0x91AD6D91, 0xB55D65A7} } } ,
9751 { { {0x99CE4EEC, 0x38D83CE5, 0x8DA52F25, 0x106CD308, 0x2D38521F, 0x0C4148B0, 0x18260D41, 0x9727BA11},
9752 {0x4F9CF3B3, 0x79E8C83A, 0xA84F507C, 0x111F8921, 0xD347A625, 0xBB8E98E5, 0xB4D963C6, 0x29762E97} } ,
9753 { {0x922AD15B, 0x918FCAED, 0x1CE8A7E8, 0x13FD91A4, 0xF17A6100, 0x27738275, 0x325C08C8, 0x4ED862C9},
9754 {0xD6EB16F0, 0xF608FB5C, 0x7EAD079E, 0x7F271AD6, 0xF86B34AF, 0xE3F91E08, 0xC402A15F, 0x87A8FB0D} } } ,
9755 { { {0x4090BE23, 0xA6E3E370, 0xB092ECCE, 0x2C79C915, 0x6A17CE2D, 0x88EB6764, 0x4526BA8C, 0x8C60BBB6},
9756 {0xF3326989, 0x2D1C86C7, 0x18186463, 0xD939C13B, 0x8CAF7C3C, 0xC93E4DBD, 0x7989A7AC, 0x4019E506} } ,
9757 { {0x2C0053AD, 0x8F9816B4, 0xE467B54A, 0x62666B6E, 0xA6666742, 0x301D96A4, 0x0B1AFAFB, 0x450BF951},
9758 {0x16B56273, 0x6C9DA6AC, 0x2168C368, 0xEF7E96E3, 0x27764DA4, 0x8B234001, 0x8E92D1E9, 0x9AE8E79A} } } } ;
9760 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2253 a000");
9761 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2254 a001");
9762 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2255 a010");
9763 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2256 a011");
9764 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2257 a100");
9765 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2258 a101");
9766 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2259 a110");
9767 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2260 a111");
9768 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2261 a200");
9769 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2262 a201");
9770 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2263 a210");
9771 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2264 a211");
9774 static const fp12_t var_a = { { { {0x53E9DE02, 0xB5E38B98, 0x57E8A815, 0x2D3AE580, 0xD93A86F6, 0x220748E3, 0x83ACB364, 0x2F9CF3C7},
9775 {0x87312B88, 0xDEDE1730, 0x6B647F62, 0x87257BBA, 0xEE56D47A, 0xD2DE0F2F, 0x6EDFCA9E, 0x1423D11C} } ,
9776 { {0xF1FDB4BF, 0x1431A066, 0x3493174D, 0xEF721067, 0x79BD035B, 0x8BED0873, 0x45C6DBD5, 0x3A2132AB},
9777 {0xBA6ED881, 0xC908A6E3, 0x51E03B22, 0xAE60D9B4, 0x8A268676, 0xC89FC10F, 0x9864CEFE, 0x70AEF2A7} } } ,
9778 { { {0x990E7076, 0xB3B4F4B9, 0x645190E6, 0x9DDF6AD8, 0x8E285620, 0x1065DAF7, 0x4EFB257C, 0x2C50A2C4},
9779 {0x5A5EAB19, 0x50C97307, 0x8B6C49C0, 0xA80449C2, 0xD61B026C, 0x6F8C0678, 0x2087D05C, 0x1263452C} } ,
9780 { {0x430D62E8, 0x5AFBF4D3, 0x09C60DA2, 0xAA5E040A, 0xB2331867, 0xE4104965, 0x5C2B44E9, 0x0F76A021},
9781 {0xC267D93C, 0x59183E23, 0x80D8F041, 0x31DC820E, 0xB233838C, 0x10D60893, 0xE31792EE, 0x990DB7AD} } } ,
9782 { { {0xC30D6835, 0x12A73920, 0xB289F1F6, 0xB8967F6A, 0x698F7E44, 0x8274AF42, 0x2B30A17F, 0x74815C5C},
9783 {0x42DF5FAD, 0x11A607D0, 0xE2F94573, 0xCF2D3A11, 0x49260F4B, 0x537683ED, 0x7D2DD221, 0x8A42BC13} } ,
9784 { {0x2FC34F0B, 0x24EEDBED, 0x297218F8, 0xA7186A37, 0x79178F60, 0xA1E3E395, 0xB8CCB59B, 0x2C279374},
9785 {0xF0113A1D, 0xE0B6DDC9, 0xF32A0C6C, 0x9776DCF7, 0x5384EAC7, 0x0D7F30D3, 0xCC2CAA5D, 0x8E33C93D} } } } ;
9786 static const fp12_t var_b = { { { {0xDCCF3D2C, 0x192BC37D, 0x7E6224EA, 0x986FCB32, 0xE622C2E5, 0x3B12CDD6, 0x407D55E4, 0x48F24B21},
9787 {0x5F8B07FA, 0x6E1F119B, 0x8A4B282E, 0xB712E46E, 0x20BDD434, 0x5A6A3541, 0x6DDD7B2C, 0x1C490C59} } ,
9788 { {0x5E15489B, 0xBB6C767F, 0xFC1ADA3F, 0xED30981A, 0xF5D397DB, 0x89A43A31, 0x4147CF87, 0x19543B4E},
9789 {0x8843A99C, 0xA57A5B23, 0x3DE846E4, 0xD6A6FEF2, 0x3FDDA456, 0x8B8A4ACE, 0xFDD6A85A, 0x1B951D0E} } } ,
9790 { { {0x8B044464, 0x110672A5, 0x300993A9, 0x460C0923, 0x2C682191, 0x03BF012E, 0x7789E242, 0x31B4C8F5},
9791 {0xE01080B6, 0xAC13A033, 0x3BB35A3D, 0xB5D5D4D5, 0xD46D0593, 0x39BA10EC, 0xD9AF042D, 0x3A8096E7} } ,
9792 { {0x78EDC833, 0x651E013A, 0xE917C324, 0x85DBD5F4, 0x50887EFC, 0x64965D1C, 0xE0CB874E, 0x5F80B8C8},
9793 {0xF7CC344E, 0xEF86E7FC, 0x71DC2D52, 0x1B3EEA61, 0x47E1B7EF, 0x4A8C8CDA, 0xDEB90BA7, 0x3CC65911} } } ,
9794 { { {0x7A4F6634, 0x40419BDD, 0x317F9238, 0xCAB254F0, 0x64984E34, 0xA3FF93D4, 0xB88F8D91, 0xB63C7A54},
9795 {0x485B779F, 0x14A33876, 0xDF8F1BD2, 0x973F5163, 0x8FC447B8, 0xC59B77F6, 0xE8F6E202, 0x3B4BBBBD} } ,
9796 { {0x25290EE6, 0x6BEEC5D7, 0x58948BCC, 0x76F07CB6, 0xB0071668, 0xF9FFDDAC, 0x7C1F09B3, 0x86931A99},
9797 {0xE49584FA, 0x07EB95FC, 0xF53779D3, 0x6F0D893E, 0x93A03E20, 0x11DC8EAD, 0x554C09ED, 0x7A17006E} } } } ;
9798 static const fp12_t var_expected = { { { {0x30B91B2E, 0xCF0F4F16, 0xD64ACCFF, 0xC5AAB0B2, 0xBF5D49DB, 0x5D1A16BA, 0xC42A0948, 0x788F3EE8},
9799 {0xE6BC3382, 0x4CFD28CB, 0xF5AFA791, 0x3E386028, 0x0F14A8AF, 0x2D484471, 0xDCBD45CB, 0x306CDD75} } ,
9800 { {0x5012FD5A, 0xCF9E16E6, 0x30ADF18C, 0xDCA2A882, 0x6F909B37, 0x159142A5, 0x870EAB5D, 0x53756DF9},
9801 {0x42B2821D, 0x6E830207, 0x8FC88207, 0x8507D8A6, 0xCA042ACD, 0x542A0BDD, 0x963B7759, 0x8C440FB6} } } ,
9802 { { {0x2412B4DA, 0xC4BB675F, 0x945B248F, 0xE3EB73FB, 0xBA9077B1, 0x1424DC25, 0xC68507BE, 0x5E056BB9},
9803 {0x3A6F2BCF, 0xFCDD133B, 0xC71FA3FD, 0x5DDA1E97, 0xAA880800, 0xA9461765, 0xFA36D489, 0x4CE3DC13} } ,
9804 { {0xBBFB2B1B, 0xC019F60D, 0xF2DDD0C6, 0x3039D9FE, 0x02BB9764, 0x48A6A682, 0x3CF6CC38, 0x6EF758EA},
9805 {0x5807D8EF, 0x49B09C6F, 0x1E3D3E4D, 0x3A09BFCF, 0xA632B1C6, 0x60023902, 0x81B1C26C, 0x1BC071FD} } } ,
9806 { { {0xDB3099CE, 0x53FA4B4C, 0x0F91A4E7, 0x703727BA, 0x7A4542C4, 0x2B13E6AB, 0xA3A152E8, 0x70AA37EE},
9807 {0x290EA2B1, 0x275AB695, 0xEE1081FE, 0x535ADED4, 0x8507CD4F, 0x1DB19F78, 0x2605D7FB, 0x0B7AD90F} } ,
9808 { {0x54EC5DF1, 0x90DDA1C4, 0x8206A4C4, 0x1E08E6ED, 0x291EA5C9, 0x9BE3C142, 0x34EBBF4F, 0xB2BAAE0E},
9809 {0x727A8A7C, 0xE9B3EA15, 0x13E9A6F8, 0xF372B996, 0x93429F32, 0x23FB6315, 0xE159D821, 0x4E372AE9} } } } ;
9811 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2265 a000");
9812 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2266 a001");
9813 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2267 a010");
9814 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2268 a011");
9815 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2269 a100");
9816 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2270 a101");
9817 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2271 a110");
9818 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2272 a111");
9819 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2273 a200");
9820 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2274 a201");
9821 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2275 a210");
9822 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2276 a211");
9825 static const fp12_t var_a = { { { {0x4F48B3E4, 0xEF297AA3, 0xE8995C46, 0x2B4DCE38, 0xB7A097FC, 0xE15C94B9, 0xE95E9BEA, 0x6065D93F},
9826 {0xA17B7DED, 0xEF6971F1, 0xB4735225, 0x7885A6B7, 0xCD0E44B5, 0xC248C4DE, 0xC295DBF5, 0x644071E7} } ,
9827 { {0x0D9A1BD3, 0x150C0EA0, 0xB18FADDB, 0xC9EB1BD1, 0x3ED921B1, 0x122CA0B1, 0xFD9A89AB, 0x15D963E3},
9828 {0xD37AFA16, 0x37A9FD3F, 0xB617F10E, 0xA1D362AE, 0x4FB58987, 0xB7350282, 0x8CC3CE1E, 0x2F82124E} } } ,
9829 { { {0xB37AE6DE, 0x6751A20F, 0xBE020A45, 0x72693B22, 0x4B22D0F2, 0x86632F10, 0xF459AA87, 0xB76BB21A},
9830 {0x93CAC444, 0x84DAF32E, 0x22CD6C51, 0x62EEAAE3, 0xB8EA2141, 0xF91E0D7A, 0x50644F36, 0x3BC6EB57} } ,
9831 { {0xD705C792, 0xACEA13CC, 0x5DDDDE3E, 0x86ED97C2, 0x2238C0C2, 0x7669AD4C, 0x4C2B26E7, 0x95008B37},
9832 {0x90D1CBB4, 0xC32344EB, 0x95BBF970, 0xF1E114B5, 0x9E41A2BC, 0xF5180660, 0x2A1D5797, 0x1059E797} } } ,
9833 { { {0x4E66F2EB, 0xEE8C715B, 0x1A378C85, 0xA639A9F1, 0x48723BD4, 0x5BA4FF41, 0xC1770C72, 0x42F1A6E9},
9834 {0xC61421F5, 0x1A2BB866, 0x8F5E777A, 0x5BE54C33, 0x762A3BBA, 0x3000138A, 0x794EB1A7, 0x4827FCDB} } ,
9835 { {0x2C26C2E7, 0x7641F54C, 0xC2248B39, 0xB4B94ED9, 0x8313D4C7, 0xED0A061E, 0x5051BC48, 0x8D1D7D37},
9836 {0xC4E37B7C, 0xF5AF7EBD, 0xFF4F7251, 0x676F9EF9, 0xAAF11AA5, 0x9369F749, 0x180FC8E1, 0xA69BD7B1} } } } ;
9837 static const fp12_t var_b = { { { {0xC77E8AFE, 0xCEF58107, 0x6488A7D8, 0xD0930E1C, 0xD89976A8, 0x27B45F72, 0x36432168, 0x89FBAF7D},
9838 {0xE29AD1CB, 0xFB55B741, 0x653E58D4, 0x6BF974F0, 0x31D445CF, 0x3152D398, 0x25542057, 0x1492D352} } ,
9839 { {0xB4A8A440, 0xBD0BA572, 0x4BE14D39, 0x5BB838B1, 0x8B0E6F0F, 0x3F67733F, 0xF121C4D6, 0x86A71F66},
9840 {0x53105021, 0x168F6495, 0xB0655743, 0xE6BE6F9C, 0xF1DE4367, 0x63CFDF8B, 0xBD246834, 0x04001F3D} } } ,
9841 { { {0xC82BAD0A, 0x4DE91B23, 0x041CED34, 0xF7F1ED4F, 0x21566294, 0xB12BBC12, 0x3DDBAF77, 0x16F49F07},
9842 {0x8E114B92, 0x6E199DDD, 0x0CD7084E, 0x9BDDE73E, 0x0F227E05, 0xC3FE1905, 0x3C890147, 0x2719C56F} } ,
9843 { {0x172FF685, 0xC888DDF3, 0x5D626CEE, 0x84F50AEA, 0x60803B6E, 0x35D95991, 0x18462AA0, 0x087A529F},
9844 {0x47B3A829, 0x6D8F373D, 0xE548D064, 0x89652DFD, 0xF000865F, 0x28965529, 0x415B0523, 0x6D5F398F} } } ,
9845 { { {0xF7C82D6A, 0xB508A834, 0x63EBB4E1, 0x2472F7F7, 0x4C180D6A, 0xC3A7E507, 0xBEF240CD, 0x6EA8A494},
9846 {0x73A101BA, 0xBBF77991, 0xEAE6CF61, 0xF2682891, 0x3982D09B, 0xAD7313C0, 0xA7159A0F, 0x08B30785} } ,
9847 { {0xFC4E38B5, 0xDE3B12D7, 0x62CB4F29, 0x37215996, 0x2B74E69C, 0x95BF8AD8, 0xACFA2916, 0x9AD4F1B8},
9848 {0x476F75B8, 0x4255CDF9, 0x07227096, 0x580C5EA4, 0xCE9FE54A, 0xAB2D1C76, 0x8CA49EF6, 0x6862A8AB} } } } ;
9849 static const fp12_t var_expected = { { { {0xB49B0A47, 0xBF3071F9, 0x78AA24D8, 0xE8CF2FB4, 0x3C5784EF, 0x0DB097C1, 0xDF82E12A, 0x304DE9FA},
9850 {0x84164FB8, 0xEABF2933, 0x19B1AAFA, 0xE47F1BA8, 0xFEE28A84, 0xF39B9876, 0xE7E9FC4C, 0x78D34539} } ,
9851 { {0xC242C013, 0xD217B412, 0xFD70FB14, 0x25A35482, 0xC9E790C1, 0x519413F0, 0xEEBC4E81, 0x9C80834A},
9852 {0x268B4A37, 0x4E3961D5, 0x667D4851, 0x8891D24B, 0x4193CCEF, 0x1B04E20E, 0x49E83653, 0x3382318C} } } ,
9853 { { {0x197A5F4D, 0xB64C3382, 0xEDA71832, 0x57497BD0, 0x1896A9D2, 0x3C2E8EB7, 0xF2167DD6, 0x144CB25F},
9854 {0x21DC0FD6, 0xF2F4910C, 0x2FA4749F, 0xFECC9221, 0xC80C9F46, 0xBD1C267F, 0x8CED507E, 0x62E0B0C6} } ,
9855 { {0xEE35BE17, 0x7572F1BF, 0xBB404B2D, 0x0BE2A2AC, 0x82B8FC31, 0xAC4306DD, 0x64715187, 0x9D7ADDD6},
9856 {0xD88573DD, 0x30B27C28, 0x7B04C9D5, 0x7B4642B3, 0x8E42291C, 0x1DAE5B8A, 0x6B785CBB, 0x7DB92126} } } ,
9857 { { {0x462F2055, 0xA3951990, 0x7E234167, 0xCAACA1E8, 0x948A493E, 0x1F4CE448, 0x80694D40, 0xB19A4B7E},
9858 {0x39B523AF, 0xD62331F8, 0x7A4546DB, 0x4E4D74C5, 0xAFAD0C56, 0xDD73274A, 0x20644BB6, 0x50DB0461} } ,
9859 { {0xC648C701, 0x558E7E72, 0x5077FB1C, 0xD8C8FBCF, 0x5AA631AE, 0x8769348B, 0xBD2D0936, 0x6DDED02D},
9860 {0xAA26BC99, 0x3916C305, 0x31FA03A1, 0xAC6A50FD, 0x25AE763A, 0x4336B755, 0x64958BAF, 0x54EAE19A} } } } ;
9862 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2277 a000");
9863 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2278 a001");
9864 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2279 a010");
9865 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2280 a011");
9866 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2281 a100");
9867 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2282 a101");
9868 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2283 a110");
9869 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2284 a111");
9870 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2285 a200");
9871 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2286 a201");
9872 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2287 a210");
9873 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2288 a211");
9876 static const fp12_t var_a = { { { {0xFDA53E4E, 0x4D392143, 0xE8C317A7, 0x5ED6AAB6, 0x81059D75, 0x24C962E0, 0x9FD07838, 0x1C4AC9F3},
9877 {0x39E732B5, 0x2A3775F3, 0x69807B8A, 0x7A965936, 0xD696034B, 0xB9A2DE3B, 0x4D35A9D4, 0x403A78D7} } ,
9878 { {0xAB66BC2D, 0x4AFDD80A, 0xEC9C20B5, 0x687E0B42, 0xC0C6FF5E, 0x2D1CB9C1, 0x54F14B32, 0x0B473A0A},
9879 {0xFD5AB446, 0xDD484B12, 0x7D6DCEF9, 0x598079AF, 0xB537361B, 0xB2899238, 0x87065A66, 0x7E95D4CD} } } ,
9880 { { {0x8206FBBD, 0x5CA48680, 0xFB46E982, 0xAE84F95A, 0xE8F63907, 0x9B34C29B, 0xCA4F71E5, 0xA66E7884},
9881 {0x88F3AF7C, 0x03E27E9F, 0xF0099BDD, 0x38852081, 0x1036E262, 0xAE011F0B, 0x17380210, 0x566D5BFB} } ,
9882 { {0xF075B26D, 0x50A58808, 0xE30699A6, 0x5938DD7B, 0x439215E2, 0xB6781E3A, 0xBCEC8706, 0x1014E1AB},
9883 {0x0F01BC2F, 0x869658A7, 0xAFFB408E, 0x97B24A74, 0xCB78C4B2, 0x0622C551, 0x199B9E3C, 0x37694F7A} } } ,
9884 { { {0x2D22F1A1, 0x2CB74D15, 0x05EAB162, 0x1C87E8CD, 0xA979F739, 0xF292EC82, 0x26DF13CB, 0x940FFE6D},
9885 {0xA51F7327, 0x8FD7778D, 0x13C5DA03, 0x2366D967, 0xB987DC0F, 0x592A3245, 0xAC624A88, 0x19DA80F8} } ,
9886 { {0x4E6C2904, 0x3BB6D170, 0x2F44CEB9, 0xD8B7C51E, 0xDF56BB05, 0x081DA7CE, 0x07888FDD, 0x036CE9F9},
9887 {0x2660852A, 0x852E500B, 0x06F195B2, 0x18B8517D, 0x3A4700BD, 0x70F27FD6, 0x2B902E91, 0x1A321559} } } } ;
9888 static const fp12_t var_b = { { { {0xA824AC5C, 0x0423D48C, 0x6DF6A862, 0xAF8B3279, 0xEBCEBE77, 0xF0907691, 0x9C81734E, 0x6F8A09C0},
9889 {0x60E66E52, 0x13779551, 0xB72A96FF, 0x7CD6DA7B, 0xF670DE38, 0x73BA8F25, 0xB48ADF11, 0x3E452001} } ,
9890 { {0xCFDA2270, 0x51B20968, 0x0D3F5B12, 0x014ED3F5, 0x11D256BB, 0xE4D8693F, 0x616F3701, 0x2832D372},
9891 {0xEAEAF52F, 0x22C5721B, 0xE9C5CD0B, 0xE4C9255F, 0x28BB2624, 0xB67A6019, 0xA4274118, 0xB028CF58} } } ,
9892 { { {0x370109D5, 0x2DEF47B1, 0xC711CECA, 0x5DD33D05, 0x8408AE85, 0x627F9684, 0xD3AF4A72, 0x058C9139},
9893 {0x39324E1D, 0xDA49B036, 0xC8326171, 0x122B959E, 0xF3BC20A6, 0xD393BF82, 0x57DED83F, 0x20DB6459} } ,
9894 { {0x1B1B9834, 0xDC7070EC, 0xE53E820A, 0xDCDEF01F, 0x0293D84E, 0x141FA719, 0xAFC30911, 0x059A86D8},
9895 {0x0288294E, 0xA5D2181A, 0xC046D550, 0x0545D7E6, 0xBE20ECA3, 0xA2BEE725, 0x6CB79C06, 0x8069159B} } } ,
9896 { { {0xA950CAB0, 0xEC1ECB31, 0xF894453A, 0x66871A5A, 0x9579B888, 0x013344FF, 0x73EFA130, 0x0B786C88},
9897 {0x3B0F4874, 0x2C5959F8, 0x800CF38A, 0xFF2437C9, 0x2CF4AB9F, 0x3C9C876D, 0xBE1C3A1B, 0x01FF6568} } ,
9898 { {0xD97AB85C, 0x240DAB36, 0x205F8576, 0x70F2B3F6, 0xD8DCAFE7, 0x5E66F8A6, 0xDB39FBC2, 0x223BF409},
9899 {0x1892BCE8, 0x5793E489, 0xF4933F7B, 0x80AA5121, 0x23F825F9, 0xFA458C2C, 0x6BA9B00A, 0x13F5B0A9} } } } ;
9900 static const fp12_t var_expected = { { { {0xA5C9EAAA, 0x515CF5D0, 0x56B9C009, 0x0E61DD30, 0x6CD45BED, 0x1559D972, 0x3C51EB87, 0x8BD4D3B4},
9901 {0x9ACDA107, 0x3DAF0B44, 0x20AB1289, 0xF76D33B2, 0xCD06E183, 0x2D5D6D61, 0x01C088E6, 0x7E7F98D9} } ,
9902 { {0x7B40DE9D, 0x9CAFE173, 0xF9DB7BC7, 0x69CCDF37, 0xD2995619, 0x11F52300, 0xB6608234, 0x337A0D7C},
9903 {0x861974DA, 0x011F337D, 0x92BBBCBE, 0x2B37F26E, 0x8A0FD28B, 0x6DA395E6, 0xEB0EBF56, 0x74AB0563} } } ,
9904 { { {0xB9080592, 0x8A93CE31, 0xC258B84C, 0x0C583660, 0x6CFEE78D, 0xFDB45920, 0x9DFEBC57, 0xABFB09BE},
9905 {0xC225FD99, 0xDE2C2ED5, 0xB83BFD4E, 0x4AB0B620, 0x03F30308, 0x8194DE8E, 0x6F16DA50, 0x7748C054} } ,
9906 { {0x0B914AA1, 0x2D15F8F5, 0xC8451BB1, 0x3617CD9B, 0x4625EE31, 0xCA97C553, 0x6CAF9017, 0x15AF6884},
9907 {0x1189E57D, 0x2C6870C1, 0x704215DF, 0x9CF8225B, 0x8999B155, 0xA8E1AC77, 0x86533A42, 0xB7D26515} } } ,
9908 { { {0xD673BC51, 0x18D61846, 0xFE7EF69D, 0x830F0327, 0x3EF3AFC1, 0xF3C63182, 0x9ACEB4FB, 0x9F886AF5},
9909 {0xE02EBB9B, 0xBC30D185, 0x93D2CD8D, 0x228B1130, 0xE67C87AF, 0x95C6B9B2, 0x6A7E84A3, 0x1BD9E661} } ,
9910 { {0x27E6E160, 0x5FC47CA7, 0x4FA4542F, 0x49AA7914, 0xB8336AED, 0x6684A075, 0xE2C28B9F, 0x25A8DE02},
9911 {0x3EF34212, 0xDCC23494, 0xFB84D52D, 0x9962A29E, 0x5E3F26B6, 0x6B380C02, 0x9739DE9C, 0x2E27C602} } } } ;
9913 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2289 a000");
9914 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2290 a001");
9915 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2291 a010");
9916 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2292 a011");
9917 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2293 a100");
9918 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2294 a101");
9919 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2295 a110");
9920 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2296 a111");
9921 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2297 a200");
9922 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2298 a201");
9923 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2299 a210");
9924 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2300 a211");
9927 static const fp12_t var_a = { { { {0x1E68D9E9, 0x8D76F851, 0x1765AE69, 0x86FCBF80, 0xF9F299FE, 0xA8E49308, 0x6485B3FB, 0x218606C8},
9928 {0x0ED2E4EE, 0x4F83DA56, 0x49C20780, 0x4B972E92, 0xC8F0D5D4, 0x76DDAFA7, 0xD0F940CA, 0x68E3CDF9} } ,
9929 { {0xB23BF3B1, 0x6FE6B5C9, 0x258F20E5, 0xC5B47E8C, 0xBBA634D2, 0x8C2922C2, 0xCC1A4570, 0x081117C3},
9930 {0x70AAE14B, 0x7F196AD8, 0x17A92196, 0x4D8E111B, 0x2E12EA79, 0x8CBC6FF4, 0x4A5CD3B1, 0x369C3EB2} } } ,
9931 { { {0xC6F7EDAD, 0x54726A3C, 0xDCFD3DA5, 0x13B8C35C, 0x2710DFC9, 0x0FD16C08, 0x8F40309A, 0xB9F32BAD},
9932 {0xF817C7E3, 0x8D7BE8E3, 0xB63A997E, 0xEC670A68, 0x9DDE6B26, 0x4E8593EA, 0x351EFED8, 0x238A9B50} } ,
9933 { {0x4F9301BF, 0x06A0D663, 0x5D9203A5, 0xE5F5A1E3, 0xD59B11C6, 0x65E7E57C, 0x6A433F17, 0x3F7BF685},
9934 {0xD99BB049, 0x63F31233, 0x10B9249B, 0xAAECE23C, 0xFE00EF85, 0x13D23EC2, 0xB0BFA8D7, 0xA0628C9A} } } ,
9935 { { {0x2267FA29, 0x8C4A18B7, 0x34629DFD, 0xDA65E68A, 0x4AEFB552, 0x08997B31, 0x1BAAA9EE, 0x2BD73D4C},
9936 {0x64734A96, 0x2D867CD7, 0xD7179767, 0x10D4106E, 0x79C3FF25, 0x8265290B, 0x56A4647A, 0x301761C9} } ,
9937 { {0x56ABF01F, 0x31218E50, 0x2E004C0F, 0xD5297F5E, 0x4C1BAEA9, 0xB122D416, 0x9E243A52, 0x4E3DA82C},
9938 {0xD59466BB, 0x4FDFEC75, 0xC8758F0D, 0x697F8A97, 0xC336C97F, 0x637AA765, 0xC51BA345, 0xABB9A476} } } } ;
9939 static const fp12_t var_b = { { { {0x3EC7FE91, 0x7D37B56C, 0x594C7E30, 0xF79D1AFC, 0xE0EBC5BA, 0x58617277, 0x305C6B1A, 0xB9F9888C},
9940 {0xFB97431C, 0x75CDD461, 0x1560C32E, 0xBE1AC042, 0x8518668A, 0xDB13BE08, 0x1A7C8D2E, 0x1469EAB6} } ,
9941 { {0x0D74F704, 0x39A700EA, 0x2DCD204F, 0x8D56FE47, 0xF5560E9D, 0x3C01C259, 0x0FA47C9A, 0x036AB3E2},
9942 {0x6EEDB97B, 0x88173FFA, 0x7DC8B083, 0xA368E095, 0xF8E6017E, 0x3FAD069B, 0xB249B698, 0x9845477C} } } ,
9943 { { {0x5EC353F6, 0x6ED7E69C, 0xE25957E1, 0x5E791DEB, 0xBB50DE50, 0xCD923565, 0x7746A79E, 0x32610E18},
9944 {0x3F24965D, 0xB2729D14, 0x5B070CFA, 0xC66B0366, 0xEDDE5566, 0x2E8A32F9, 0xA94B7F61, 0x2C0560CD} } ,
9945 { {0x4487859F, 0x646B99A4, 0x419D841D, 0x4C6E0C59, 0xF4B9EEC2, 0xC13069CB, 0x65B86A75, 0x16CB2D51},
9946 {0xE917EAAA, 0x59BD80CD, 0xC1FD62A7, 0x4DCC28FC, 0x71B280D0, 0x76265028, 0x1DF8492E, 0x35667096} } } ,
9947 { { {0x51AC73E6, 0xA5C8F2B3, 0xB0DB9FA9, 0x51F925D3, 0x00A61B38, 0x1E1A5798, 0x9769F99C, 0x4BC6BA53},
9948 {0xFE35D951, 0x28F576E2, 0x8D20A530, 0x68812A89, 0xD49A66BF, 0x3685CCDD, 0xAC888077, 0x2CCDA12C} } ,
9949 { {0x19360EB8, 0xFC680FE3, 0x7CA73FC5, 0xCE8857EC, 0x213941AE, 0x1ABD41FA, 0x8911EA88, 0x23FDE8D9},
9950 {0x16AC479A, 0x0672C63B, 0x7C95FCED, 0xA936834E, 0x51FB7199, 0xC0A54AF3, 0xB1667710, 0x3AB2555B} } } } ;
9951 static const fp12_t var_expected = { { { {0xFB04A3DF, 0x0BC0240B, 0x9C3A4D53, 0x6B882DDB, 0x86FBD604, 0x05E5A915, 0x54C342ED, 0x216BF092},
9952 {0x0A6A280A, 0xC551AEB8, 0x5F22CAAE, 0x09B1EED4, 0x4E093C5F, 0x51F16DB0, 0xEB75CDF9, 0x7D4DB8AF} } ,
9953 { {0xBFB0EAB5, 0xA98DB6B3, 0x535C4134, 0x530B7CD3, 0xB0FC4370, 0xC82AE51C, 0xDBBEC20A, 0x0B7BCBA5},
9954 {0x7D6C662B, 0x08422121, 0xC0F9F2D3, 0xDDE5450F, 0xD3166242, 0xD1091A24, 0xBC87AE20, 0x14CDE76C} } } ,
9955 { { {0xC38F0D08, 0xC45BC727, 0xEADEB63F, 0x5F2034A7, 0x8E7F3464, 0xE2034502, 0xC667FC0F, 0x32409B03},
9956 {0x373C5E40, 0x3FEE85F8, 0x1141A679, 0xB2D20DCF, 0x8BBCC08D, 0x7D0FC6E4, 0xDE6A7E39, 0x4F8FFC1D} } ,
9957 { {0x941A875E, 0x6B0C7007, 0x9F2F87C2, 0x3263AE3C, 0xCA550089, 0x27184F48, 0xCFFBA98D, 0x564723D6},
9958 {0x60876658, 0xBEC20950, 0xFE3EA7FB, 0xE5A75E97, 0x1BD0E6A0, 0x8E983280, 0x8E9915DC, 0x1BB55E6E} } } ,
9959 { { {0x74146E0F, 0x32130B6A, 0xE53E3DA7, 0x2C5F0C5D, 0x4B95D08B, 0x26B3D2C9, 0xB314A38A, 0x779DF79F},
9960 {0x62A923E7, 0x567BF3BA, 0x64383C97, 0x79553AF8, 0x4E5E65E4, 0xB8EAF5E9, 0x032CE4F1, 0x5CE502F6} } ,
9961 { {0x6FE1FED7, 0x2D899E33, 0xAAA78BD5, 0xA3B1D74A, 0x6D54F058, 0xCBE01610, 0x273624DA, 0x723B9106},
9962 {0x8A1479BA, 0x576428FF, 0x7093ACB3, 0xFFA46145, 0xC14FB163, 0x28BF95ED, 0x36633E2D, 0x2C585B10} } } } ;
9964 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2301 a000");
9965 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2302 a001");
9966 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2303 a010");
9967 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2304 a011");
9968 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2305 a100");
9969 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2306 a101");
9970 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2307 a110");
9971 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2308 a111");
9972 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2309 a200");
9973 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2310 a201");
9974 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2311 a210");
9975 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2312 a211");
9978 static const fp12_t var_a = { { { {0x98BC706E, 0x6E53CDFA, 0xB12705C0, 0x9E5CC446, 0xDAD96E03, 0x24A8CC87, 0xB89E283F, 0x5FCFBB96},
9979 {0xE0D947FB, 0x1ECBD801, 0x14B15D24, 0xAD06B699, 0x645E654D, 0xB929850D, 0x0A5FF54E, 0x9C4E6C47} } ,
9980 { {0xBD2C2640, 0x474F6C33, 0x9CB167B2, 0x68F28ABC, 0xF48BABBC, 0xFEB9BD02, 0x62ED21CB, 0xA0A6C125},
9981 {0x137F3566, 0xDB120811, 0xC21C7A80, 0x73DFDCD5, 0x71210485, 0xF8CDAA68, 0x530EB8C0, 0x4413D2EE} } } ,
9982 { { {0x3FD492C1, 0x0EC0EEB2, 0x204729AE, 0x61CA46E1, 0xC717EA28, 0xA071DD52, 0x03D01985, 0xB0D52E7F},
9983 {0xC937C0AD, 0xE0504366, 0xAF1EC3B8, 0x76A8E6B5, 0x1BAD07A8, 0x8B5AF795, 0x2BD0D52F, 0x91CDC377} } ,
9984 { {0x50A73FF5, 0x8FA15FED, 0xB497E822, 0xD60AA5E6, 0x450C5272, 0x473E54E5, 0xD8249334, 0x282CBA68},
9985 {0xAF115C11, 0x1CC6D931, 0x77BB6774, 0xEB9CCA42, 0xF6EC9BC5, 0xDA692D49, 0xAD56FF14, 0x0CE95B15} } } ,
9986 { { {0x8A6EA33E, 0xD0BC8A4A, 0x91275B9D, 0x8EEB4D16, 0x997A6F68, 0x60EF49DC, 0x1F3E0139, 0x0B6EED86},
9987 {0xC270925B, 0xB473A850, 0x9A8BB3BB, 0xDF6A00C1, 0x76E2C628, 0x6DA2C46B, 0x374F94B3, 0x4DB1C713} } ,
9988 { {0x023906B1, 0x1A97CF62, 0x81C8EFFD, 0x6B66E93A, 0x8BDAE403, 0xA8641E99, 0xD41AB482, 0x2CFCE388},
9989 {0x91CFDA0E, 0x13AF3F10, 0x0686E044, 0x1A34238A, 0x06B21B31, 0x2CA217EC, 0xA65D40D5, 0x18350BEF} } } } ;
9990 static const fp12_t var_b = { { { {0x49ACB147, 0xF8F73878, 0xE969CE7A, 0x6751780E, 0x755AD66B, 0x1E1EC884, 0xB436E508, 0x27E4C89A},
9991 {0x74ED79A9, 0xE2F5F45C, 0x3EF61AEB, 0xF06478E1, 0x9DACE2C7, 0x29AFB18B, 0x17444712, 0x5730FDC2} } ,
9992 { {0x55324BBC, 0x3129B671, 0xEB3F58DA, 0xF6BEDED1, 0xF39AEBE1, 0xF9AB35EF, 0x7DF1E47C, 0x075814ED},
9993 {0x9F45D1DE, 0x09D369C2, 0x2DF530BC, 0xE1691888, 0x213417D1, 0xBF679BEC, 0xA716632F, 0x7CB9843E} } } ,
9994 { { {0xFC979273, 0xD0C90D6F, 0x13B4DAB2, 0xBACA4B62, 0x8775724C, 0xB0BEB93F, 0xEBE55EB8, 0x5D6BD5FF},
9995 {0x878A9BB1, 0xB25D4C49, 0x01B10C01, 0xB0D18340, 0xB8ED1462, 0x86B29564, 0xB22A1F91, 0x3865AF23} } ,
9996 { {0xF05D2397, 0x1E5E76CD, 0x5B35D535, 0x81A9338A, 0xA54B9C7C, 0x01B62C43, 0xBBB8E22C, 0x41241CF0},
9997 {0xE1F5A805, 0x45C99260, 0x283DE4DD, 0x5C5DF07D, 0xC5112F53, 0x574EBC18, 0xD7E6AA63, 0x7B564D93} } } ,
9998 { { {0x4BB53FD1, 0xA29BDBCD, 0x77E7D1B3, 0x8FFCE44E, 0xF7E4D64F, 0xDDB4BE30, 0xAB65B1A3, 0x36D98380},
9999 {0xA3984F59, 0x6CF5BACC, 0x4E62FD9D, 0x2710FAC0, 0xEEBBBBA5, 0x4C62EC86, 0xF192009D, 0x774EB1B7} } ,
10000 { {0xA2FBF07D, 0x254ECE39, 0xB61B71AC, 0x4A91E0FE, 0xC44940E7, 0x7D4CD7CA, 0x3773A1ED, 0x8FE3C9E3},
10001 {0x01AB8FFB, 0x0FFE0D26, 0x5F6E05B8, 0x933FB8C2, 0x183B93C3, 0xBD0DEF75, 0x1E286016, 0x9DBC94DF} } } } ;
10002 static const fp12_t var_expected = { { { {0xE26921B5, 0x674B0672, 0x9A90D43B, 0x05AE3C55, 0x5034446F, 0x42C7950C, 0x6CD50D47, 0x87B48431},
10003 {0xF39A8D09, 0x02D342AC, 0x7F2F98C9, 0x8A5982D9, 0xAE28BE60, 0xE778DA2D, 0xE1856037, 0x396BCB46} } ,
10004 { {0x125E71FC, 0x787922A5, 0x87F0C08C, 0x5FB1698E, 0xE826979E, 0xF864F2F2, 0xE0DF0648, 0xA7FED612},
10005 {0x5098D2A9, 0xE5F6E822, 0x1B99CBF5, 0x423748BD, 0x3E7292A2, 0xBCD4E9E9, 0xBA063FC7, 0x06B9B86A} } } ,
10006 { { {0xDA3FF099, 0xE09B7270, 0x5F842519, 0x0982E5A2, 0xFAAAD2C0, 0x55D03A26, 0xAF969C15, 0x542D65BC},
10007 {0xEE9627C3, 0x93BF05FE, 0xDC57F073, 0x1468BD54, 0x80B79256, 0x16AD308E, 0x9DDC1898, 0x101FD3D8} } ,
10008 { {0x4104638C, 0xADFFD6BB, 0x0FCDBD57, 0x57B3D971, 0xEA57EEEF, 0x48F48128, 0x93DD7560, 0x6950D759},
10009 {0x91070416, 0x62906B92, 0x9FF94C51, 0x47FABABF, 0xBBFDCB19, 0x31B7E962, 0x853DA978, 0x883FA8A9} } } ,
10010 { { {0xD623E30F, 0x73586617, 0x090F2D51, 0x1EE83165, 0x915F45B8, 0x3EA4080D, 0xCAA3B2DD, 0x42487106},
10011 {0x03DCAD19, 0x227AD96C, 0x1476D212, 0xF3694EE1, 0x11BBF818, 0xBEA55487, 0xE8C2B927, 0x0AECDA08} } ,
10012 { {0x4308C293, 0x40F813EA, 0x636C8262, 0xA2E71D98, 0xFC419B35, 0x2A5099F8, 0xCB6F7A47, 0x02CD0EA9},
10013 {0x937B6A09, 0x23AD4C36, 0x65F4E5FC, 0xAD73DC4C, 0x1EEDAEF4, 0xE9B00761, 0xC485A0EB, 0xB5F1A0CE} } } } ;
10015 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2313 a000");
10016 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2314 a001");
10017 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2315 a010");
10018 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2316 a011");
10019 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2317 a100");
10020 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2318 a101");
10021 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2319 a110");
10022 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2320 a111");
10023 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2321 a200");
10024 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2322 a201");
10025 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2323 a210");
10026 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2324 a211");
10029 static const fp12_t var_a = { { { {0x060166C3, 0xB2E7A97A, 0xFA20F5F7, 0x2A67942E, 0xE91CC079, 0x610C0294, 0x9CC22379, 0x68A52334},
10030 {0x6FDCEB53, 0x58CBE7AE, 0x8A04FDD7, 0x5FA336CF, 0x686103DD, 0x43F86785, 0xBB201E3A, 0x9DCE1F5A} } ,
10031 { {0xED3A8FC6, 0x91BBEFE8, 0xE66A2BF7, 0x231F3401, 0x7E52C6A5, 0x3FF7E770, 0x17FC680E, 0x4C0654E5},
10032 {0xA5A3F510, 0xAFA1028B, 0x3BEDB77B, 0x8D6552F0, 0x44D436EA, 0xB7E187D6, 0x6448C602, 0x698015A5} } } ,
10033 { { {0xAE6110F4, 0x4BD24CEA, 0x87829D16, 0x56C27DCA, 0x88F72488, 0x108F5671, 0xE6E19DBD, 0x4C2FCD60},
10034 {0x958E8D52, 0xBEB1C6A0, 0x1FE6F0EE, 0x5D32FBC9, 0x4F5C1015, 0x33328386, 0xF88B9248, 0x31AC23BE} } ,
10035 { {0xDBEC6F8F, 0xA968D5E7, 0x2A4E2DF2, 0x25E4B7CC, 0x4D648FDC, 0x0CC65378, 0x863F48DF, 0xB9AF914C},
10036 {0x7592D724, 0x6DA89DAD, 0x2372F1B3, 0x5248D848, 0x6F357A90, 0x0E8ACCF3, 0x92C9359A, 0x671A57A8} } } ,
10037 { { {0x4C6345DA, 0xB47F3AA3, 0x5BE1E61C, 0x30B2E890, 0x518C8391, 0xAE8E1A58, 0xB2B99B0D, 0x248D1A25},
10038 {0x592FAF45, 0xE74FC0A5, 0xA031EE5E, 0x1976A4E3, 0x757B9F6D, 0xE8F0B69C, 0x50821DF4, 0x027E14B4} } ,
10039 { {0x14AB9BA3, 0xB56C8384, 0xE74CE6C0, 0x5804F1FA, 0x5A4E2769, 0xAD6B5B26, 0x699EA25C, 0x5F53E15C},
10040 {0x1B9E0848, 0x92CA433C, 0x7F093461, 0xEB84FC74, 0xC1EAD4E3, 0x8B4A06F9, 0x8F413638, 0x21E7EF6C} } } } ;
10041 static const fp12_t var_b = { { { {0x895987B4, 0x35694B09, 0xDC6E5144, 0xBF6C8BDA, 0x6DC419CC, 0x0300C161, 0xE7B43A2E, 0x7A248EB2},
10042 {0x2838C2D3, 0x1ADE8BB0, 0x1CCCF279, 0xBF81C0C0, 0xAA6C574B, 0x22BD7DE2, 0x2C1F33CB, 0x0BF9B745} } ,
10043 { {0xDCD7BD33, 0xFE33FA0C, 0xB34A8619, 0xB2358359, 0x79B0AE7E, 0xEE3E5C56, 0x69EF0A15, 0x0BB52AEC},
10044 {0x3D617CCD, 0x6484C360, 0xB813487A, 0x60DC6C1B, 0x64B47F75, 0xF5EA93FF, 0x435A986B, 0x1C27C7FA} } } ,
10045 { { {0xAB605E98, 0x175E2CBB, 0x9FB8BB10, 0xF9BB2B4B, 0xAD5AD017, 0xDC7B225D, 0x2EB3939F, 0x19AB14B8},
10046 {0x4811C46C, 0x9E8BA59B, 0x2A8ADDE1, 0x4456E2E3, 0xC464B75F, 0xAE7CBAA4, 0x333A6383, 0x1C7F44BB} } ,
10047 { {0x06772EE4, 0xC92AD566, 0x71DED437, 0x741AAF1B, 0xCE6BF645, 0x871A7077, 0x301665D7, 0x744BFC7F},
10048 {0x23BE5BAC, 0x2D27FD7B, 0x60CE170A, 0xA5218830, 0x2BA394A2, 0x18579F90, 0x57B2B3AB, 0x29EAB7AA} } } ,
10049 { { {0x7F36EC16, 0x9F29820F, 0x8AFFB455, 0x1E4E9DD4, 0x3847D1D1, 0xF21E9DA9, 0x2EA56130, 0xB989A283},
10050 {0xC3EF0736, 0xBB29B278, 0x05820F33, 0xC43CE5A2, 0x3D95F2C0, 0x4D611DC7, 0x8DF94968, 0x74774815} } ,
10051 { {0xAD50C7F4, 0x6279596E, 0x392D1126, 0x597B0EB9, 0x31DEFD31, 0x563D46A5, 0xA3B55439, 0x3A66B76A},
10052 {0x37902457, 0x34963C54, 0x8A2EE21A, 0xE9817042, 0xE5A6E11F, 0xB41EA12F, 0x325AF0EE, 0x42635003} } } } ;
10053 static const fp12_t var_expected = { { { {0x2D2EB9DC, 0xE9626AD2, 0x021767F4, 0xD6C27369, 0x02FE5090, 0x68AC678B, 0x4457817E, 0x28B61325},
10054 {0x9815AE26, 0x73AA735E, 0xA6D1F050, 0x1F24F78F, 0x12CD5B29, 0x66B5E568, 0xE73F5205, 0xA9C7D69F} } ,
10055 { {0xCA124CF9, 0x8FEFE9F5, 0x99B4B211, 0xD554B75B, 0xF8037523, 0x2E3643C6, 0x81EB7224, 0x57BB7FD1},
10056 {0xE30571DD, 0x1425C5EB, 0xF400FFF6, 0xEE41BF0B, 0xA988B65F, 0xADCC1BD5, 0xA7A35E6E, 0x85A7DD9F} } } ,
10057 { { {0x59C16F8C, 0x633079A6, 0x273B5826, 0x507DA916, 0x3651F4A0, 0xED0A78CF, 0x1595315C, 0x65DAE219},
10058 {0xDDA051BE, 0x5D3D6C3B, 0x4A71CED0, 0xA189DEAC, 0x13C0C774, 0xE1AF3E2B, 0x2BC5F5CB, 0x4E2B687A} } ,
10059 { {0x803769D8, 0x73A5219C, 0xC7B522E3, 0x86EDBA46, 0xC7EDFC6C, 0x98806784, 0x7636D28D, 0x73E7EF09},
10060 {0x995132D0, 0x9AD09B28, 0x844108BD, 0xF76A6078, 0x9AD90F32, 0x26E26C83, 0xEA7BE945, 0x91050F52} } } ,
10061 { { {0x696DFD55, 0x54BA3301, 0x1269BB2B, 0x3BEFD9C4, 0x35F1CBAD, 0xA54C5B96, 0xA1402015, 0x24031DE6},
10062 {0x1D1EB67B, 0xA279731E, 0xA5B3FD92, 0xDDB38A85, 0xB311922D, 0x3651D463, 0xDE7B675D, 0x76F55CC9} } ,
10063 { {0xC1FC6397, 0x17E5DCF2, 0x2079F7E7, 0xB18000B4, 0x8C2D249A, 0x03A8A1CB, 0x0D53F696, 0x99BA98C7},
10064 {0x532E2C9F, 0xC7607F90, 0x0938167B, 0xD5066CB7, 0xA791B603, 0x3F68A829, 0xC19C2727, 0x644B3F6F} } } } ;
10066 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2325 a000");
10067 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2326 a001");
10068 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2327 a010");
10069 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2328 a011");
10070 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2329 a100");
10071 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2330 a101");
10072 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2331 a110");
10073 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2332 a111");
10074 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2333 a200");
10075 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2334 a201");
10076 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2335 a210");
10077 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2336 a211");
10080 static const fp12_t var_a = { { { {0x898862D6, 0x1847F83C, 0x8789C619, 0xFE14AB39, 0x39E81842, 0x1CCACAC9, 0x0F54C2E1, 0xB4167F25},
10081 {0x7CF7FB92, 0xBC807F3B, 0x6CB43E8F, 0x216C6DE9, 0x96BB68E5, 0xD2F9DD36, 0xA33AD877, 0x2AF64661} } ,
10082 { {0xA150C2DD, 0x0E11EA12, 0xF072A43C, 0xA34023BB, 0xC551E272, 0x138A078D, 0x6CDC1623, 0x1247458D},
10083 {0xC0A2AF6F, 0xC0A82FE3, 0xC71BC2B2, 0x201864D7, 0x67365294, 0x9535482A, 0x7C18BD3D, 0x356854D3} } } ,
10084 { { {0xD1A5A0D8, 0xC92D1616, 0xD24F1E88, 0xB4E671AB, 0x2BD9B8F4, 0x1EE26EFE, 0xF9992931, 0x4C5BFDB0},
10085 {0x7E453186, 0xE6E9F1BB, 0x9AE0F158, 0x7575D876, 0x4B700BAF, 0x017D81A5, 0x9C4C171B, 0x7D2D3983} } ,
10086 { {0x8AD4B92C, 0x166096A0, 0xFD5DE1B2, 0x59C2BB2A, 0xB316F078, 0x86C78218, 0x72CCC7F2, 0x8552E211},
10087 {0xC7898E93, 0x1ADAC9B7, 0x55BDBB54, 0x6647808C, 0x2DC55498, 0x7ED359E7, 0x5E06EC1B, 0x45DE24DE} } } ,
10088 { { {0x00A6B3B6, 0xFBAAFF6F, 0xD3A730C0, 0x472DA6E6, 0x378715AD, 0xBE6FFA98, 0xD5C56EB2, 0x08B1E27E},
10089 {0x10121D14, 0x84A50462, 0x25285C88, 0xB6E9BE57, 0x30BAD697, 0xA4E499D8, 0x20547671, 0x3E0C3525} } ,
10090 { {0x4BD7E559, 0xC2369F1F, 0x207D5D94, 0x5EDAC022, 0x7B708CB6, 0x800065F8, 0x1E23184D, 0xA62DBF18},
10091 {0x32CE4105, 0x8B9EC4E9, 0xF3271E93, 0x9D60BD46, 0xB752C9B5, 0x4194F588, 0x3FF389EE, 0x8652DCC5} } } } ;
10092 static const fp12_t var_b = { { { {0xBE94950C, 0xF4CF7059, 0xF2BA90D3, 0xBFF6E193, 0x85135957, 0xC67F3A69, 0x8ABA02D4, 0x70D587E8},
10093 {0xFDBA1C7E, 0xDA6FB72E, 0xF1E3D330, 0x24C6DFD4, 0x696136FC, 0x782E8347, 0xD8068D32, 0x21B4E40D} } ,
10094 { {0xEFC92FD7, 0x5A77104C, 0x969BC887, 0xCC39B9A3, 0x99FC5531, 0xC663D4C0, 0x966B7319, 0xB81B1EA7},
10095 {0x09EEC66D, 0x59F80CBD, 0xDE2B7918, 0xDF0E6324, 0x80B9EBDA, 0xA1B7D10D, 0x47201C38, 0x39715095} } } ,
10096 { { {0xB371B756, 0xFEF12FC0, 0x9886EA81, 0x26F546FF, 0x3D535D81, 0xFC22AACF, 0x00EF492F, 0x0DEA5AA9},
10097 {0xCA073677, 0x32355DEE, 0xE8EB513D, 0x8FBF4980, 0x210ECDF9, 0x529C5934, 0xEA721C57, 0x80B41BD6} } ,
10098 { {0x1FE667F7, 0x275990B6, 0xC6E0E862, 0xAC2437F1, 0x352A6637, 0x1FC4D181, 0xC4A669F4, 0x42B0D861},
10099 {0x9382D7E0, 0xCFD14417, 0xA8FDFA88, 0x21FE08DF, 0x5D434C18, 0x6B417F4C, 0x1FA46EA8, 0x2DA337B7} } } ,
10100 { { {0x87308B5C, 0x5FAA7FB7, 0x2CDCFC79, 0x817E2049, 0x86CF9590, 0x2A6EC460, 0x206EF60D, 0x67746129},
10101 {0x80E5EAA5, 0xD55DB10A, 0x484F66DB, 0x11F7F554, 0xD52901C6, 0xF57327D9, 0x813742C8, 0x9ECFC5DB} } ,
10102 { {0x1F2D500F, 0x7069508B, 0x43D1159D, 0xF371FB2F, 0x2239BBE2, 0x599809E4, 0x4F4A89C0, 0x13CE617D},
10103 {0x9E4E72F3, 0x31912B9D, 0x380562D4, 0xA64202F4, 0x73F7AFC9, 0x5839A67B, 0x6E26D702, 0x17842593} } } } ;
10104 static const fp12_t var_expected = { { { {0xE5F0C347, 0x0E28DEE4, 0xA5CC77A6, 0xAAF9E02C, 0x6B18E7E5, 0xE7E9A8C7, 0x59EFE98C, 0x6AD8684B},
10105 {0x7AB21810, 0x96F0366A, 0x5E9811C0, 0x46334DBE, 0x001C9FE1, 0x4B28607E, 0x7B4165AA, 0x4CAB2A6F} } ,
10106 { {0x2EEDBE19, 0x699A70AE, 0xB2968D7C, 0x5C6830BE, 0x0B6BADEF, 0xDE8D7FE3, 0xC328AD13, 0x104EC572},
10107 {0xCA9175DC, 0x1AA03CA0, 0xA5473BCB, 0xFF26C7FC, 0xE7F03E6E, 0x36ED1937, 0xC338D976, 0x6ED9A568} } } ,
10108 { { {0x8517582E, 0xC81E45D7, 0x6AD6090A, 0xDBDBB8AB, 0x692D1675, 0x1B0519CD, 0xFA887261, 0x5A465859},
10109 {0xE6203362, 0x1A30C5F8, 0xAF54634F, 0xF2237556, 0x189C4FF3, 0x58B97E6E, 0x469F5749, 0x43CDB698} } ,
10110 { {0x488EEC88, 0x3ECB9DA5, 0xEFC6EACD, 0xF2D5467B, 0x945ECCFA, 0xAB2BF72E, 0xF75455BD, 0x0DF01BB0},
10111 {0x5B0C6673, 0xEAAC0DCF, 0xFEBBB5DC, 0x8845896B, 0x8B08A0B0, 0xEA14D933, 0x7DAB5AC3, 0x73815C95} } } ,
10112 { { {0x87D73F12, 0x5B557F26, 0x00842D3A, 0xC8ABC730, 0xBE56AB3D, 0xE8DEBEF8, 0xF63464BF, 0x702643A7},
10113 {0x2ECBD31E, 0x5B142BBB, 0x98FFE41D, 0xB5D0070A, 0xB2014EA8, 0x9EF76546, 0x616CDD11, 0x22C85C3E} } ,
10114 { {0x6B053568, 0x329FEFAA, 0x644E7332, 0x524CBB51, 0x9DAA4899, 0xD9986FDC, 0x6D6DA20D, 0xB9FC2095},
10115 {0xD11CB3F8, 0xBD2FF086, 0x2B2C8167, 0x43A2C03B, 0x2B4A797F, 0x99CE9C04, 0xAE1A60F0, 0x9DD70258} } } } ;
10117 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2337 a000");
10118 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2338 a001");
10119 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2339 a010");
10120 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2340 a011");
10121 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2341 a100");
10122 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2342 a101");
10123 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2343 a110");
10124 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2344 a111");
10125 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2345 a200");
10126 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2346 a201");
10127 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2347 a210");
10128 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2348 a211");
10131 static const fp12_t var_a = { { { {0xE1B80DA8, 0x61D690DF, 0x1761939F, 0xDB8C858F, 0x89C5F934, 0x167A5699, 0xD1D661A4, 0x055EBA30},
10132 {0xC688FEBA, 0x0A28D836, 0x78F81464, 0xB39F4D94, 0xAE6E754D, 0x281FA97B, 0x82E8C5FE, 0x03989256} } ,
10133 { {0x5B197750, 0x7D432780, 0x21282B28, 0xCECEC6BF, 0x31C7C9F1, 0x307B1C43, 0xA0BDA9CE, 0x25FB445B},
10134 {0xAC78111B, 0xCACC7637, 0x772F06FF, 0x3BAE060C, 0xEBC26183, 0x3FEB7B75, 0x5CA7B50B, 0x521D96C9} } } ,
10135 { { {0x6AE6508A, 0x4A97F46D, 0xBF8E80D6, 0x3ABEFA90, 0x6F26EE98, 0x8A63D123, 0xFB5BE780, 0x70F41F84},
10136 {0x459A7358, 0x19969A05, 0xE125EF12, 0x7D10B8FA, 0xD1CABC6B, 0xB58B3BB6, 0xD72D8F6C, 0x36845505} } ,
10137 { {0x7DC03CFC, 0x95EAD065, 0xC48EAF81, 0x466E24A2, 0x8A5F3535, 0x6D4B99D2, 0x9EBD780B, 0x04F40788},
10138 {0xC7500886, 0xE1965D77, 0xA39C43D9, 0xFB7A4DDD, 0x445035CB, 0xE3A6704F, 0x11B827BC, 0x1FAB66ED} } } ,
10139 { { {0xCA88052D, 0x64520E57, 0x8EB297D2, 0xA6541448, 0x5E972FCE, 0x4D4B9C2E, 0x86C43DB0, 0x2FE969EA},
10140 {0x430A216F, 0x4B7F8E5E, 0x15F16DD4, 0x63B2CFCD, 0x157DFA96, 0x67CB121B, 0x27A462E9, 0x06DB28DF} } ,
10141 { {0x05A7A850, 0x02DC56E0, 0x19106538, 0x29EDD4AC, 0x5997B060, 0xE6CB7CC1, 0x713D78C5, 0x07A19759},
10142 {0x966DC3D7, 0xBED71D15, 0x2349DC74, 0xEFF592ED, 0xA59B844B, 0x0CE07318, 0x76DED5A5, 0x073AFC9E} } } } ;
10143 static const fp12_t var_b = { { { {0x4736D096, 0xF7C1FB67, 0x1875C725, 0x15246B60, 0x2A8F3342, 0x2BF609E8, 0x1B4CF4ED, 0x113D7059},
10144 {0x8EEE856C, 0xE53A7AD7, 0xFBAA89E2, 0xA65AA541, 0x9D85BD23, 0xFAF3940C, 0x1B79CDE9, 0x28164B5D} } ,
10145 { {0x257C7DED, 0x0A5B65A1, 0xD8DA8233, 0xCC0BB842, 0x16EFC98B, 0x53639ACB, 0x029F71A9, 0x9EDB761C},
10146 {0xC2D947EF, 0xA93BB798, 0x5F8590A8, 0x1E9026F7, 0x35D562E4, 0x838E620C, 0x72B4E960, 0x92BA2480} } } ,
10147 { { {0x4D02A8BE, 0x49B22EF3, 0x6ABE92B5, 0xB5DAF2C1, 0xA5DF34FB, 0xE44C1C24, 0x21204256, 0x12940953},
10148 {0x469A4B62, 0x335C1A45, 0xA8AB5A98, 0x048532FA, 0x40E23E1C, 0x45FEFE11, 0x9913407D, 0x3D090C24} } ,
10149 { {0x5DAC68F9, 0xF76CB25E, 0xEEA3F59F, 0xFDAF7653, 0xEC63CB48, 0x86DC610B, 0x78FD45DF, 0x245112B4},
10150 {0xF3137D00, 0xEA321DD2, 0xC0F5D831, 0x91DE4C05, 0x1D614624, 0x0E2E19CD, 0xEEE72766, 0x4701592E} } } ,
10151 { { {0x839556C6, 0xA1512DEF, 0xF154A837, 0x8DA63AFE, 0xF5497630, 0x3F7C08CD, 0x81C309DD, 0xB9C87162},
10152 {0x9A37281E, 0x79AEE300, 0xD661669D, 0xCF5D5F69, 0x77DB9AD0, 0x026B51BE, 0x8BE89747, 0xB409DC78} } ,
10153 { {0x561D15A1, 0x1125544E, 0xC25F9446, 0xC599680A, 0x055187A4, 0x49264CAD, 0xBB656170, 0x2051F890},
10154 {0xD10E771A, 0xC9F16852, 0xAD92A03B, 0x509AA169, 0x85D7B25D, 0x77BE858C, 0xD03A0AFE, 0xAFC6FE85} } } } ;
10155 static const fp12_t var_expected = { { { {0x28EEDE3E, 0x59988C47, 0x2FD75AC5, 0xF0B0F0EF, 0xB4552C76, 0x42706081, 0xED235691, 0x169C2A89},
10156 {0x55778426, 0xEF63530E, 0x74A29E46, 0x59F9F2D6, 0x4BF43271, 0x23133D88, 0x9E6293E8, 0x2BAEDDB3} } ,
10157 { {0x1E69C0A2, 0x88B00370, 0x258ACE14, 0x87C8D261, 0xF4D509C8, 0x887E5AA2, 0x633E3F4E, 0x0AC31BB5},
10158 {0x0D25246F, 0x7519A41F, 0x023CB861, 0x472C8063, 0xCDB53AB2, 0xC8198116, 0x8F3DC242, 0x2AC41C87} } } ,
10159 { { {0xB7E8F948, 0x944A2360, 0x2A4D138B, 0xF099ED52, 0x15062393, 0x6EAFED48, 0x1C7C29D7, 0x838828D8},
10160 {0x8C34BEBA, 0x4CF2B44A, 0x89D149AA, 0x8195EBF5, 0x12ACFA87, 0xFB8A39C8, 0x7040CFE9, 0x738D612A} } ,
10161 { {0xDB6CA5F5, 0x8D5782C3, 0xB332A521, 0x441D9AF6, 0x76C3007E, 0xF427FADE, 0x17BABDEA, 0x29451A3D},
10162 {0xBA638586, 0xCBC87B4A, 0x64921C0B, 0x8D5899E3, 0x61B17BF0, 0xF1D48A1C, 0x009F4F22, 0x66ACC01C} } } ,
10163 { { {0xEBF12758, 0x06B4B295, 0xAB8F60C3, 0x20E8A2A6, 0xFFFE1C4A, 0x91674890, 0xC8686B64, 0x2F9E3C8A},
10164 {0x7B1514F2, 0xC63FE7AD, 0x17DAF52A, 0x1FFE8296, 0x39770BB2, 0x6ED6076E, 0x736E1E07, 0x00D16695} } ,
10165 { {0x5BC4BDF1, 0x1401AB2E, 0xDB6FF97E, 0xEF873CB6, 0x5EE93804, 0x2FF1C96E, 0x2CA2DA36, 0x27F38FEA},
10166 {0x677C3AF1, 0x88C88568, 0xD0DC7CB0, 0x40903456, 0x2B7336A9, 0x849EF8A5, 0x4718E0A3, 0xB701FB24} } } } ;
10168 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2349 a000");
10169 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2350 a001");
10170 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2351 a010");
10171 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2352 a011");
10172 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2353 a100");
10173 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2354 a101");
10174 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2355 a110");
10175 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2356 a111");
10176 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2357 a200");
10177 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2358 a201");
10178 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2359 a210");
10179 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2360 a211");
10182 static const fp12_t var_a = { { { {0xCF370236, 0x4B3A049A, 0x6AE7E615, 0x80350FC6, 0x9C7E22AB, 0x0EF5887D, 0xA20E3D46, 0x1AF6CBBB},
10183 {0xAB026123, 0x035020FE, 0x9CD0EC20, 0xC3AB13D0, 0x1ADA6657, 0x09392AD7, 0xD987F1DC, 0x2EB326AF} } ,
10184 { {0xDD2D3AD3, 0x9DA4AD14, 0x393D9A62, 0x6563B17F, 0x836FC295, 0x5653B2C2, 0x73D6940A, 0x49CDDABE},
10185 {0x0431C09A, 0x8E700B66, 0x8EA8FEC9, 0x62A0790A, 0x9504E3D9, 0x84C3B9A7, 0x0283D9C4, 0x51A7AAAE} } } ,
10186 { { {0x39A9C1DB, 0x8D136A44, 0x105FAA39, 0xA80F7E0A, 0x1489EC6F, 0x144CFDC4, 0xACCB7E1F, 0x78D5BFA0},
10187 {0xA90AD837, 0x169336D1, 0xB30D0B16, 0x35E2E901, 0xA18D6F16, 0x0FEF1684, 0x6A8B0A0E, 0x1B23FCF7} } ,
10188 { {0x13FA91B9, 0xE7CE07A4, 0x69F86678, 0x98CCA9D5, 0x3FF63A5B, 0x87D9F9B4, 0x8907579F, 0x3F8B5A8A},
10189 {0x3355A30D, 0x816BFF0F, 0xCCD7F08A, 0xD0F1448A, 0x75E872A8, 0xFF44FC32, 0x6CAAC743, 0xB6236270} } } ,
10190 { { {0x6A71513D, 0xAFDA09FA, 0x4D014D5E, 0x0E4FC36A, 0x8646D143, 0x1ABA4AB6, 0x87390DFF, 0x5B707F50},
10191 {0xB4769337, 0xFC1CC1B8, 0x31C50D38, 0xE00F410E, 0xE3C74978, 0xF1965B51, 0x26AE0F6D, 0x1ABCE658} } ,
10192 { {0x29F5FBA6, 0x333B8ED3, 0x0DE00B5D, 0xB2C91B41, 0xB1E626FE, 0x9236DA7F, 0xE43E84F5, 0x71565BBE},
10193 {0x07CA75FB, 0xEB62FB85, 0xCE14158C, 0xA1B3F0C7, 0x4CB7098C, 0xAFCEDBF6, 0xF4AE091F, 0x65A0DD51} } } } ;
10194 static const fp12_t var_b = { { { {0x090CD39F, 0xFAD07E43, 0x89E7FF4A, 0xB9B1983F, 0x19488B79, 0xE67B8A20, 0x1C2BF8C3, 0x4A34E8AE},
10195 {0xFC3CCA7B, 0xFACADEAC, 0xD1B19215, 0x19F0EAB7, 0x5A9D19B0, 0x61BE534F, 0xF5B002C9, 0x9B669D0D} } ,
10196 { {0x9F4F73A2, 0xCC423109, 0x0ED0B7B4, 0x837445F6, 0x04C5899A, 0x4D46C036, 0xAD7B52E6, 0x39D3B34A},
10197 {0xC626AC87, 0x13AD19FB, 0x282F840E, 0xCB1C9C98, 0xF0F679CF, 0x600FE3F2, 0x4484152F, 0x2D522C3D} } } ,
10198 { { {0x5EBC21E6, 0xB58D3CA6, 0x5687E583, 0x9F882B5D, 0xA3EFF291, 0x4671FF02, 0x11E89F39, 0x14DE65D0},
10199 {0xA06C6A88, 0x5DC8456E, 0xA829D9D5, 0x9CD946D0, 0xDC4A1EA9, 0x3C7738E8, 0xC0768DD3, 0x404AD51E} } ,
10200 { {0x1EB32267, 0xFA4BFA9B, 0xD5DFE2A1, 0x13C1BCFF, 0x627001D9, 0x800C3D43, 0xCAAFC48C, 0x2044668F},
10201 {0xDBF7FA05, 0x412E3268, 0xE9B60AA1, 0x7BBEAEF7, 0x300792BE, 0xD25D216A, 0xC48C2C01, 0x0A8C6DBA} } } ,
10202 { { {0x356B669F, 0x26A4B2EE, 0x9A096929, 0x010D1B18, 0x46E099D4, 0xF3013610, 0x12C956E5, 0x6EE18FF8},
10203 {0xD1E32A4D, 0x67789493, 0x7091ED12, 0xBCCFEA60, 0xE24B7A04, 0x36577EEC, 0x6EE85ECB, 0x7618F047} } ,
10204 { {0x12163E86, 0x04E17370, 0x73EAE92D, 0x8F6BE4E6, 0x993FA69A, 0xE94F7AE6, 0xA59BA828, 0x227B0375},
10205 {0xF1EA8C81, 0xBBB25A0E, 0x7D968027, 0xBA29D978, 0x32BB1963, 0xCCCE641A, 0x5A0229EE, 0x8361019C} } } } ;
10206 static const fp12_t var_expected = { { { {0xD843D5D5, 0x460A82DD, 0xF4CFE560, 0x39E6A805, 0xB5C6AE25, 0xF571129D, 0xBE3A3609, 0x652BB469},
10207 {0x4512F703, 0xFF2C75FA, 0x9A0A9EEE, 0xCA8A51E7, 0x2194F652, 0x6F9721BB, 0x8F19187C, 0x100624FB} } ,
10208 { {0x7C7CAE75, 0x69E6DE1E, 0x480E5217, 0xE8D7F775, 0x88354C2F, 0xA39A72F8, 0x2151E6F0, 0x83A18E09},
10209 {0xCA586D21, 0xA21D2561, 0xB6D882D7, 0x2DBD15A2, 0x85FB5DA9, 0xE4D39D9A, 0x4707EEF3, 0x7EF9D6EB} } } ,
10210 { { {0x9865E3C1, 0x42A0A6EA, 0x66E78FBD, 0x4797A967, 0xB879DF01, 0x5ABEFCC6, 0xBEB41D58, 0x8DB42570},
10211 {0x497742BF, 0x745B7C40, 0x5B36E4EB, 0xD2BC2FD2, 0x7DD78DBF, 0x4C664F6D, 0x2B0197E1, 0x5B6ED216} } ,
10212 { {0x32ADB420, 0xE21A023F, 0x3FD8491A, 0xAC8E66D5, 0xA2663C34, 0x07E636F7, 0x53B71C2C, 0x5FCFC11A},
10213 {0xAD216877, 0xC3ABA7C6, 0xE2161BE4, 0x399E46E1, 0x520D7BB2, 0xD641C131, 0xF118171C, 0x069C3168} } } ,
10214 { { {0x3DB08341, 0xD7903337, 0x1292D740, 0xFC4B31E2, 0x7944E161, 0x125B245B, 0x59E388BC, 0x103E7086},
10215 {0x8659BD84, 0x6395564C, 0xA256FA4B, 0x9CDF2B6E, 0xC612C37D, 0x27EDDA3E, 0x95966E39, 0x90D5D69F} } ,
10216 { {0x3C0C3A2C, 0x381D0243, 0x81CAF48A, 0x42350027, 0x4B25CD99, 0x7B865566, 0x89DA2D1E, 0x93D15F34},
10217 {0x9788CDE1, 0xA826CBE2, 0x7732B66D, 0x48CC1D9F, 0x2B8F993B, 0x813CE3A5, 0x0E9156E5, 0x2EEE402C} } } } ;
10219 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2361 a000");
10220 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2362 a001");
10221 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2363 a010");
10222 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2364 a011");
10223 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2365 a100");
10224 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2366 a101");
10225 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2367 a110");
10226 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2368 a111");
10227 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2369 a200");
10228 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2370 a201");
10229 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2371 a210");
10230 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2372 a211");
10233 static const fp12_t var_a = { { { {0x11EB8D0A, 0x98575B34, 0x409C7DB5, 0xADB561CA, 0x2F1D5291, 0xC553BA06, 0x42FF2B24, 0xB39974A9},
10234 {0x12C53C48, 0x657FEE47, 0x145CC6B4, 0x4982665A, 0x982649F8, 0x27D8F3B1, 0x272FDF79, 0x9AD575E2} } ,
10235 { {0xBFDE0269, 0x31FFEA3E, 0x7C372EDB, 0xED9EAD12, 0x7E99C445, 0x54BB4458, 0xE63C2453, 0x0C6C9223},
10236 {0xE8C46048, 0xCDEE18F7, 0xA0268D1A, 0x69EF7622, 0x784F72E5, 0x203F56FD, 0x70F697A6, 0xAC9CC040} } } ,
10237 { { {0xFCB3E6C6, 0x53E7905D, 0x852053C7, 0xBEE1AF72, 0xDAEA7A39, 0x7D1406EA, 0xCCCCD4AE, 0x251952BC},
10238 {0x082828FE, 0x9F0F1235, 0xFBB741E3, 0x49F7E7A6, 0x25382D46, 0xD516F97A, 0xD2E26309, 0x32A903D5} } ,
10239 { {0x34BCC62F, 0xC9CB0D96, 0x2BD2F1C0, 0x484A1626, 0x8D5BF335, 0x87BD9CE9, 0xB35BDC40, 0x219EA87C},
10240 {0x6B18553C, 0xBE35BD41, 0xBBFED55B, 0x92E8A4B2, 0x2BFD715B, 0x95CDF7A8, 0xEDCA4368, 0x0F16C129} } } ,
10241 { { {0x9E05A179, 0x9DE84D5D, 0xCFD3F2CC, 0x3E83B1D3, 0x6F5E3922, 0xE5940411, 0x98E8BE6D, 0x4BC1FC8A},
10242 {0x21F26173, 0x57FA7FFF, 0x39177B90, 0xEE7E6C5E, 0x5BD6EB41, 0x0076B05C, 0xDAEBE96E, 0x3AC473B5} } ,
10243 { {0x50D201CE, 0x17DF355E, 0x40326527, 0x81D0F350, 0x456ED67D, 0x51A9CE46, 0x76FD8160, 0x74BA5AA4},
10244 {0x4671AC4E, 0xD26C19CE, 0xB472980B, 0x73485055, 0x6DD7929C, 0xE74014D9, 0x7A502A54, 0x5FC83011} } } } ;
10245 static const fp12_t var_b = { { { {0x9F138EA3, 0xC034293B, 0x88C718DB, 0x32305CD6, 0x1541EC3E, 0xC329C143, 0x8C9D4577, 0xAE57008C},
10246 {0x07243C01, 0xDAFC056F, 0x32508853, 0x3C65F3B7, 0x60CA7414, 0x6E1E20A3, 0x270A4428, 0x3B18229D} } ,
10247 { {0x1FBA8D9E, 0x61E38BD8, 0xF70A6CF4, 0xB36A1941, 0x2418BA81, 0x76F55F27, 0x5715D52F, 0x480DEF0F},
10248 {0x9A984BB7, 0x57B5595B, 0x9FE3B1BD, 0xCAE7D64C, 0x17F53AE1, 0xEF3CB55C, 0xFE97FD16, 0x3F016BED} } } ,
10249 { { {0x43D9764D, 0x03FB3DD9, 0x44694DFC, 0x9210E4A2, 0xA22C8CAF, 0xE5CB5D14, 0x52AB2F71, 0x1AF183D4},
10250 {0x9AD9B944, 0x70B670AC, 0xA79DB303, 0x17FC5F95, 0xB5460CB2, 0xF3F4C30D, 0x1DD5B401, 0x494DAEA4} } ,
10251 { {0x49D5DF34, 0xEED7D610, 0xB86B9398, 0xE7E4CA05, 0x5070DAF1, 0xBEBC751D, 0x3C0C0E6D, 0x253268A3},
10252 {0x972E1742, 0x90684169, 0x38C5677E, 0xEB5388A4, 0xA1B37A3A, 0x62F19ED6, 0x61B82324, 0x1D9882BE} } } ,
10253 { { {0x5CF7A5E4, 0xAD664F84, 0xE6D941AE, 0x9D38BFF6, 0x38FC4647, 0x06F82D4D, 0x91E2551C, 0x4959E20C},
10254 {0xE6275942, 0x6058EFA3, 0xD4F512DB, 0x9AEBB7CB, 0xD65C21B9, 0x5189EDD0, 0xE752D068, 0xA52ED926} } ,
10255 { {0x75794703, 0x0800F7A7, 0xEC376C23, 0x25AF8ACF, 0xF241564E, 0xF11D024F, 0x0FDF9389, 0x922825C5},
10256 {0xBE1025D9, 0xC8204D5B, 0x69980EEE, 0xA4BFEDE7, 0x3774A260, 0x186BF8F7, 0xCC08EB3B, 0x53B736D6} } } } ;
10257 static const fp12_t var_expected = { { { {0x4ED2E712, 0x599CFABE, 0xF4EBB74A, 0xCCD411FF, 0xF07CB51A, 0x8D1D1EDD, 0x8F7D9473, 0xA7DCD673},
10258 {0xB7BD43AE, 0x418D6A04, 0x72356FC1, 0x72D6AD70, 0xA50E3457, 0x9A96B7E9, 0x0E1B4778, 0x1BD9F9BD} } ,
10259 { {0xDF989007, 0x93E37616, 0x73419BCF, 0xA108C654, 0xA2B27EC7, 0xCBB0A37F, 0x3D51F982, 0x547A8133},
10260 {0x21307764, 0x26B4E8A2, 0x6B925F91, 0x21C59FCE, 0x3C622412, 0x141BAFEE, 0x2F6FB894, 0x318A8D6C} } } ,
10261 { { {0x408D5D13, 0x57E2CE37, 0xC989A1C3, 0x50F29414, 0x7D1706E9, 0x62DF63FF, 0x1F780420, 0x400AD691},
10262 {0xA301E242, 0x0FC582E1, 0xA354F4E7, 0x61F4473C, 0xDA7E39F8, 0xC90BBC87, 0xF0B8170B, 0x7BF6B279} } ,
10263 { {0x7E92A563, 0xB8A2E3A6, 0xE43E8559, 0x302EE02B, 0xDDCCCE27, 0x467A1206, 0xEF67EAAE, 0x46D1111F},
10264 {0x02466C7E, 0x4E9DFEAB, 0xF4C43CDA, 0x7E3C2D56, 0xCDB0EB96, 0xF8BF967E, 0x4F82668C, 0x2CAF43E8} } } ,
10265 { { {0xFAFD475D, 0x4B4E9CE1, 0xB6AD347B, 0xDBBC71CA, 0xA85A7F69, 0xEC8C315E, 0x2ACB1389, 0x951BDE97},
10266 {0xA5ED861A, 0xB964E5F1, 0x3994AF24, 0x76587789, 0xDE508346, 0x56A041C1, 0x821FDDAD, 0x25DFAE1A} } ,
10267 { {0x641F1436, 0x20F1A354, 0x57F1F203, 0x946ED17F, 0xE3CDA316, 0x4766742A, 0x46BE38C1, 0x4CCEE1A7},
10268 {0x0481D227, 0x9A8C672A, 0x1E0AA6FA, 0x18083E3D, 0xA54C34FD, 0xFFAC0DD0, 0x4659158F, 0xB37F66E8} } } } ;
10270 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2373 a000");
10271 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2374 a001");
10272 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2375 a010");
10273 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2376 a011");
10274 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2377 a100");
10275 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2378 a101");
10276 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2379 a110");
10277 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2380 a111");
10278 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2381 a200");
10279 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2382 a201");
10280 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2383 a210");
10281 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2384 a211");
10284 static const fp12_t var_a = { { { {0x69F8710C, 0x0853D73D, 0x5A3F053D, 0x22F48409, 0x04EB06BC, 0xF9EE7625, 0x72EC6330, 0x9143FF75},
10285 {0x313ED927, 0xF3FA13C8, 0x4DB36579, 0xB9DCA83D, 0x968BCB17, 0x552D879F, 0x2C60CD8A, 0x1E432BF8} } ,
10286 { {0x4DF0F7B2, 0xF6E2D74D, 0xFB260556, 0x74DD3B48, 0x320C9932, 0xD73B9614, 0xB71ED6E8, 0x1754E357},
10287 {0x1A424EBF, 0x46F4D01E, 0x6E115D74, 0x11CA9184, 0x5555D90E, 0xD2BE55F9, 0x656D19AD, 0x24C009AD} } } ,
10288 { { {0x750CC71C, 0x5A97DB85, 0xDC72C32C, 0x3D7B5278, 0x8275BFAD, 0x8475536A, 0x1C83CB9D, 0x361AF6F7},
10289 {0x49753DE0, 0x6E32C130, 0xF9638617, 0xB6E47276, 0x1B132AD5, 0xB736D5FD, 0x946A4703, 0x69447103} } ,
10290 { {0x77771249, 0xFF4B621C, 0x4BC4647A, 0xDD2744A4, 0x3802C59D, 0x393D3469, 0x1DF02694, 0x3D7CC0DD},
10291 {0x540D6F84, 0x52CF78BA, 0xAFC0C86A, 0x3A2406FA, 0x22C715A3, 0x5924FC5E, 0x16C0B91D, 0x18E367D6} } } ,
10292 { { {0xC5FF7CFA, 0xEE72252C, 0x01317D3A, 0xE3855F20, 0x86061BA1, 0x7393E003, 0x37B6F4F6, 0x0582E67F},
10293 {0x4E5D5915, 0x1DD4EF32, 0xEAA315AA, 0x4CBE64B2, 0x3B30ABB9, 0x54DF05A5, 0x0819632A, 0x2745A883} } ,
10294 { {0x9C40B098, 0x6D4A6E53, 0x466F0380, 0x68EAADEC, 0x2B0B1DB8, 0xDD4C21AB, 0x280C95E3, 0x8CCC3C44},
10295 {0x1231E689, 0x34620488, 0x958A1FD5, 0x26A3F126, 0xC76D511C, 0x765750AC, 0xC7EE11DE, 0xB634884D} } } } ;
10296 static const fp12_t var_b = { { { {0x294019C3, 0x0821EA1A, 0xACED3F34, 0x54B8A9F4, 0x3346A533, 0x7FD8B80D, 0x6CA6C5F8, 0xB5D62F5A},
10297 {0x0D357472, 0x45FEE70A, 0x09A5DE1A, 0xBDC72B31, 0x1B8BB6F5, 0xE783DA14, 0x2F017235, 0x0DC97243} } ,
10298 { {0x6471EC81, 0x8731B5F5, 0x535B45DD, 0x1B254A02, 0x34C26E95, 0x8D99B72D, 0xC0BFC59B, 0x8CD43CD9},
10299 {0xFCDFDE58, 0x342179BD, 0x87A74138, 0xDD3F72CE, 0x6C213300, 0xEF97E89D, 0x5FFBBC27, 0x86ADAE48} } } ,
10300 { { {0x212B4FD2, 0xF38CE31A, 0xC91B6568, 0x60EEDDD0, 0xB6424835, 0x7F92AA59, 0xE14C593A, 0xA05BBCDB},
10301 {0x2F290E16, 0x2EC7942B, 0xBD8F6073, 0x1049F390, 0xE35579B8, 0x35E9983F, 0xF26EF3D7, 0xA4FAA32F} } ,
10302 { {0x14F7B9E2, 0x96AA3A15, 0x0718156E, 0xEE6B2639, 0x2893F2BE, 0x13F5DBB1, 0x8DCCF1D7, 0x09736D27},
10303 {0xBCC09AE5, 0x9B445477, 0xEDA3DB55, 0x69177F76, 0x39EEB85D, 0x8EA99ED4, 0xC6FBC4F1, 0x122A6ED5} } } ,
10304 { { {0xB8BF9374, 0xF69D1B2B, 0x95E54623, 0x21F0B23E, 0x8B47A3AD, 0x3697A5D2, 0xC1B3FC42, 0x070BBA14},
10305 {0x9881D4D5, 0x232BC0EA, 0xC4E6E64B, 0x2890FCA9, 0x133099E5, 0x1192FA92, 0xB7830A7B, 0x00BFA04A} } ,
10306 { {0x1A38BE5C, 0xE06C6178, 0x7070DB7F, 0x0D255ED0, 0xD548DE46, 0x325940C1, 0xF7E63535, 0x0229BDC2},
10307 {0x97C186A4, 0xB0DA3312, 0x5BE84106, 0xBC589D7E, 0x023258B7, 0x1E744506, 0xA3FAE1B0, 0x25574BFB} } } } ;
10308 static const fp12_t var_expected = { { { {0x310C5634, 0x118737A6, 0x32B4652A, 0x649B815D, 0xE44F223A, 0x7E66D1C6, 0x9F744D00, 0x8D06900D},
10309 {0x3E744D99, 0x39F8FAD2, 0x57594394, 0x77A3D36E, 0xB217820D, 0x3CB161B3, 0x5B623FC0, 0x2C0C9E3B} } ,
10310 { {0xB262E433, 0x7E148D42, 0x4E814B34, 0x9002854B, 0x66CF07C7, 0x64D54D41, 0x77DE9C84, 0xA4292031},
10311 {0x17222D17, 0x7B1649DC, 0xF5B89EAC, 0xEF0A0452, 0xC1770C0E, 0xC2563E96, 0xC568D5D5, 0xAB6DB7F5} } } ,
10312 { { {0x340BE253, 0x4F3634EE, 0xD116494E, 0x8B5883A8, 0xE4D57E2D, 0x08A7A158, 0xBDB148AF, 0x1C631510},
10313 {0x1672175B, 0x9E0BCBAA, 0xE27B0743, 0xB41CB966, 0xAA861AD8, 0xF1C011D1, 0x46BA5EB1, 0x542B7571} } ,
10314 { {0x8C6ECC2B, 0x95F59C31, 0x52DC79E9, 0xCB926ADD, 0x6096B85C, 0x4D33101A, 0xABBD186B, 0x46F02E04},
10315 {0x10CE0A69, 0xEE13CD32, 0x9D64A3BF, 0xA33B8671, 0x5CB5CE00, 0xE7CE9B32, 0xDDBC7E0E, 0x2B0DD6AB} } } ,
10316 { { {0x7EBF106E, 0xE50F4058, 0x9716C35E, 0x0576115E, 0x114DBF4F, 0xAA2B85D6, 0xF96AF138, 0x0C8EA093},
10317 {0xE6DF2DEA, 0x4100B01C, 0xAF89FBF5, 0x754F615C, 0x4E61459E, 0x66720037, 0xBF9C6DA5, 0x280548CD} } ,
10318 { {0xB6796EF4, 0x4DB6CFCB, 0xB6DFDF00, 0x76100CBC, 0x0053FBFE, 0x0FA5626D, 0x1FF2CB19, 0x8EF5FA07},
10319 {0x47C73892, 0xE64DADE9, 0x1CFA8194, 0xCFEAE204, 0x75BD201E, 0x996B3947, 0x2BCA1765, 0x21783587} } } } ;
10321 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2385 a000");
10322 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2386 a001");
10323 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2387 a010");
10324 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2388 a011");
10325 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2389 a100");
10326 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2390 a101");
10327 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2391 a110");
10328 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2392 a111");
10329 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2393 a200");
10330 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2394 a201");
10331 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2395 a210");
10332 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2396 a211");
10335 static const fp12_t var_a = { { { {0x96C5A28E, 0x5991B183, 0x77D0DC0A, 0xA0172FD9, 0xDA713E7B, 0x6C5F3FB5, 0xF15937F0, 0x732E0194},
10336 {0x527F7A9D, 0x69B7712F, 0x5CED1BEC, 0x1F41D805, 0x27970F7A, 0x3EA98CCB, 0xA8D2646D, 0x621D3D2E} } ,
10337 { {0xBA0A2258, 0xAEA8ABB0, 0x239BBD4E, 0x6E31395C, 0x0FB48F3C, 0xB29D103E, 0xA7F5355A, 0x439DAE33},
10338 {0x5AF68E2F, 0xB96DB52E, 0xB71083A0, 0x199FA353, 0xEA07594B, 0x5AE38823, 0xA293DBA1, 0x78141A37} } } ,
10339 { { {0x63F83C75, 0x64E8D468, 0xD73595A8, 0xE462F6E6, 0xCA92FFF0, 0xE96761D7, 0x5B520206, 0x6B73359D},
10340 {0x05ABAD85, 0x49CE7CAC, 0xECC1C818, 0xFE129949, 0x46592CF5, 0x857CD0C1, 0xADE36378, 0x52EC01C8} } ,
10341 { {0xFF8DA07E, 0x47B254B3, 0x5F966F67, 0x2B2EA0D0, 0x5426ADF3, 0x5962883D, 0xC6B752B5, 0x0E04674E},
10342 {0x88DC5440, 0x02B84E4F, 0xEA3D71A0, 0x4F3D5912, 0x1F711D56, 0x18276424, 0xE7BA13C4, 0x63AF08D8} } } ,
10343 { { {0xC707B236, 0x5F68376C, 0x1D434FB1, 0xF673EC4D, 0x852F14FB, 0x76319B96, 0xE643224B, 0x78EB4706},
10344 {0x580115A0, 0x0C96BBCE, 0xDDD6EDE7, 0xCDE061DC, 0x99784925, 0xACDD297B, 0xAC529396, 0x5AE68D66} } ,
10345 { {0xCD558C73, 0xF65196E3, 0xDFC65A7A, 0x272EEC7D, 0x22F7DDAB, 0xF8290125, 0xB81E3297, 0x78B7A3B6},
10346 {0x2B178DB7, 0xD0EFD8D5, 0x31C40CBB, 0x79F29A10, 0x1B2C2EA0, 0x1A73CFA8, 0x9BF52F9A, 0x28A8185A} } } } ;
10347 static const fp12_t var_b = { { { {0x69976A71, 0x931A7F4F, 0xB2F954D2, 0xDE90D6FF, 0x3181DB00, 0xD9407457, 0x7A6981DA, 0x210CF9FD},
10348 {0x92C5E5BA, 0xFA0A370A, 0xC17B1D2B, 0x80979AE5, 0xF4496BE7, 0x80C21515, 0x4FB0662D, 0x4595B84C} } ,
10349 { {0xCC3EDD69, 0x01744BEC, 0x0E586ABE, 0x6908600E, 0xA2F9E148, 0x573B8CB4, 0x67EFE25A, 0x099FCD0D},
10350 {0xEA903FF9, 0x6D21169B, 0xF5D3E530, 0x9E8F5BD5, 0x07493306, 0x2A1F0440, 0xA7BDEB9A, 0x504F45A2} } } ,
10351 { { {0x90123D9C, 0x475E2E56, 0x28B6763C, 0x909250BF, 0xA392464E, 0xDFBE61AA, 0xC073AD00, 0x359ABB78},
10352 {0x203882D3, 0x58B700E0, 0xA9B733E7, 0x467E8687, 0x27F89150, 0xC2C42900, 0xFDFF4468, 0x12A5D094} } ,
10353 { {0xCA9F7394, 0xAE116C3A, 0xD0B36E7C, 0x336FF733, 0xF85E84B4, 0x2F0127BC, 0x7EE091DF, 0x76449AC9},
10354 {0x6FA846D9, 0x1F1D6C30, 0x9DF1B4AE, 0xC609B32D, 0x0A0C285F, 0x0F07EBA4, 0xF2A00D2C, 0x63D96493} } } ,
10355 { { {0x0A8A017F, 0xC18EC761, 0x678C5D5D, 0x4D3AD021, 0xFFAB737B, 0x4558E685, 0x5F207E43, 0x6A115216},
10356 {0xA7AE3950, 0x6F0D3367, 0x00FC3264, 0x26DCC40C, 0x5A2732CC, 0x3842DD16, 0x9F16D1F8, 0x477C4254} } ,
10357 { {0x48B94262, 0x49D4255A, 0x0F43B19A, 0x534C7CD7, 0x50B83530, 0x57AA436F, 0x2081AFDE, 0x1A197FA2},
10358 {0xFE0464BE, 0x31888CBF, 0xBE7D3505, 0xE76793D9, 0xFB0A7A95, 0x9629D214, 0x2422A560, 0x2E4ACB67} } } } ;
10359 static const fp12_t var_expected = { { { {0x005D0CFF, 0xECAC30D3, 0x2ACA30DC, 0x7EA806D9, 0x0BF3197C, 0x459FB40D, 0x6BC2B9CB, 0x943AFB92},
10360 {0xE5456057, 0x63C1A839, 0x1E683918, 0x9FD972EB, 0x1BE07B61, 0xBF6BA1E1, 0xF882CA9A, 0xA7B2F57A} } ,
10361 { {0x8648FFC1, 0xB01CF79D, 0x31F4280C, 0xD739996A, 0xB2AE7084, 0x09D89CF2, 0x0FE517B5, 0x4D3D7B41},
10362 {0xE35A998D, 0x27A04218, 0xD86C898A, 0xA51D5288, 0x9D6E029C, 0x89A22FF8, 0x0A32EB12, 0x0E4FC118} } } ,
10363 { { {0xF40A7A11, 0xAC4702BE, 0xFFEC0BE4, 0x74F547A5, 0x6E25463F, 0xC925C382, 0x1BC5AF07, 0xA10DF116},
10364 {0x25E43058, 0xA2857D8C, 0x9678FBFF, 0x44911FD1, 0x6E51BE46, 0x4840F9C1, 0xABE2A7E1, 0x6591D25D} } ,
10365 { {0xCA2D1412, 0xF5C3C0EE, 0x3049DDE3, 0x5E9E9804, 0x4C8532A7, 0x8863AFFA, 0x4597E494, 0x84490218},
10366 {0x9658667E, 0x22E730CE, 0xB3B74707, 0x02355F9F, 0xD59ABC01, 0x2BCEF35C, 0x9A3B44C7, 0x0D74CEAA} } } ,
10367 { { {0x6F657F1A, 0x2208751C, 0xB057CDC8, 0x309D0FCD, 0x30F7FEC2, 0xC02A25B1, 0x0544C465, 0x28E8FA5B},
10368 {0xFFAF4EF0, 0x7BA3EF35, 0xDED3204B, 0xF4BD25E8, 0xF39F7BF1, 0xE5200691, 0x4B69658E, 0xA262CFBB} } ,
10369 { {0x160ECED5, 0x4025BC3E, 0xEF0A0C15, 0x7A7B6954, 0x73B012DB, 0x4FD34494, 0xD89FE276, 0x92D12358},
10370 {0x291BF275, 0x02786595, 0xF04141C1, 0x615A2DE9, 0x1636A936, 0xB09DA1BD, 0xC017D4FA, 0x56F2E3C1} } } } ;
10372 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2397 a000");
10373 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2398 a001");
10374 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2399 a010");
10375 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2400 a011");
10376 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2401 a100");
10377 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2402 a101");
10378 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2403 a110");
10379 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2404 a111");
10380 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2405 a200");
10381 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2406 a201");
10382 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2407 a210");
10383 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2408 a211");
10386 static const fp12_t var_a = { { { {0x59F807A0, 0x4DB7DBC7, 0x578FD476, 0xE5868420, 0x717B356E, 0xDD7D4847, 0x7F0BD6B9, 0x19D51909},
10387 {0xAC71DE40, 0x8B7919DC, 0xACA29F11, 0xF0E685B1, 0xB8FED4FC, 0xB8FBBEA6, 0x5C85B1CF, 0x3E27BB3F} } ,
10388 { {0x51716E78, 0x176131F6, 0x092633B0, 0xE5756159, 0x26D8CE89, 0x92E94001, 0x7871593F, 0x3745E009},
10389 {0x666F9455, 0xE7875894, 0x3B0C3D6F, 0x421D8C55, 0xF9986918, 0x788D4C9B, 0xE5547141, 0x68DCA75D} } } ,
10390 { { {0x86FDB55E, 0x30DFDFA7, 0x35897344, 0x735FBAAF, 0x74EC5F47, 0x6D2480A7, 0x49DE95C9, 0x84FFC31A},
10391 {0x5E739E80, 0xEFAD4597, 0x6BA16F8C, 0xF7722FED, 0xBA0EA5B2, 0xF8D99DB8, 0x1CC8B96B, 0x682721BE} } ,
10392 { {0x8D754B70, 0x62B31242, 0x26D8C4B5, 0xF1538830, 0xA1614EB9, 0xA81569C8, 0x6EC6EC79, 0x5340FC70},
10393 {0x2920469A, 0x8C6BAF40, 0x00B6BA15, 0xA5546913, 0x34EF4656, 0x8C77A804, 0x5EA561C5, 0x6A321054} } } ,
10394 { { {0x3B010703, 0xB463EDFA, 0x699F407F, 0xFF3D1DE5, 0x32BC00EA, 0xBBE4BA76, 0xA4B7A935, 0x35FABBB2},
10395 {0x3EE3EE00, 0xE69EB691, 0x25FB15AB, 0x0B00C8C4, 0x8CEA0DC9, 0xCEA3117F, 0x08957FA9, 0x1F51A34E} } ,
10396 { {0x423B69E4, 0x711C0C43, 0xF830815E, 0x6BE061DF, 0x97C94181, 0x6628C4CB, 0xA809DFBC, 0x3FD1ED00},
10397 {0x5171B6EB, 0x67020420, 0x49C72B02, 0x2CA55899, 0x2704896E, 0x96349DA4, 0xB6104990, 0x77257951} } } } ;
10398 static const fp12_t var_b = { { { {0x1E5F4BFD, 0x20E6BD6D, 0x5CCB888F, 0x8F40065B, 0xD15BD380, 0x915B0A6D, 0x784A3F56, 0xB1924855},
10399 {0x57169556, 0xB7BC7714, 0x18E64C99, 0x47764867, 0xAAE2D215, 0xFD2704F1, 0x47336965, 0xA4AF50E6} } ,
10400 { {0x3EDDA553, 0x8BE9BC70, 0x65BBA497, 0x950172C6, 0x2AC2E098, 0x85A3BC34, 0xD0D5E452, 0xAF75C443},
10401 {0x86053277, 0xBFF0DC74, 0x7F68F84E, 0xDEB7E90F, 0xFA1FC1EC, 0x5C348FC3, 0xD688AB61, 0x165EDDFA} } } ,
10402 { { {0xD866B297, 0xBB4B1DAA, 0x75DAD9FC, 0x2E291EEC, 0x7AF02A8B, 0xB629B6A0, 0xAEDD1FDD, 0x83FA0DC9},
10403 {0x51A96B4F, 0xAA4DA181, 0xAB74F72A, 0xB2D01CD8, 0x3C9987DD, 0x4C5875DF, 0xC1DEFAE4, 0x801DBFBB} } ,
10404 { {0xA033EF9E, 0xFB29309D, 0x838F6DDF, 0x2AC40224, 0x33808AFB, 0xE165EF6B, 0xCD7F5670, 0x447EBA5B},
10405 {0x0DC75E97, 0xDFB0067F, 0x349E2E9F, 0xB147714C, 0x81DC4626, 0xAC0AA195, 0x64F4D7E4, 0x1754FF9B} } } ,
10406 { { {0x115CD434, 0xCFBD5B41, 0x1C6EFC62, 0xE25DFFE7, 0x5553DCA6, 0xF2F38D8D, 0x2C4C0ACF, 0x31C78F25},
10407 {0xD4AC6052, 0x075C940D, 0x460D3AFD, 0x552EB3F6, 0x69E443E6, 0x85AA6940, 0x5EE74C0A, 0x3A596CA5} } ,
10408 { {0x996D6A11, 0x04A1D9CB, 0x0E58AD93, 0x7F656524, 0x2903449F, 0x2F5A71D4, 0x88E6EF9B, 0x6D457F13},
10409 {0xB5C58FA8, 0x0C39770A, 0x4FA0945D, 0xE57BC7D7, 0xDF908EC1, 0x3F4F983B, 0x0BCB4E62, 0x2DB6C640} } } } ;
10410 static const fp12_t var_expected = { { { {0x162B1F02, 0x6FB00F83, 0xDFE37DBE, 0x61B4DDDA, 0xEEF47F3A, 0x7377F649, 0xB73739E7, 0x1153C29C},
10411 {0xA15C3EFB, 0x4447073F, 0xF1110C64, 0x254B2177, 0x0FFF1D5D, 0xBAC2672D, 0x639A3F0C, 0x28C36D63} } ,
10412 { {0x2E22DF30, 0xA45C64B5, 0x9A69F900, 0x6765277E, 0xFDB9256D, 0x1D2C9FC9, 0x09286169, 0x2CA8058B},
10413 {0xEC74C6CC, 0xA7783508, 0xBA7535BE, 0x20D57564, 0xF3B82B05, 0xD4C1DC5F, 0xBBDD1CA2, 0x7F3B8558} } } ,
10414 { { {0xFD38335A, 0xED3C73A0, 0xD6EC6DF9, 0x8E772CFA, 0x9BFA001D, 0x27EDDADC, 0xB89CD97E, 0x4EE63221},
10415 {0x4DF0D534, 0x9B0C5D67, 0x429E8770, 0x9730A025, 0xA2C5A3DB, 0x49D1B72C, 0x9E88D827, 0x2E3142B7} } ,
10416 { {0x2DA93B0E, 0x5DDC42E0, 0xAA683295, 0x1C178A54, 0xD4E1D9B5, 0x897B5933, 0x3C4642EA, 0x97BFB6CC},
10417 {0x36E7A531, 0x6C1BB5BF, 0x3554E8B5, 0x569BDA5F, 0xB6CB8C7D, 0x38824999, 0xC39A39AA, 0x81870FEF} } } ,
10418 { { {0x4C5DDB37, 0x8421493B, 0x860E3CE2, 0xE19B1DCC, 0x880FDD91, 0xAED84803, 0xD103B405, 0x67C24AD7},
10419 {0x13904E52, 0xEDFB4A9F, 0x6C0850A8, 0x602F7CBA, 0xF6CE51AF, 0x544D7ABF, 0x677CCBB4, 0x59AB0FF3} } ,
10420 { {0xDBA8D3F5, 0x75BDE60E, 0x06892EF1, 0xEB45C704, 0xC0CC8620, 0x9583369F, 0x30F0CF57, 0xAD176C14},
10421 {0x07374693, 0x733B7B2B, 0x9967BF5F, 0x12212070, 0x06951830, 0xD58435E0, 0xC1DB97F2, 0xA4DC3F91} } } } ;
10423 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2409 a000");
10424 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2410 a001");
10425 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2411 a010");
10426 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2412 a011");
10427 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2413 a100");
10428 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2414 a101");
10429 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2415 a110");
10430 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2416 a111");
10431 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2417 a200");
10432 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2418 a201");
10433 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2419 a210");
10434 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2420 a211");
10437 static const fp12_t var_a = { { { {0x70763C9B, 0xA3A9BFB7, 0xBAFBED6B, 0xB4E8D740, 0x89112897, 0x0D633B2D, 0xDD040D32, 0x43F2B24A},
10438 {0x88A53FD2, 0x16B6AC06, 0x526AB4F5, 0x37D25DFE, 0x5BCECDB1, 0x6F187C3F, 0x07B1A5B3, 0x5B05803F} } ,
10439 { {0xAB776094, 0xF3D3778C, 0xEE4C2B37, 0x624EFA47, 0x3AC80D71, 0x44C83261, 0x28A8C442, 0x84F8EBD7},
10440 {0x007BFBB1, 0x8FAF1C18, 0xBA2BB2B9, 0x4A33F1E3, 0x417A7AB7, 0xEDDD49EA, 0xF0DC42A1, 0xB49A4B3F} } } ,
10441 { { {0x9FE1F2CD, 0x7FC0F730, 0xB6CCDA4E, 0xAB770B32, 0x406CA408, 0xCF2394A0, 0xA60AE0F0, 0x42D93F41},
10442 {0x148C7BED, 0x1FEEF2DD, 0x359ABBE6, 0x6123359F, 0x3895C314, 0xD21F70FF, 0xA3B313F0, 0x6AA88D1A} } ,
10443 { {0x7EB75BC4, 0x0F5668A1, 0x8BE1D967, 0xDCBE0C46, 0x8CAAB0F5, 0xEA1F6E5D, 0x9550B3BE, 0x13683BD6},
10444 {0x9658E501, 0xB1C7E8B5, 0xDCB85C4C, 0xE8A68E07, 0xCFB0D36B, 0x7C35F4FA, 0xFD6C6FE6, 0x343AB068} } } ,
10445 { { {0x44BD06F2, 0xABF78C3D, 0x78FE1754, 0xCF5CD5DF, 0xA0582792, 0x00E7EBE9, 0x71F43E73, 0xB63D6404},
10446 {0xBFA1C41F, 0x6B6C44BE, 0x8587B491, 0xC79B4C8E, 0xD5C93BF5, 0x7B626720, 0xDB5C2B60, 0x3698B7B0} } ,
10447 { {0x7DDEFDB7, 0x9EDA0F57, 0xF84C6C0E, 0x1ABD4837, 0xF1009DA4, 0xDD931CF8, 0x373F6390, 0x13EE6D68},
10448 {0x45CDE23B, 0xB7C60214, 0x9C7B7123, 0xFF693DAC, 0xAD27F97A, 0xA77C51A6, 0xD92B3718, 0x62EF623A} } } } ;
10449 static const fp12_t var_b = { { { {0x081D18C1, 0x6F885449, 0x69821DDE, 0x2A8EEA6F, 0xD27FB072, 0x68616638, 0x25ED426B, 0x26453534},
10450 {0x5749D7C3, 0x3F15B713, 0x2650AB77, 0xAB1DF678, 0x56B6A0A7, 0x23864181, 0x55A7ED60, 0x75618CF3} } ,
10451 { {0x523D30B6, 0xE87CA4AD, 0x9BAA5C7E, 0x25D12C94, 0x8E0B3222, 0xE79A5B5E, 0xF728AE93, 0x0F25CA5C},
10452 {0x8EAB506E, 0xEC1B206C, 0xE42CBDB4, 0x5FC7EDAF, 0x07B8AFD1, 0x441861EA, 0xAC28F787, 0x997CC87A} } } ,
10453 { { {0x9308E208, 0x13F0E12A, 0xF01D8077, 0xC2A51B1B, 0xFE3E538C, 0xCF4B4944, 0xABB3BC57, 0x1A793131},
10454 {0x5E553C2A, 0xE7FCE7DD, 0x0397D227, 0xDC48E197, 0xE6907785, 0xA17492D8, 0x3BECC826, 0x80F891FB} } ,
10455 { {0xE0B937B6, 0x37C01FA9, 0x34FA5BF6, 0xDF042CF3, 0xE6FD1DC9, 0xD8EF34C6, 0x3C187ACC, 0x19DEE8FF},
10456 {0x7CEFA685, 0x98B61983, 0xF0B866F8, 0x2276FD4B, 0x58F82E47, 0x15751FD9, 0x9FFFC358, 0x1ADBB411} } } ,
10457 { { {0x8D7BC4B7, 0xDFEFF853, 0x756AEB65, 0x9FE1F6B7, 0x4CA7201C, 0xFD624E3C, 0xE99A8E3B, 0x1CC7C220},
10458 {0xDEB91CFD, 0xA8B310B6, 0x5832783C, 0x7425C07C, 0x0249ED0F, 0xB81BD075, 0xB511CCDE, 0x99883EF5} } ,
10459 { {0x30B7BEA0, 0xD335E2F9, 0xFF762E48, 0x62392CA8, 0x746583B7, 0x75714877, 0x2F09E074, 0x748DC808},
10460 {0xB7DBBD23, 0x015B6CD3, 0x28E850C1, 0x513F3D6B, 0xCAD01940, 0xE422C58D, 0x99423296, 0x6ED391C2} } } } ;
10461 static const fp12_t var_expected = { { { {0x7893555C, 0x13321400, 0x247E0B4A, 0xDF77C1B0, 0x5B90D909, 0x75C4A166, 0x02F14F9D, 0x6A37E77F},
10462 {0x7DC2E2FA, 0x56DDD968, 0xA4438125, 0xCFDEA7D5, 0x5EA2E4A3, 0x973E6155, 0x1D3AB6EA, 0x16536E70} } ,
10463 { {0xFDB4914A, 0xDC501C39, 0x89F687B6, 0x882026DC, 0xC8D33F93, 0x2C628DBF, 0x1FD172D6, 0x941EB634},
10464 {0x2CFB1784, 0x7CDBB2D3, 0xC9E09127, 0x96EA32F2, 0xF550A0D3, 0x36954F68, 0x5CE65E00, 0x940374F8} } } ,
10465 { { {0x32EAD4D5, 0x93B1D85B, 0xA6EA5AC5, 0x6E1C264E, 0x3EAAF795, 0x9E6EDDE5, 0x51BE9D48, 0x5D527073},
10466 {0x10B5837C, 0x08FD5109, 0x64BAAEC7, 0x2A5A6A95, 0xCB43B0E5, 0x7833A76C, 0x9F80FFEE, 0x318D8053} } ,
10467 { {0x5F70937A, 0x4716884B, 0xC0DC355D, 0xBBC23939, 0x73A7CEBF, 0xC30EA324, 0xD1692E8B, 0x2D4724D5},
10468 {0x13488B86, 0x4A7E0239, 0xCD70C345, 0x0B1D8B53, 0x28A901B3, 0x91AB14D4, 0x9D6C333E, 0x4F16647A} } } ,
10469 { { {0x700C970E, 0x8CF8FADF, 0x19F12373, 0x5C2D1FF6, 0x991CBDFA, 0x02E9DDBA, 0x1B6FF086, 0x18F18763},
10470 {0x3C2EAC81, 0x1530CBC4, 0x09424D87, 0x28AF606A, 0x84309F50, 0x381DDB2A, 0x504F1C16, 0x160D57E4} } ,
10471 { {0xAE96BC57, 0x720FF250, 0xF7C29A57, 0x7CF674E0, 0x6566215B, 0x53046570, 0x66494405, 0x887C3570},
10472 {0x9B7D6AC3, 0xBA32E536, 0xF0EBE29D, 0x3D96CE76, 0x24158906, 0x903EBAC9, 0x324E8D86, 0x17AF553B} } } } ;
10474 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2421 a000");
10475 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2422 a001");
10476 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2423 a010");
10477 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2424 a011");
10478 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2425 a100");
10479 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2426 a101");
10480 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2427 a110");
10481 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2428 a111");
10482 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2429 a200");
10483 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2430 a201");
10484 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2431 a210");
10485 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2432 a211");
10488 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10489 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10490 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10491 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10492 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10493 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10494 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10495 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10496 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10497 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10498 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10499 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10500 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10501 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10502 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10503 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10504 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10505 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10506 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10507 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10508 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10509 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10510 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10511 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10512 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10513 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10514 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10515 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10516 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10517 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10518 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10519 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10520 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10521 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10522 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10523 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10525 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2433 a000");
10526 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2434 a001");
10527 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2435 a010");
10528 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2436 a011");
10529 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2437 a100");
10530 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2438 a101");
10531 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2439 a110");
10532 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2440 a111");
10533 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2441 a200");
10534 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2442 a201");
10535 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2443 a210");
10536 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2444 a211");
10539 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10540 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10541 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10542 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10543 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10544 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10545 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10546 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10547 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10548 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10549 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10550 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10551 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10552 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10553 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10554 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10555 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10556 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10557 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10558 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10559 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10560 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10561 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10562 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10563 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10564 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10565 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10566 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10567 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10568 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10569 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10570 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10571 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10572 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10573 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10574 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10576 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2445 a000");
10577 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2446 a001");
10578 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2447 a010");
10579 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2448 a011");
10580 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2449 a100");
10581 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2450 a101");
10582 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2451 a110");
10583 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2452 a111");
10584 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2453 a200");
10585 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2454 a201");
10586 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2455 a210");
10587 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2456 a211");
10590 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10591 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10592 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10593 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10594 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10595 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10596 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10597 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10598 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10599 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10600 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10601 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10602 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10603 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10604 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10605 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10606 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10607 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10608 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10609 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10610 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10611 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10612 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10613 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10614 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10615 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10616 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10617 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10618 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10619 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10620 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10621 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10622 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10623 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10624 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
10625 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10627 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2457 a000");
10628 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2458 a001");
10629 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2459 a010");
10630 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2460 a011");
10631 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2461 a100");
10632 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2462 a101");
10633 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2463 a110");
10634 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2464 a111");
10635 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2465 a200");
10636 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2466 a201");
10637 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2467 a210");
10638 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2468 a211");
10641 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10642 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
10643 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10644 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10645 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10646 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10647 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
10648 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10649 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10650 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10651 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
10652 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10653 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10654 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10655 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10656 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10657 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10658 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10659 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10660 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10661 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10662 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
10663 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10664 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } } } ;
10665 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10666 {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
10667 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10668 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10669 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10670 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10671 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
10672 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
10673 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
10674 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
10675 { {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
10676 {0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
10678 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2469 a000");
10679 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2470 a001");
10680 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2471 a010");
10681 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2472 a011");
10682 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2473 a100");
10683 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2474 a101");
10684 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2475 a110");
10685 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2476 a111");
10686 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2477 a200");
10687 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2478 a201");
10688 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2479 a210");
10689 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2480 a211");
10692 static const fp12_t var_a = { { { {0x9D654EF6, 0x1B8DFF22, 0x61D51B42, 0xCA236A3E, 0xE37D11AF, 0xBA67F5C3, 0xC989060A, 0xB280C05A},
10693 {0x7EB30639, 0xCC9F07A0, 0x8DD4E1D5, 0x7BCEC77F, 0xD3204F4C, 0x318D16DA, 0xA9F3F3BF, 0x4A0C9F2F} } ,
10694 { {0xEB5E0F78, 0x02C57DC8, 0x65B8A647, 0xB7E2F7ED, 0x5FA13600, 0x85A2274F, 0xB66C9590, 0xA7F65765},
10695 {0xE7264C01, 0x7191F45B, 0xF4D6B2A3, 0xF30FFF1C, 0x835DB2A9, 0x78353617, 0x82974DD5, 0x1D12403F} } } ,
10696 { { {0x6DAAC7CD, 0x0F1170D5, 0x1AA0D814, 0x4AF264C4, 0xEC3BF0D3, 0xCE1ED682, 0x33FB3748, 0x645BF1BF},
10697 {0xE8F2EBF5, 0x99EB7BCB, 0x0B8466E3, 0xFA823F90, 0x7F8EBEBE, 0xD25E168C, 0x0182A1E6, 0x1862B8C3} } ,
10698 { {0xB8CE514F, 0x0D9931DA, 0xCD29FF60, 0xE5180CF1, 0xD0C4B25F, 0xD0098535, 0xBB47A2C1, 0x3A4116F7},
10699 {0xB4FB3022, 0x2EA620BF, 0xBDF5D1F9, 0x11F97740, 0xACEE83DD, 0x994414E8, 0x43B8B2C1, 0xAE2759C1} } } ,
10700 { { {0x40F58740, 0x051AC1EA, 0x37690E31, 0x1565CDD2, 0x3B2BB955, 0x06F19659, 0xCDDF793A, 0x015CEEB6},
10701 {0xC29CEB41, 0x5985A7E3, 0x399BA8CA, 0xF9A5627C, 0x2E3C5B8C, 0x64AAA6B0, 0xA5C0335C, 0x8E4C4902} } ,
10702 { {0x411896F4, 0x3C21DC64, 0xA00A542D, 0xF597BA71, 0xEF9683B9, 0x1E320675, 0x26333BE9, 0xB7F81437},
10703 {0xC5F8BDF6, 0x82A922E3, 0xEA08BCCD, 0xB32F2289, 0x6C080DA2, 0x0F6CD0B7, 0xC372A93F, 0xA988716C} } } } ;
10704 static const fp12_t var_b = { { { {0xE8968092, 0x4046894B, 0x997E2642, 0x6C8083F7, 0xF4D6356E, 0x1CCB07AC, 0x41350D3C, 0x3E3EC0A1},
10705 {0xB5491C29, 0x521F0120, 0x7FC8CF33, 0x7FBE42D2, 0x0A086DFA, 0xB00D5754, 0x7BC7A1F3, 0x32728CEA} } ,
10706 { {0x2C41DE67, 0xD810EDC3, 0x446E1DCC, 0xEFBF4B1F, 0xE492AF92, 0x37AA15E5, 0xDD5B9B3D, 0xA30CFA02},
10707 {0xC43001EA, 0xB46F2293, 0xE4280128, 0xE00C1F5C, 0xED6269C8, 0xA24BBD54, 0xEAA83EA3, 0x988D5AF9} } } ,
10708 { { {0xE4C9C686, 0x0DDE8D39, 0x2E394629, 0x1D8040E6, 0x432A84A1, 0xE65DE271, 0xB7D7DD66, 0x77A52A55},
10709 {0x6806566A, 0xCE2FEE95, 0x460EC37A, 0x9577A9D9, 0x39048ECA, 0x7CAA01E6, 0x6DC2147B, 0x8C5DFA29} } ,
10710 { {0x2243289F, 0x275F578E, 0x233CA981, 0xDA94202C, 0xD7E72109, 0xE304B564, 0xCA82DE54, 0x89D00113},
10711 {0x572A0FDD, 0x0B916FA1, 0x12C26D43, 0xA00D9906, 0x55EAFBE6, 0x1A0721E7, 0xA1505E7C, 0x0073642A} } } ,
10712 { { {0xDC41E8AF, 0xB23B0EF9, 0x5D2924B6, 0x317B4EFE, 0x506ED9BC, 0x2B7E50D0, 0x15919978, 0x31D7C5EB},
10713 {0x8553FC58, 0x14F1744B, 0xF5C26245, 0x43A0FA26, 0xE576D4F3, 0x92265D62, 0x62F181C2, 0x257D0B25} } ,
10714 { {0x68DF437C, 0x7458F9DC, 0xCFB7B5D3, 0xABAD27F9, 0x9B958B13, 0xEF77F1BB, 0x95DDFE7B, 0x35E761D7},
10715 {0x27E04C0F, 0xD169B30A, 0xDC94C425, 0xFDD225CD, 0xCDBE18B1, 0x3F464725, 0xCF73ED77, 0x6C59A088} } } } ;
10716 static const fp12_t var_expected = { { { {0xB4CECE64, 0xDB4775D6, 0xC856F4FF, 0x5DA2E646, 0xEEA6DC41, 0x9D9CEE16, 0x8853F8CE, 0x7441FFB9},
10717 {0xC969EA10, 0x7A80067F, 0x0E0C12A2, 0xFC1084AD, 0xC917E151, 0x817FBF86, 0x2E2C51CB, 0x179A1245} } ,
10718 { {0xBF1C3111, 0x2AB49005, 0x214A887A, 0xC823ACCE, 0x7B0E866D, 0x4DF81169, 0xD910FA53, 0x04E95D62},
10719 {0x85227EB2, 0xBC115B79, 0xE52690C1, 0x26158C60, 0xE9DDD296, 0xD149D52D, 0xD80DEB5A, 0x3E988407} } } ,
10720 { { {0xEB0D35E2, 0x00216D4C, 0xC0DF7132, 0x4083D07E, 0xFCF3F5E7, 0xE321507C, 0xBC42360A, 0xA6CA662B},
10721 {0xE318CA26, 0xCAAA16E7, 0x99ED82AF, 0x781C4257, 0x9A6CB9A9, 0x51147111, 0xD3DF6994, 0x46185D5B} } ,
10722 { {0xF8B75D4B, 0xE52863FD, 0x7E653525, 0x1D959966, 0x4CC01B0B, 0xE8652C3C, 0x30E3A095, 0x6A84B4A6},
10723 {0x5DD12045, 0x2314B11E, 0xAB3364B6, 0x71EBDE3A, 0x570387F6, 0x7F3CF301, 0xA2685445, 0xADB3F596} } } ,
10724 { { {0xC6DFD32C, 0x51CE3CA1, 0xAEB7C8C1, 0xF6FC2B74, 0x3E9F694D, 0xD6D3A1F4, 0xF86CBBEA, 0x8998C78D},
10725 {0x3D48EEE9, 0x44943398, 0x43D94685, 0xB6046855, 0x48C58699, 0xD284494D, 0x42CEB199, 0x68CF3DDD} } ,
10726 { {0xD8395378, 0xC7C8E287, 0xD0529E59, 0x49EA9277, 0x5400F8A6, 0x2EBA14BA, 0x90553D6D, 0x8210B25F},
10727 {0x9E1871E7, 0xB13F6FD9, 0x0D73F8A7, 0xB55CFCBC, 0x9E49F4F0, 0xD0268991, 0xF3FEBBC7, 0x3D2ED0E3} } } } ;
10729 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2481 a000");
10730 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2482 a001");
10731 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2483 a010");
10732 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2484 a011");
10733 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2485 a100");
10734 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2486 a101");
10735 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2487 a110");
10736 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2488 a111");
10737 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2489 a200");
10738 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2490 a201");
10739 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2491 a210");
10740 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2492 a211");
10743 static const fp12_t var_a = { { { {0xA02B7F52, 0x76C63572, 0x0A1C02D8, 0xE85E2A29, 0x3E4A6CB9, 0xA62448FE, 0x051E0AFD, 0x24BB8024},
10744 {0xB225C86B, 0x6C61EE8A, 0xF490C2BE, 0x902B1647, 0x34DAFC38, 0xB9AB8EB0, 0x43A844F7, 0x8523FA88} } ,
10745 { {0xCF7CE1B2, 0x02494015, 0x30D84894, 0xA48960C4, 0x55DD7979, 0x14C1884C, 0xE4B2FBF7, 0x5DAA6688},
10746 {0xDCC0B9F3, 0x4D1A239A, 0xAAB5781D, 0xFC212854, 0x7D34AF6B, 0xD93493F8, 0x5C30E4D5, 0x624522EA} } } ,
10747 { { {0xB09DDB6E, 0xA295B420, 0x22E3CBDB, 0x1256107D, 0x3AC58503, 0x2D0E93F3, 0xAF13B23D, 0xAA208BE1},
10748 {0x98E591F8, 0x1E43B8F7, 0xAB7663F7, 0x84303A04, 0x4FDC931B, 0xB8E7BBAF, 0xF74EB8D4, 0x338784E6} } ,
10749 { {0xD66B9263, 0x1E27B73C, 0x2E996F8A, 0x94E53A97, 0x31606734, 0x295C1558, 0xE1211A57, 0x5C5B3E07},
10750 {0x1DAF3973, 0xC786B18E, 0xE58C67A4, 0xA8E331E1, 0x8DD3F3FE, 0xB0829113, 0x30B867F4, 0x6A1F4341} } } ,
10751 { { {0x1754A148, 0x7FBC9466, 0xE003CCF0, 0xCA7360D9, 0xC027CE64, 0x827BC620, 0x3918C0EE, 0x048E0E6E},
10752 {0xDF6F1B9D, 0x721CE7E3, 0x83C66DEA, 0x28EAE4C3, 0x5D5F20AC, 0x590C9D75, 0x6661D229, 0xB8C2AED5} } ,
10753 { {0x87A2DC23, 0x0EE95B78, 0x06AA72E9, 0x95667B0F, 0xAB007F68, 0xF14C86E6, 0xB35A58E8, 0x74F23188},
10754 {0x9401DF1B, 0x875741C1, 0xF4D69227, 0x072566F5, 0x25580A25, 0x8C630AF9, 0x3451E46F, 0x0DB4E234} } } } ;
10755 static const fp12_t var_b = { { { {0x1BA612D7, 0x55B67058, 0xD7E768C4, 0x044D32E1, 0xA4A7FB62, 0x73F16602, 0x4D274083, 0x01C4F592},
10756 {0x2F15DAD4, 0xB037F866, 0xE426EBA7, 0x84B7B67D, 0x88794DB7, 0x63CF0E3E, 0x786FBC33, 0x9BD48422} } ,
10757 { {0x8CDE3FBB, 0x1ADADF14, 0x2116F365, 0xB044FC67, 0xEB7159C6, 0x353A1E42, 0x4302FB42, 0x2CB78B0D},
10758 {0x85560022, 0xD70A4D1A, 0x6B2CFAEC, 0x0E062F1F, 0x18D02580, 0x3B2EB789, 0x0F364B2F, 0x19A00A3F} } } ,
10759 { { {0x8990D982, 0x69FA2003, 0xEFAB5B75, 0x015F0583, 0x0ABCF751, 0xBB7860CD, 0x924D9E20, 0x573A2928},
10760 {0x309AC03B, 0x20A383B5, 0x34920024, 0x9F1B54CB, 0xF67414D0, 0x9E6AA48B, 0x161D6E4D, 0x659FDC82} } ,
10761 { {0x8BD173D0, 0x8A892313, 0xE5BC4339, 0xEC5B7C84, 0x181BF0A4, 0xBBCEA242, 0x785143B8, 0x0D553815},
10762 {0xBF7187F1, 0xF99ACAB1, 0x2F59B787, 0xFF0EFCEE, 0x8B06E40E, 0x74412281, 0x6A3279FA, 0x43B34B24} } } ,
10763 { { {0xE5F97DBE, 0x05B0CA38, 0x1072EF9D, 0x9264A0DE, 0x1D3C66DA, 0x2EDEC6F6, 0x31706739, 0x5F50DA74},
10764 {0x893709FE, 0x0A31EE39, 0xDD56282B, 0x82BD4791, 0xD0CFE6B6, 0xD29B39F9, 0x27224774, 0x9DE91755} } ,
10765 { {0x2C2172C8, 0xA5CA28E5, 0xBD51E3A2, 0x522CC114, 0x5C170764, 0x4DB92EFF, 0x3A154911, 0x9EDBC8AD},
10766 {0x6253FC79, 0x3C4470D7, 0x57371442, 0x96743EAA, 0x56CA0AE5, 0x14D9C13D, 0x2B4BDB97, 0x2B172A8A} } } } ;
10767 static const fp12_t var_expected = { { { {0x84856C7B, 0x210FC51A, 0x32349A14, 0xE410F747, 0x99A27157, 0x3232E2FB, 0xB7F6CA7A, 0x22F68A91},
10768 {0xE53C2232, 0xBB187FD5, 0xE4E1B65D, 0x1E850C6A, 0x00443836, 0x513CDCDD, 0x0B5764ED, 0xA3631528} } ,
10769 { {0x429EA1F7, 0xE76E6101, 0x0FC1552E, 0xF444645D, 0x6A6C1FB2, 0xDF876A09, 0xA1B000B4, 0x30F2DB7B},
10770 {0x576AB9D1, 0x760FD680, 0x3F887D30, 0xEE1AF935, 0x646489EB, 0x9E05DC6F, 0x4CFA99A6, 0x48A518AB} } } ,
10771 { { {0x270D01EC, 0x389B941D, 0x33387066, 0x10F70AF9, 0x30088DB2, 0x71963326, 0x1CC6141C, 0x52E662B9},
10772 {0xCA770658, 0xFC8EBEF3, 0x4B5C4319, 0xF82691DA, 0xAD4B07FF, 0x15DD738E, 0x215026B0, 0x87FB4727} } ,
10773 { {0x4A9A1E93, 0x939E9429, 0x48DD2C50, 0xA889BE12, 0x1944768F, 0x6D8D7316, 0x68CFD69E, 0x4F0605F2},
10774 {0x5E3DB182, 0xCDEBE6DC, 0xB632B01C, 0xA9D434F3, 0x02CD0FEF, 0x3C416E92, 0xC685EDFA, 0x266BF81C} } } ,
10775 { { {0x93875825, 0x78FA53DE, 0xA408BC9A, 0x4B206C9C, 0xF6CDF13F, 0x4EFD5B95, 0x47C735DE, 0x5F50D2BC},
10776 {0x5638119F, 0x67EAF9AA, 0xA67045BF, 0xA62D9D31, 0x8C8F39F5, 0x8671637B, 0x3F3F8AB4, 0x1AD99780} } ,
10777 { {0xBDAD9DF6, 0x680DBC44, 0x1DD06E8D, 0x564B669B, 0xA2CC01B9, 0x9EF3B452, 0xB963EC00, 0x902A079D},
10778 {0x93DA173D, 0x4A015A9B, 0x72175D2C, 0x83C2D4EC, 0x227088F4, 0x72E9A627, 0x4924E501, 0x9CB1566C} } } } ;
10780 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2493 a000");
10781 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2494 a001");
10782 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2495 a010");
10783 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2496 a011");
10784 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2497 a100");
10785 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2498 a101");
10786 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2499 a110");
10787 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2500 a111");
10788 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2501 a200");
10789 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2502 a201");
10790 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2503 a210");
10791 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2504 a211");
10794 static const fp12_t var_a = { { { {0x376E03CC, 0x72FAB45D, 0x770FB6EC, 0xCF0076C5, 0x5A40F2D7, 0x9072B92F, 0x51853C0E, 0x5B1C3C19},
10795 {0x816DCB59, 0xB788923D, 0x719F8DB4, 0x2157381F, 0xEA5A4EE8, 0xCC4427D0, 0x532BCCF8, 0x124A4825} } ,
10796 { {0x196780F2, 0xB5B4048C, 0x0E5CF6AE, 0xEAD9B8F0, 0xDD35974B, 0xB1AC03D1, 0x72AED441, 0x68BE7434},
10797 {0x9DD6E224, 0xE476FBA3, 0x9BAF66A5, 0x2618E5C2, 0xF1304671, 0xD0BC6EC7, 0x3C936EA5, 0x4377B11A} } } ,
10798 { { {0xC615355C, 0xF8637FBD, 0xB93D44D4, 0xB0583899, 0x95CEFCAB, 0xADCA903C, 0x9AD903D5, 0x1AF04BC6},
10799 {0xE6E1CAF0, 0x6CD11F76, 0xD7C99E02, 0xBE0A27B3, 0x68A0C8C9, 0x454BA8D9, 0x437692F9, 0x7A8A07CB} } ,
10800 { {0x970405E6, 0x02B547E5, 0x6DBFE27A, 0xA81AEF8C, 0x7116ADB3, 0xB5FEFFBC, 0xC5F35D67, 0x38C07C79},
10801 {0x91E1B77C, 0x3BF6C40C, 0x1445CDC2, 0x6B75F295, 0x34713464, 0x8330B9E5, 0x85381893, 0x28C4C560} } } ,
10802 { { {0x60BA6981, 0xDD76CF53, 0xB9696D92, 0x737989B7, 0xF22DC243, 0x41FF54E5, 0xB4C66B85, 0x52D00878},
10803 {0x3AA437AF, 0x755CF27B, 0xF9B89641, 0x28B8989C, 0x75168E10, 0x14D9C507, 0x1E9936CE, 0x2EE20CA9} } ,
10804 { {0x10D46735, 0xD34617D1, 0xEB9A4321, 0xBA7E63CB, 0xE5B8002F, 0x182CE240, 0xA0A95189, 0x0B46A95B},
10805 {0x6F358813, 0x86BD8CA3, 0x798DE650, 0xBBB8AEAC, 0x9608AE65, 0xE103BCF2, 0xEC728153, 0x4D7456BB} } } } ;
10806 static const fp12_t var_b = { { { {0x8715047C, 0x6A675F1D, 0x6305794E, 0xEAADDA43, 0x9D05E192, 0x20ED7DC1, 0xC884AB3D, 0x5DAFC86F},
10807 {0x87E981FF, 0x17FB1ECC, 0x138367D4, 0x79A7309A, 0x8FEC1EB4, 0xFC1B8F46, 0x0DBB9978, 0x70BB1B2A} } ,
10808 { {0x304B0879, 0x6E4D6EFB, 0xF0F10AED, 0x2A164ADF, 0x63029F5F, 0xA1F34C3A, 0xE8EFA85E, 0x69EF30AF},
10809 {0xB7CF261A, 0x1104A1E6, 0xB626698A, 0xE3B4E560, 0x44785B6B, 0xC0E3BFBD, 0x9BB94B20, 0x0A524E17} } } ,
10810 { { {0x448206B4, 0xE769D368, 0xF435E1C5, 0x2E29D18B, 0x113EA765, 0x0FF5D677, 0xFD5876A1, 0x7B32E7CB},
10811 {0x1201EAF8, 0x9D64EF02, 0xB9A2BCD8, 0xA6218A36, 0x88C23165, 0xCB057BB9, 0xB6D84CDD, 0x103D109D} } ,
10812 { {0xD87A5BAF, 0x1E140F7E, 0x3BACFB33, 0xD7702D8D, 0x6CD167C0, 0x22569923, 0x0538B9D4, 0x6596BAA9},
10813 {0x74D3B5A1, 0x2181F305, 0x07E6812A, 0xFEA8B81D, 0xBBFE4B9C, 0xE5844EAC, 0xBA10A00D, 0xA15EAB22} } } ,
10814 { { {0x40249827, 0x9C077A61, 0xD37CEA56, 0x47B1866B, 0x77904A5C, 0xD41B0845, 0x3BFE08FA, 0x374F31A1},
10815 {0x49375460, 0x4BE23F6C, 0xFC4D90DB, 0xDEC975AB, 0x32128F2F, 0x3D2BCE4D, 0x83607D92, 0x07ACBB77} } ,
10816 { {0x13EDEB71, 0x2AF426DB, 0x08ED7B58, 0xDFF87147, 0x7A5A1A06, 0x5E7B7649, 0x1FE65FD7, 0x42B77A30},
10817 {0x4EABEB97, 0x00C19E9F, 0xD57B2B5F, 0x15E69E7C, 0x202CEE78, 0x17BF7126, 0x2F72FC15, 0x9B6AA5AD} } } } ;
10818 static const fp12_t var_expected = { { { {0x128533EB, 0x0781DEF1, 0xE8821CE5, 0xF7644922, 0x111D9AF9, 0x6AE597D9, 0xC91F6CFA, 0xB780126B},
10819 {0x5BB07DF5, 0x9E7BFD22, 0x32940527, 0xBAC1B426, 0xAE50B9E8, 0xCB88F4F5, 0x858F0FA8, 0x5BA2CBBD} } ,
10820 { {0x4B48AD14, 0x46551F42, 0xF1E3CB08, 0xD3D51AB0, 0xCE1581A1, 0x0B191402, 0xC9DE080C, 0xB8E2E246},
10821 {0xE607BC0A, 0xD37259BC, 0xE588FD1B, 0x42640061, 0xACB7EB05, 0x0FD8AF0A, 0xA0DA2385, 0x39256302} } } ,
10822 { { {0xE3BF6343, 0x0FE83606, 0x997F4256, 0x954013AE, 0xD872DEFB, 0x99351630, 0xDD9F695D, 0x59D102BC},
10823 {0xD4DFDFF8, 0xCF6C3074, 0x1E26E129, 0x17E89D7D, 0xDFDE9764, 0x7A462D1F, 0x8C9E461B, 0x6A4CF72D} } ,
10824 { {0x20B5DED2, 0xE38FC218, 0x068AC68D, 0xE3BC6EA0, 0x5827CFA7, 0x8F08C304, 0x00D97FBC, 0x8D3D6093},
10825 {0x7F3A3676, 0x19635AB8, 0xE0D72BDF, 0x7FDEE718, 0xCC55727C, 0x990CC7A3, 0x0B4654AE, 0x4179B900} } } ,
10826 { { {0x2095D15A, 0x416F54F2, 0xE5EC833C, 0x2BC8034B, 0x7A9D77E7, 0x6DE44CA0, 0x78C8628A, 0x1B80D6D7},
10827 {0xF16CE34F, 0x297AB30E, 0xFD6B0566, 0x49EF22F0, 0x4303FEE0, 0xD7ADF6BA, 0x9B38B93B, 0x27355131} } ,
10828 { {0x5F12B05F, 0xA7407AA7, 0xB724A710, 0xED979F25, 0xBF406FDD, 0xB511C862, 0xC0E1CDDA, 0x82A2CDED},
10829 {0x82B5D117, 0x84EA77B5, 0x788A9A38, 0xB8E3BCD0, 0xC9BE49A2, 0xC4A4A837, 0xFD1E6167, 0x6C1D4FD0} } } } ;
10831 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2505 a000");
10832 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2506 a001");
10833 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2507 a010");
10834 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2508 a011");
10835 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2509 a100");
10836 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2510 a101");
10837 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2511 a110");
10838 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2512 a111");
10839 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2513 a200");
10840 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2514 a201");
10841 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2515 a210");
10842 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2516 a211");
10845 static const fp12_t var_a = { { { {0x2413C389, 0xD10D48E4, 0x682F7EB9, 0x3EB0D874, 0xF8695C5E, 0x386A4317, 0x6BC35F06, 0x175F050D},
10846 {0x70C0CEBA, 0x6CB10044, 0x6EA72E27, 0x1631D7F5, 0x5EE60026, 0x2088F7DA, 0x1B775C42, 0x25F9ECC0} } ,
10847 { {0x88F39802, 0xDB9C181B, 0xBF339592, 0x47AAC3DD, 0xB6A49D95, 0x1D2E4A85, 0x1ED36A9E, 0x871DB906},
10848 {0xEC359153, 0xF413A120, 0x87ECC849, 0x2FE17479, 0x9EC44361, 0x1EEE22F2, 0xE4EB29B6, 0x802A8F5E} } } ,
10849 { { {0x965AFE52, 0xCF8D4A44, 0x1B7724F6, 0x1B340AEE, 0xBAEBB316, 0x04ED96CF, 0x748B90D6, 0xA31FD56D},
10850 {0x92A56F1E, 0x45B38A44, 0x4F15BE41, 0x6830DE69, 0x8A3C2947, 0x385AFF99, 0xA7930FA4, 0xAD1E49E9} } ,
10851 { {0x7FA79E92, 0x78136E91, 0xF55B6D99, 0x07143867, 0xF48969CE, 0x2BDD0376, 0xAB4C7213, 0x03E4D32A},
10852 {0x95999757, 0x489F84C5, 0xB2190056, 0x4222323E, 0x08DE014D, 0xC790FFAA, 0x81807A4B, 0x1D227A2B} } } ,
10853 { { {0x3EFAB7DE, 0xDCDC1830, 0x5551FE61, 0xE5EE65C9, 0xE5EA57AC, 0xFEB43E94, 0x3ECD245C, 0x64B2A704},
10854 {0x92D70ABE, 0x22C2AE95, 0x5AEA2F4C, 0xB78E8C19, 0x37A30414, 0x55413C97, 0x8EE3F830, 0xB0BDFB8D} } ,
10855 { {0xC4C7A9DE, 0x48597C7A, 0x8DF41DF4, 0x5EADD18E, 0x571DA25D, 0x447BB728, 0x6DB1FFF8, 0x6BDC57A4},
10856 {0x172267A6, 0x4008433F, 0x3914D124, 0x8F99A711, 0x814BECE1, 0xCB2D2E29, 0xACC32FFC, 0x290C8F26} } } } ;
10857 static const fp12_t var_b = { { { {0x64B9A97A, 0x43A5BC87, 0xA917DFD8, 0x92253374, 0x500DDE83, 0xF5769A48, 0x72749706, 0x2888FCBD},
10858 {0x7C444033, 0x49469817, 0xCE34A891, 0x1E6DA5BB, 0xDF82455F, 0x3C841A6D, 0xF8057B70, 0x7299299C} } ,
10859 { {0xDAFCCD7F, 0x941FF212, 0x739173E8, 0x1B2BDF1F, 0x0DDE1EEB, 0x3CBFDD38, 0x8C38CE21, 0x1AC0D522},
10860 {0x9257EACF, 0x282F8A50, 0x3400B65F, 0xD1E27C05, 0xE2E392CF, 0x062A6E31, 0x4F831F26, 0x42F68479} } } ,
10861 { { {0xD4046D26, 0x4791D576, 0xFCD6A8A5, 0x6205B968, 0x1A3A0B79, 0xA16B4D9A, 0xB77DFB09, 0xA4C868ED},
10862 {0xF6207075, 0x027E5C00, 0x12DF3FF7, 0xA4FEDA64, 0xAB955BDC, 0xB48C3707, 0xCE8E2200, 0x7B443B6C} } ,
10863 { {0xCB94A3A9, 0xA5132DEF, 0xE4792238, 0x5B2AE06C, 0x90843772, 0xD7E3B7B8, 0x302A3ECE, 0x51FF1066},
10864 {0xD471B70E, 0x44417A28, 0x86989670, 0x4A38FAC1, 0x4FE185FD, 0x31124104, 0x1178D765, 0x22638812} } } ,
10865 { { {0x1233F1C7, 0x35F5A7D7, 0x38A181C8, 0x25F91DC0, 0x73B85041, 0xD88FF454, 0x35BEBC75, 0x3383E299},
10866 {0xA915BAFF, 0x956B35B2, 0x8F271DF3, 0x519A5DFD, 0xC3C92698, 0x8448512A, 0xF6251C3D, 0x52353DAE} } ,
10867 { {0x3EA5479D, 0xC1387ACC, 0x4751E37B, 0x23DB45F6, 0x099C7CF4, 0xDDC75891, 0x4243E219, 0x9959EB76},
10868 {0x858D4654, 0xDE626F37, 0x9B85C2EA, 0x01C3B60B, 0xF00E9D5A, 0x14D65BCD, 0xDB161ECF, 0x4E7B5073} } } } ;
10869 static const fp12_t var_expected = { { { {0x21864EAA, 0x8C56160E, 0x938F7E28, 0xBF9D51A0, 0xFC3E078F, 0x3E54053A, 0x396DA428, 0xA8E9A712},
10870 {0x56A8C322, 0x2258F1DE, 0x74EA64DD, 0x0AD5DEDA, 0xD346447C, 0xDF6539D7, 0x6390BCFA, 0x6D7461E5} } ,
10871 { {0xADF6CA83, 0x477C2608, 0x4BA221AA, 0x2C7EE4BE, 0xA8C67EAA, 0xE06E6D4D, 0x929A9C7C, 0x6C5CE3E3},
10872 {0x59DDA684, 0xCBE416D0, 0x53EC11EA, 0x5DFEF874, 0xBBE0B091, 0x18C3B4C0, 0x95680A90, 0x3D340AE5} } } ,
10873 { { {0x2482C5C7, 0x86E9FE7F, 0xF3185B98, 0xCC3FFE25, 0xF4943151, 0x5EE2A5A0, 0xFD2C71F5, 0xB86B0B41},
10874 {0x9C84FEA9, 0x43352E43, 0x3C367E4A, 0xC3320405, 0xDEA6CD6A, 0x83CEC891, 0xD904EDA3, 0x31DA0E7C} } ,
10875 { {0x163F2F84, 0xD1EECA53, 0xE55A2AA7, 0xBEFB049B, 0xB7E7BC10, 0x4F59A829, 0xBB410F6D, 0x6BF96186},
10876 {0x235414E4, 0x034C944E, 0xFFF8492D, 0x0AFAE41D, 0x0CDF0505, 0x91DF1B11, 0xB0267F0F, 0xB4D290DB} } } ,
10877 { { {0x2CC6C617, 0xA6E67059, 0x1CB07C99, 0xBFF54809, 0x7232076B, 0x26244A40, 0x090E67E7, 0x312EC46B},
10878 {0xE9C14FBF, 0x8D5778E2, 0xCBC31158, 0x65F42E1B, 0x73D9DD7C, 0xD0F8EB6C, 0x98BEDBF2, 0x5E88BDDE} } ,
10879 { {0xE84E96DC, 0x860F8B5F, 0x1B1A19BF, 0x4DE43839, 0xA163AF1E, 0x6214BB02, 0x6B8CFA07, 0x8C960AF0},
10880 {0xF3C155ED, 0x60945DB8, 0x7206ED80, 0xA0E79DA6, 0xE51FD93C, 0xB1B72EC6, 0x11CBED56, 0x94A4DD75} } } } ;
10882 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2517 a000");
10883 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2518 a001");
10884 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2519 a010");
10885 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2520 a011");
10886 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2521 a100");
10887 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2522 a101");
10888 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2523 a110");
10889 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2524 a111");
10890 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2525 a200");
10891 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2526 a201");
10892 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2527 a210");
10893 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2528 a211");
10896 static const fp12_t var_a = { { { {0x2640198D, 0x5325F281, 0x9B3B92CB, 0xF653CC5E, 0xD6102326, 0x5F64142A, 0x151C9331, 0x167E7953},
10897 {0x3D3FC709, 0x4AD53321, 0xACA0ADE1, 0x2EBBBD2E, 0x4F412199, 0x7629D8C2, 0x5B87CE19, 0x80C6A11D} } ,
10898 { {0xDD379B0C, 0x32D691EC, 0x048FCC6C, 0x7E114214, 0xA063ABEA, 0x174ED2BD, 0xAAD43553, 0x7AF20413},
10899 {0x26C0453E, 0x40B03D5A, 0x5B5CB5A3, 0xC699EFEE, 0xF1BEA1DC, 0x86C8B9C3, 0xD3880C66, 0x200E60D7} } } ,
10900 { { {0x56C30727, 0xE9DC2331, 0xB94FBEAE, 0xC9EA057F, 0x17B9A433, 0x01AD4154, 0xFED3B3A2, 0x1CBB1ED6},
10901 {0x5A2E94ED, 0x6945F1F9, 0xD130E07F, 0x4300CEEA, 0x765289DC, 0x512581E4, 0xE28274C8, 0x8C36033E} } ,
10902 { {0x4E4A4DAF, 0x3F7789A0, 0x837ECCAB, 0x7145E9B7, 0x7DCE17FD, 0x4B5D07EB, 0x4EC3769F, 0x7B51BE7F},
10903 {0xE8C4E797, 0xAE8EBC05, 0x7F4C81F4, 0xED75B109, 0xC9AB5B29, 0x3C644A5E, 0xE4DEC13C, 0x085C793F} } } ,
10904 { { {0x10CDADBD, 0x3FE47D27, 0x9FC2FCE3, 0xCC68E827, 0x06863D65, 0x7F553BE8, 0x581078C1, 0x41DB4172},
10905 {0x46BB059F, 0x3B1BB858, 0x919A7FC3, 0x841AD86A, 0x0EA5017B, 0xE2557B8F, 0x35DDDA91, 0x459446DE} } ,
10906 { {0x3ACEE424, 0x30EBC534, 0x2D3F23CE, 0x07935465, 0xC7831639, 0x42E07D68, 0x18887F93, 0x25623A06},
10907 {0x4D955435, 0x74A47248, 0xF492553B, 0x44B6C21E, 0xA592B06F, 0x0C02F6EE, 0x336F7348, 0x61FE3001} } } } ;
10908 static const fp12_t var_b = { { { {0xFA085560, 0x9C6FD77D, 0xBA5DF40B, 0x08FFA8C6, 0xCA35DD87, 0x9E877D85, 0x0B576ADA, 0x0CBC37B6},
10909 {0xCEE3BCF3, 0x0536E764, 0xD4D3C981, 0x3327E08B, 0x399E6C6B, 0xE2D8CFAA, 0xFBEB4676, 0x60217934} } ,
10910 { {0xE77D9608, 0x4E57640B, 0x954CFCE7, 0x33A91745, 0x53FBDC8E, 0xCA64D47F, 0xAF10C518, 0x455FC1D6},
10911 {0x5F503165, 0xD713B424, 0xF59FD1AD, 0xE6257532, 0x01EE3A7F, 0xB802A8A9, 0xEA18FC5B, 0x6DC104B0} } } ,
10912 { { {0xFABD1F8B, 0x4A15101B, 0xC7CEF519, 0x5F5A40F8, 0xE479DBD0, 0x31B57F30, 0x807FA0BC, 0x9177BC61},
10913 {0x750FCD7F, 0x129F40D5, 0x8257EF93, 0x1EFBC3D9, 0x2489B37F, 0x281058E5, 0x5C5D77BE, 0x388D5B1B} } ,
10914 { {0x22B553F5, 0xDEDCD846, 0xA0D54A05, 0x361FBF38, 0x46EE9C07, 0x9A00629B, 0xBC5B7D3C, 0x923ADE1E},
10915 {0xC65CE59B, 0x20D52253, 0xEABF61A2, 0xDCA1A6F5, 0x058A42B4, 0x0AEA9266, 0xF0B1A91A, 0xB3418297} } } ,
10916 { { {0x18ACA141, 0x907D2EB0, 0x01FF525F, 0xEB0264E0, 0xD05D98CC, 0xFB72E3D6, 0xDE5362F8, 0x13C79000},
10917 {0x45CB99BF, 0xA9DFFEFF, 0xD9D307AA, 0x61D7DFC0, 0x4A6E53ED, 0x7761EBAA, 0x8170D792, 0x0FBA5A8D} } ,
10918 { {0x6FBFCA3E, 0x2B4D87DF, 0x380E7F40, 0xE0C9392F, 0xCA758B64, 0x8B876C02, 0x6540E00E, 0x66CD29F0},
10919 {0xC768E394, 0x98B5E07D, 0x681BF9A0, 0x1B1A242C, 0x85846706, 0xCD5F426E, 0xED0557D2, 0x02EB8851} } } } ;
10920 static const fp12_t var_expected = { { { {0x2C37C42D, 0xB6B61B03, 0xE0DD9EBF, 0xED542397, 0x0BDA459F, 0xC0DC96A5, 0x09C52856, 0x09C2419D},
10921 {0x6E5C0A16, 0x459E4BBC, 0xD7CCE460, 0xFB93DCA2, 0x15A2B52D, 0x93510918, 0x5F9C87A2, 0x20A527E8} } ,
10922 { {0xF5BA0504, 0xE47F2DE0, 0x6F42CF84, 0x4A682ACE, 0x4C67CF5C, 0x4CE9FE3E, 0xFBC3703A, 0x3592423C},
10923 {0x299C4874, 0x688B12E7, 0x3A34C33C, 0xF386275C, 0x43B2F111, 0xCA266D86, 0x298DEC33, 0x6C60FAE9} } } ,
10924 { { {0xBE321C37, 0x9EB59CC6, 0xC5F8A8DC, 0x7DA17127, 0x87225218, 0xCB581E8E, 0xBE72EF0E, 0x45570137},
10925 {0xE51EC76E, 0x56A6B123, 0x4ED8F0EC, 0x24050B11, 0x51C8D65D, 0x291528FF, 0x8624FD0A, 0x53A8A823} } ,
10926 { {0x8DC12E55, 0x5F893B0B, 0xB72161EC, 0x4E37D71F, 0x8AC205AB, 0xACBD01BB, 0xD286D58B, 0xA32A7F22},
10927 {0x84943697, 0x8CA82363, 0x6904FF99, 0x23E5B6B4, 0x1803A22A, 0x2CDA1464, 0x344BF44B, 0x0F2E956A} } } ,
10928 { { {0xF8210C7C, 0xAF674E76, 0x9DC3AA83, 0xE1668347, 0x3628A498, 0x83E25811, 0x79BD15C8, 0x2E13B171},
10929 {0x00EF6BE0, 0x913BB959, 0xB7C77818, 0x2242F8A9, 0xC436AD8E, 0x6AF38FE4, 0xB46D02FF, 0x35D9EC50} } ,
10930 { {0x2D3B4E81, 0x048CC706, 0xC9A883D5, 0x39DBC7D6, 0x50F01489, 0xB2B96DD1, 0xF3667BAD, 0x78A8AED7},
10931 {0x862C70A1, 0xDBEE91CA, 0x8C765B9A, 0x299C9DF2, 0x200E4969, 0x3EA3B480, 0x466A1B75, 0x5F12A7AF} } } } ;
10933 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2529 a000");
10934 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2530 a001");
10935 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2531 a010");
10936 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2532 a011");
10937 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2533 a100");
10938 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2534 a101");
10939 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2535 a110");
10940 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2536 a111");
10941 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2537 a200");
10942 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2538 a201");
10943 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2539 a210");
10944 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2540 a211");
10947 static const fp12_t var_a = { { { {0xFD5A94C1, 0xB6A5AEA6, 0xD233DB1D, 0xB51279D9, 0xB6BE3D22, 0xC4F94E1E, 0x0E13135D, 0x1AB47F1C},
10948 {0xE6EB96D6, 0x1356D5D3, 0x40D3EE9B, 0x040F8F6E, 0xD5A7D50F, 0x97562300, 0x5159CC82, 0x6C5A3641} } ,
10949 { {0xD6897A17, 0x7C750E0D, 0x9CDDC4A7, 0x4C66B353, 0x5BECAD55, 0x5F559635, 0xD4A69AA8, 0x02A883F0},
10950 {0x3148FD62, 0x85027374, 0x520E29BB, 0xE3E66795, 0xA4B8F8C0, 0xBC0F7BCF, 0x8A6DD2B5, 0x0F60A7F1} } } ,
10951 { { {0x504696CA, 0x04CF7C21, 0xA186B401, 0xC547E2BF, 0xBE2D33A1, 0x54861CDD, 0xF78F6779, 0x2DAC7F24},
10952 {0x9E8E1283, 0x9735A303, 0x4ABC7E41, 0xFB080E6D, 0x97E0FA13, 0x559CED28, 0x74404FAD, 0x1CF0C41D} } ,
10953 { {0x9E9E82D0, 0x1A8B0368, 0x5D0F3C79, 0x6E32ADDB, 0xCF9B0864, 0xE2088674, 0xB1CC7F17, 0x34965A18},
10954 {0x86389AE4, 0x303391F9, 0x94792022, 0x041E4335, 0x8FE74435, 0xADE9B05B, 0xEE9F5EC7, 0x35AB2612} } } ,
10955 { { {0x59B17FBC, 0xC48FDDBD, 0x036C7612, 0x0EF2F5F5, 0xBC0D7E21, 0x77F94FCC, 0x4112E47E, 0x1B6C9638},
10956 {0xD8C5D42C, 0x7D434939, 0x09B0440B, 0x747F10E1, 0x61A20756, 0x6F878F27, 0x53C0F6E1, 0x2020293B} } ,
10957 { {0x9529EBAC, 0x4ABF1ECB, 0x6122B0F6, 0x88582D9C, 0x480744D5, 0xCFC4E29C, 0xA3008C2A, 0xB3166433},
10958 {0xD09C1431, 0xE23EBAF0, 0x6A71202B, 0x993DF896, 0xC28F9DB8, 0x62E1B477, 0x41E16589, 0xB60D83DE} } } } ;
10959 static const fp12_t var_b = { { { {0xE484F6E5, 0x397E9118, 0xDB0F81D2, 0xD44DFC9E, 0xD3FE5C5C, 0xEAB7B654, 0x94F2824F, 0x99677168},
10960 {0xDC99A60A, 0x0C39261F, 0x11BF82FB, 0x6622960B, 0x07FDBD06, 0xB2CA0DCA, 0x95296CFE, 0x4031E862} } ,
10961 { {0xDB1A6733, 0x5905403A, 0xBF227849, 0x552871AB, 0x9F3B2A7F, 0x010F2DAB, 0x924A48FD, 0x1F81D29F},
10962 {0xB71FFA69, 0xE1F1B425, 0x3DE6D891, 0xA9D64070, 0x6581549C, 0xA50EF992, 0x6C6B475F, 0x199892FF} } } ,
10963 { { {0x7493E4C7, 0xAFDAE31B, 0x159D3C3C, 0xE4CE1878, 0x3007CF6D, 0x7FEA9D13, 0x196275DB, 0x02FABA02},
10964 {0x50AAF614, 0x8E84EB91, 0xC9C3E808, 0xD6D57C39, 0xB11EA0BF, 0xE7003005, 0x22007139, 0x086A1E99} } ,
10965 { {0x3E8541F5, 0x8A15EC9B, 0x5B372997, 0x171486EC, 0xF8259BD3, 0x3115A31B, 0x2621B36F, 0x2D1F00B2},
10966 {0x81B3557B, 0x78EDC20D, 0x9FA42302, 0x298CAEC6, 0x4CDE64CE, 0x41ADA328, 0x166D714F, 0x2C2AC81E} } } ,
10967 { { {0x13551506, 0x6EE57FB9, 0xEDF5CDCD, 0x5AD5A4A3, 0x4F6AE02D, 0xFB3DC067, 0xF7A216E5, 0x9835C9ED},
10968 {0x3F429E9E, 0x484954CC, 0x6E62C48A, 0xE2B167C9, 0xDB4429A7, 0xD0A71268, 0x23FB789F, 0xB80141C2} } ,
10969 { {0x65F15D95, 0x2626DB8A, 0x9EF35536, 0xD5FBA843, 0x7BC193DE, 0x27E36C02, 0x4831774D, 0x665D3F11},
10970 {0xFB6F0352, 0xEA527FFB, 0x78AC1669, 0x5B6D6E10, 0x9B85CEA2, 0xF2FC69CA, 0xE7A5C7A6, 0xA7DA8B79} } } } ;
10971 static const fp12_t var_expected = { { { {0x7B01D277, 0x7C15A73F, 0xCB9C3892, 0xF3D629DB, 0x36A26A7A, 0xD5A1F435, 0xB93F6D36, 0x3B60AC75},
10972 {0x0A51F0CC, 0x071DAFB4, 0x2F146BA0, 0x9DECF963, 0xCDAA1808, 0xE48C1536, 0xBC305F83, 0x2C284DDE} } ,
10973 { {0x5D9B477F, 0x225E5784, 0xB2332BA5, 0x0A4FEE48, 0x10940C8B, 0x59A6C4F5, 0x827B2DD4, 0x9D3A5013},
10974 {0xDC553794, 0xA1FF48FF, 0xE89F3070, 0x4D21D3C5, 0x931A2DD9, 0x1260DEA8, 0x5E21677F, 0xAFDBB3B4} } } ,
10975 { { {0xDBB2B203, 0x54F49905, 0x8BE977C4, 0xE079CA47, 0x8E256433, 0xD49B7FCA, 0xDE2CF19D, 0x2AB1C522},
10976 {0x4DE31C6F, 0x08B0B772, 0x80F89639, 0x24329233, 0xE6C25954, 0x6E9CBD22, 0x523FDE73, 0x1486A584} } ,
10977 { {0x601940DB, 0x907516CD, 0x01D812E1, 0x571E26EF, 0xD7756C91, 0xB0F2E358, 0x8BAACBA8, 0x07775966},
10978 {0x04854569, 0xB745CFEC, 0xF4D4FD1F, 0xDA91946E, 0x4308DF66, 0x6C3C0D33, 0xD831ED78, 0x09805DF4} } } ,
10979 { { {0xA8889F51, 0x5498E7B5, 0xE9EE878C, 0xC72EFDF1, 0xC08527A8, 0x781BEBD0, 0x898FA9C1, 0x3D4A6B0C},
10980 {0xFBAF6A29, 0x33E87E1E, 0x6FC55EC8, 0xA4DF55B8, 0xDA406763, 0x9A40D929, 0x6FE45A6A, 0x2232863B} } ,
10981 { {0x2F388E17, 0x24984341, 0xC22F5BC0, 0xB25C8558, 0xCC45B0F6, 0xA7E17699, 0x5ACF14DD, 0x4CB92522},
10982 {0xD52D10DF, 0xF7EC3AF4, 0xF1C509C1, 0x3DD08A85, 0x2709CF16, 0x6FE54AAD, 0x5A3B9DE2, 0x0E32F864} } } } ;
10984 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2541 a000");
10985 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2542 a001");
10986 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2543 a010");
10987 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2544 a011");
10988 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2545 a100");
10989 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2546 a101");
10990 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2547 a110");
10991 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2548 a111");
10992 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2549 a200");
10993 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2550 a201");
10994 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2551 a210");
10995 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2552 a211");
10998 static const fp12_t var_a = { { { {0x06DD81B1, 0xBD44A7BC, 0xF7DFD42B, 0x2A41C871, 0x035B597D, 0x2BA36E4A, 0xD64E1CEB, 0x28676A4E},
10999 {0x8C91DB4B, 0x869EA921, 0xBF2ECB2E, 0x69BDECB9, 0x043EC596, 0x3EA147FE, 0xFF87D840, 0x64DC66AD} } ,
11000 { {0xD353392C, 0x79E0EAA0, 0x735807EC, 0x5F2D694A, 0x551597E8, 0xBA6C779D, 0x1F5ECEEE, 0x23D4DB44},
11001 {0x46AAB24B, 0x857F2DCA, 0xDC0A2DBD, 0xFB303BA2, 0x295A5360, 0x9120B3E7, 0xC70F48A3, 0x2713B222} } } ,
11002 { { {0x1EE41466, 0xE39EDF83, 0x19D49D9B, 0x96DE2824, 0x7249E3CB, 0xCA8E07C8, 0x5F081E38, 0x69922031},
11003 {0x43C6542C, 0x8E2DB44B, 0xF87686D8, 0x89598025, 0xAAB23AB0, 0xF6729229, 0xDE8583CD, 0x4FFCC3D1} } ,
11004 { {0x569BD2EE, 0xC6CCE9BD, 0xBE061771, 0xF607DB62, 0xA62DF65D, 0xA2E88690, 0x53DB18CC, 0x1AF8B44B},
11005 {0x928E48D7, 0x8C08F67D, 0x84DF135E, 0x5C3AE34D, 0x6F8535E0, 0xD3C20E67, 0x9FAE0A5A, 0x1FC7003D} } } ,
11006 { { {0xD90C2BC2, 0x294401D3, 0x3D506B14, 0x6CB1C9A0, 0xC60B9083, 0xAB39B7D2, 0xB9564C0A, 0xB4A26C73},
11007 {0x0A551182, 0xA874451E, 0x81651461, 0x48F9A68A, 0xF39CACC1, 0xBEC6086C, 0xA8C837ED, 0x0134EFF4} } ,
11008 { {0x3403AA97, 0x58FC2591, 0x1295E4F0, 0x8E430217, 0x473ECDD8, 0xAF115F6B, 0x8CF014FD, 0x1C51046E},
11009 {0xFF59E237, 0x4BD57EF4, 0x87DF67C4, 0x3B8CD9D5, 0x45524440, 0x950C7BBF, 0x56A6993F, 0x2D288F7D} } } } ;
11010 static const fp12_t var_b = { { { {0x439F268B, 0xD8840C11, 0x9F85205F, 0xC8A96F2B, 0x7CB52660, 0x94605B09, 0x0CCA6D35, 0x4C3A87CA},
11011 {0x8A2678B7, 0x1CB6736C, 0xC27840DE, 0xAE3383D1, 0x072B4E8D, 0x60CA0002, 0x4638F338, 0x013A43A8} } ,
11012 { {0x7609005F, 0x759E9A24, 0xAF6316C0, 0x4362F33B, 0xB1F5B260, 0xA166D3BC, 0xF3B9EBB2, 0x67F0235E},
11013 {0x59F42E7A, 0x07173210, 0xCD5A902B, 0xD8C3BBC2, 0xCF6F9642, 0x8E4DEDEE, 0x9505F1B7, 0x07DE4E7C} } } ,
11014 { { {0x04ABF4C6, 0x3606EA4E, 0xA701E313, 0xB249E2AD, 0xBC2B5C60, 0x4C640C45, 0x4069E705, 0xB84AC7CB},
11015 {0x096AE4CD, 0x3409C1CD, 0x500BDE00, 0xB1B20B28, 0xBCDD0284, 0xA7CF46D4, 0x5FB1B137, 0x1E9501CA} } ,
11016 { {0x02A0DA80, 0x665F3015, 0x5136B151, 0xF655A366, 0x650C6C79, 0x4C4ABCD8, 0xF08BB9EA, 0x10136BA0},
11017 {0x4D34AF3D, 0x08F3070F, 0xBA8DB934, 0x3C6EF1D1, 0x341AD6FA, 0x873CBE74, 0x4392FF3D, 0x36321CDC} } } ,
11018 { { {0xC433CB05, 0x8DB16612, 0xBD25F3C5, 0x31B73A3D, 0xAE0747B5, 0x9AA9CA3B, 0x3ECFF353, 0x8129C36D},
11019 {0x55787996, 0x32058447, 0x0EAB5F41, 0x92884941, 0x35EF391E, 0x4F2C7DA5, 0x9CA15325, 0x0DFF2F9F} } ,
11020 { {0xE0304D4A, 0x74F8EA5B, 0x3611D0F3, 0xC3E70C01, 0xDE9891E1, 0x7143F90B, 0xA9A9915B, 0x5B94EF81},
11021 {0x57DEFFE7, 0x998BC2D2, 0x3AA190B3, 0x35070E89, 0xA319EB45, 0x56EDBD69, 0x88C8C038, 0x141AFF42} } } } ;
11022 static const fp12_t var_expected = { { { {0x256A8FC1, 0xE3AF255C, 0x2CD29312, 0x74AA05E7, 0xDA88BCD1, 0x92A36FAB, 0x09A28BDE, 0x96408147},
11023 {0x026B6294, 0x69E835B5, 0xFCB68A50, 0xBB8A68E7, 0xFD137708, 0xDDD747FB, 0xB94EE507, 0x63A22305} } ,
11024 { {0xBF766D68, 0x0330DA2D, 0x986CD073, 0x2EDC22AF, 0xF7026F3D, 0x1466004B, 0x6BC3BF65, 0x75F856A7},
11025 {0xECB683D1, 0x7E67FBB9, 0x0EAF9D92, 0x226C7FE0, 0x59EABD1E, 0x02D2C5F8, 0x320956EC, 0x1F3563A6} } } ,
11026 { { {0x7C64543B, 0xAC867EE6, 0x474A99CF, 0xF7A5F217, 0x0A01111F, 0x798A57EE, 0x5EBD135C, 0x6B5AF728},
11027 {0x3A5B6F5F, 0x5A23F27E, 0xA86AA8D8, 0xD7A774FD, 0xEDD5382B, 0x4EA34B54, 0x7ED3D296, 0x3167C207} } ,
11028 { {0x53FAF86E, 0x606DB9A8, 0x6CCF6620, 0xFFB237FC, 0x412189E3, 0x569DC9B8, 0x634F5EE2, 0x0AE548AA},
11029 {0xA785CE35, 0x8204791F, 0x9EC93971, 0x32DD9E1C, 0x8F4CE89B, 0x47E5AC5E, 0x9C39E746, 0xA3A88223} } } ,
11030 { { {0x14D860BD, 0x9B929BC1, 0x802A774E, 0x3AFA8F62, 0x180448CE, 0x108FED97, 0x7A8658B7, 0x3378A906},
11031 {0x1708CC87, 0x755D4A88, 0x47319467, 0xC98309EA, 0x118FFD57, 0x6AF9E733, 0x4C45C0F1, 0xAD495F17} } ,
11032 { {0xB5FF91E8, 0xE2F1C4E6, 0xB0FBF343, 0xDD6DA2B6, 0xBC88C5AB, 0x392DC2CA, 0x23655FCB, 0x7ACFB3AF},
11033 {0xA77AE250, 0xB249BC22, 0x4D3DD710, 0x0685CB4C, 0xA23858FB, 0x3E1EBE55, 0xCDDDD907, 0x190D903A} } } } ;
11035 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2553 a000");
11036 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2554 a001");
11037 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2555 a010");
11038 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2556 a011");
11039 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2557 a100");
11040 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2558 a101");
11041 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2559 a110");
11042 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2560 a111");
11043 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2561 a200");
11044 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2562 a201");
11045 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2563 a210");
11046 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2564 a211");
11049 static const fp12_t var_a = { { { {0x2B31B31D, 0x24B4A591, 0x4A27A6ED, 0x4DBC85F7, 0x7A964939, 0x4899D0C8, 0xED2AFD21, 0x2E90D22F},
11050 {0xF00DD98E, 0x646B2CDF, 0xE96A568A, 0x1F858134, 0x9D85B56E, 0x2C7A1217, 0x24CF9EA9, 0x299F230F} } ,
11051 { {0x57C178C2, 0xE78A29D1, 0xF0DBC0CA, 0x9E61F6B0, 0xF2A04A11, 0xDE1C7483, 0xC8AE0B8E, 0x138B6B56},
11052 {0xAC652DDE, 0xFE4B7993, 0x0959B324, 0x18A9F56D, 0x8F9E025B, 0xB39FE135, 0x4C13F0FD, 0x10FCA3BE} } } ,
11053 { { {0xE08E1273, 0x437F928F, 0xB50F6057, 0x0FC7655A, 0x47D9FBA3, 0x1DA0E4C5, 0x363FF76F, 0x489C902A},
11054 {0xE31001F7, 0x107D62B8, 0x1C916691, 0x74E0CE96, 0x71801741, 0x01576FD6, 0x1F917195, 0xB3CF791C} } ,
11055 { {0xD3D0A031, 0x05464A80, 0x91B9DC54, 0xB6E773BE, 0x6F8162C7, 0x51C4C13C, 0xB4206A0C, 0x37B15A7A},
11056 {0xCB7423A7, 0x82DB44FD, 0x0F863BE4, 0xB419C8F8, 0x28D7B212, 0x70704E35, 0xB8161915, 0x8492EA3B} } } ,
11057 { { {0x8D2C364E, 0x32C85259, 0x66BC8D97, 0x7FE9B492, 0x3E8515FB, 0xE12EABF5, 0x0063B9C3, 0x57CF5D89},
11058 {0xD7AD0B8B, 0x7E50021C, 0x0F4024AE, 0x99E5A834, 0xD9115A72, 0x9984BAA1, 0x75331090, 0x34BBBE7F} } ,
11059 { {0xFC7526E5, 0x16C1EA72, 0x81B19F6E, 0x121EA86C, 0x7E8C0BFD, 0x936F2101, 0x56E627DF, 0x4CF7E063},
11060 {0xBEDF3410, 0x6C615D11, 0x892C0935, 0x2387B2A3, 0xE9B290EB, 0x53845A36, 0xF307270D, 0xB4CEFDB5} } } } ;
11061 static const fp12_t var_b = { { { {0x76B1A722, 0x3A9A2EB3, 0xF266BEBC, 0x91C779A4, 0x3420CF0B, 0x615A9C13, 0xF3627CBD, 0x27FB4429},
11062 {0x74852E07, 0xF6BF5863, 0x2AEE2C7F, 0x9403712E, 0xFD9F83E7, 0xB948C787, 0x0F169B8E, 0x3470CEDA} } ,
11063 { {0xB5689CC8, 0x64FBD9C5, 0x7FAF2C7E, 0x9628E62E, 0x9FFF3E62, 0x7592586D, 0x1434D25E, 0x698ECCA9},
11064 {0x2FC1601A, 0x05DA9AFE, 0xE02C243F, 0x6E32F0B9, 0xFA712863, 0x2323D641, 0xE51032D9, 0x25717A93} } } ,
11065 { { {0x6A6ABC86, 0xA0FCB30F, 0x3BFCFFAF, 0x87F1EA4F, 0x4A71785C, 0x56BB2379, 0xB7188156, 0x72A48E36},
11066 {0x62AC84BE, 0xC169D573, 0xD66561ED, 0x70CD548C, 0x04C5D0AB, 0x2A6DA7EC, 0xD4ACA877, 0x3AE196B2} } ,
11067 { {0xA8AA9BB8, 0x371432F8, 0xF3623AFF, 0x46F38899, 0xFA92542D, 0xBF67EBD4, 0xD913538F, 0x143214BD},
11068 {0xC4A7D071, 0x9305319E, 0x7BBB549C, 0x9C80D949, 0x828831A7, 0xA7187952, 0x776F75B7, 0x621E5056} } } ,
11069 { { {0xEA8D15A0, 0xAFA6C500, 0x306E14F3, 0x302F4E05, 0xAF9F0947, 0x98AE5609, 0x753CD1EF, 0x8E3D203D},
11070 {0xE77FA3C3, 0x26C23349, 0xA64D400D, 0x20E882CA, 0xC46D54B6, 0xB8DEE0D3, 0x6C610372, 0x14D13AAF} } ,
11071 { {0xA1B307D1, 0xD438D4FD, 0xC2B676FF, 0x6844BD29, 0xB355F0C6, 0x295155C9, 0x4A7DA77B, 0x033D7889},
11072 {0xC469EE1D, 0x617A578E, 0xEDE8FDBB, 0xA3E898AD, 0x56BBAE7A, 0xAE549827, 0x50568CDB, 0x374A6511} } } } ;
11073 static const fp12_t var_expected = { { { {0xB4800BFB, 0xEA1A76DD, 0x57C0E830, 0xBBF50C52, 0x46757A2D, 0xE73F34B5, 0xF9C88063, 0x06958E05},
11074 {0xDDB4E022, 0x6C9A5E2D, 0x92F40951, 0x9E93BCA7, 0xF3C8BB3B, 0x6E91A6FA, 0x55D7DF43, 0xAF41F2F7} } ,
11075 { {0x04851095, 0x817CD9BD, 0x45A47393, 0x1B4ABD23, 0xA6839564, 0x63EA7881, 0xF4981559, 0x64103D6F},
11076 {0xDED0025F, 0xF75F6846, 0xFDA56E2C, 0xBD88B153, 0xE90F63AC, 0x8BDC675E, 0xA7229A4D, 0xA59EC7EC} } } ,
11077 { { {0xD84F8A88, 0xA1716931, 0x4D8A3FEE, 0x9AE727AC, 0x514B0CFB, 0xC2461DB7, 0xBF465241, 0x900BA0B5},
11078 {0x80637D39, 0x4F138D45, 0x462C04A3, 0x04137A09, 0x6CBA4696, 0xD6E9C7EA, 0x4AE4C91D, 0x78EDE269} } ,
11079 { {0x2B260479, 0xCE321788, 0x9E57A154, 0x6FF3EB24, 0x74EF0E9A, 0x925CD567, 0xDB0D167C, 0x237F45BC},
11080 {0x06CC5336, 0xEFD6135F, 0x93CAE747, 0x1798EFAE, 0xA64F806B, 0xC957D4E2, 0x40A6A35D, 0x227499E5} } } ,
11081 { { {0x04CB5549, 0x8210170A, 0x0AC657EA, 0x62CC132E, 0xE2C89669, 0x43E0B256, 0xCB45C3FD, 0x83A5DC0D},
11082 {0xF02D67C8, 0x578DCED2, 0x68F2E4A1, 0x78FD2569, 0x14A405BC, 0xE0A5D9CE, 0x08D20D1D, 0x1FEA83D0} } ,
11083 { {0x5AC21F14, 0x42891575, 0xBEFB286E, 0xA9D9EB42, 0xCB361B36, 0x6A1DCB37, 0x0C688064, 0x49BA67DA},
11084 {0xFA7545F3, 0x0AE70582, 0x9B430B7A, 0x7F9F19F5, 0x92F6E270, 0xA52FC20F, 0xA2B09A31, 0x7D8498A4} } } } ;
11086 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2565 a000");
11087 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2566 a001");
11088 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2567 a010");
11089 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2568 a011");
11090 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2569 a100");
11091 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2570 a101");
11092 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2571 a110");
11093 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2572 a111");
11094 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2573 a200");
11095 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2574 a201");
11096 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2575 a210");
11097 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2576 a211");
11100 static const fp12_t var_a = { { { {0xA0CBFF22, 0xAF5CE6F6, 0x35EA51A6, 0x9322B0BE, 0x8A30DCB6, 0xECB48625, 0x1474561E, 0x05D78228},
11101 {0xD07E6E61, 0x6CB9D9EF, 0x7F7F7D4E, 0xE6646E42, 0x5F40D3CD, 0x1F92CDDF, 0x802A9083, 0x7A35EFF4} } ,
11102 { {0x23EB38F8, 0x864681BA, 0xD69A1A1B, 0xC81998FF, 0xF5C29DDB, 0x8C6E90B9, 0x9146FCEC, 0x91F7EC15},
11103 {0xFD02B3BB, 0xB24A2DFD, 0x1DF934D5, 0xC34DEE30, 0x9A904973, 0xF0CA050D, 0x1889DDA2, 0x5A9FEF30} } } ,
11104 { { {0x584CFD63, 0xE6F4AA63, 0x33D99295, 0xF14786AC, 0xFE069A4A, 0x0F738E6C, 0x3D58343C, 0x8C246A40},
11105 {0x3F6B990D, 0xDD80A719, 0x76E2A262, 0x7CFB4221, 0xAEED0071, 0x395A354B, 0xF73E7368, 0x095DE75B} } ,
11106 { {0x375A1ABC, 0x95162F9E, 0x6DB22881, 0x815DF13D, 0x3D8F92E3, 0xAA678D5B, 0xD552219F, 0x005DD3D3},
11107 {0xF1D8E61B, 0xD3B887FE, 0xF5B4C016, 0xCC4ACE25, 0x7A6E993F, 0x44B38649, 0xF8231279, 0x26308933} } } ,
11108 { { {0x95227A10, 0x9DEF52BF, 0x12A95FCC, 0x1A533B35, 0x38664D5A, 0xD651EEC4, 0x165A653F, 0x7EC1A6CB},
11109 {0x62DA8ACB, 0xBF81AF09, 0x48705DFB, 0x3914E1CE, 0x2965BE0B, 0xB9914901, 0xB9DB8FF9, 0x341C69F5} } ,
11110 { {0x25A5F4C9, 0x48E9BE7B, 0x1B84A4CE, 0x89797C99, 0x5F5EE2CF, 0x5026D5B1, 0xBEDB39DC, 0x1DA5405E},
11111 {0x474A413F, 0x0A94FDA4, 0xDCA0AEFE, 0xC6D4DA3E, 0x1E99A670, 0x71E924F6, 0xD7B5F659, 0x23320089} } } } ;
11112 static const fp12_t var_b = { { { {0x610660E5, 0x1CCD9D5C, 0x107B99F1, 0x29E4935A, 0xB4D2AD20, 0x033EB0EF, 0xC9FBADCD, 0x1D00D5F8},
11113 {0xBC9F128C, 0x5B61E272, 0xDE2FA95F, 0xEBC2AF0A, 0xFBA02F43, 0x7776CDC2, 0xEF7D3C8F, 0x539B3CCB} } ,
11114 { {0xB919B773, 0xE5FE2A93, 0xC24D4F01, 0x21C4F722, 0x7F152331, 0x371C8BE4, 0xF52BC477, 0x9FBABA87},
11115 {0xCEAEB259, 0x9E3D19C9, 0xBAFC0C99, 0xF13AC01C, 0xAA329487, 0x33ED4000, 0x5D3B90F8, 0x06F99DF7} } } ,
11116 { { {0x024B66CE, 0xAD740245, 0xC0543C3A, 0x121C430C, 0x46BECED8, 0x65689476, 0xFE15CE77, 0x366E2A14},
11117 {0x56B472FD, 0xFA44A391, 0x735B9BD8, 0xAC83DA86, 0xA254D28E, 0x374AA077, 0xC02F52E5, 0xA83944EC} } ,
11118 { {0x14BDB942, 0xB9528C41, 0x7BD47DFA, 0x04B9DEAD, 0x7616E9DC, 0x3B193D59, 0x6147F407, 0x26616524},
11119 {0x09C8D847, 0xD940B128, 0x778DC925, 0x1C848B8E, 0x493D71C7, 0x5E8264D6, 0xB30F7A0B, 0x2A46D0DD} } } ,
11120 { { {0x46E9D9D2, 0x93C95708, 0x06EF9433, 0x17049681, 0x11DC440F, 0xB3858C33, 0x5B8E0314, 0x7F4CACC5},
11121 {0x782BF03A, 0xE438444A, 0x9C91658E, 0x71D42E61, 0xF0A46D20, 0xC5122500, 0xD4D29D1C, 0x02118495} } ,
11122 { {0x66EFDF06, 0x069C1C80, 0x0174B4F9, 0x8608B02D, 0xB8914AE6, 0x10F5286F, 0xEABF7DBA, 0x206251BB},
11123 {0x9D501E5C, 0x02BAF3EE, 0x7BD3471F, 0x511218F6, 0x2499BB55, 0xBB109492, 0xBFFCBD8D, 0x15FA0380} } } } ;
11124 static const fp12_t var_expected = { { { {0xA1F1D2D8, 0x917DD34B, 0xF9E696FC, 0x7C4FCA04, 0x2940B94B, 0xE4D631A1, 0x8A97847A, 0xA2EA4AF1},
11125 {0x13DF5BD5, 0x1157F77D, 0xA14FD3EF, 0xFAA1BF37, 0x63A0A489, 0xA81C001C, 0x90AD53F3, 0x269AB328} } ,
11126 { {0xCCFDB620, 0x9F36E0D7, 0xE8C4AA60, 0xB9664E7D, 0xCA90045F, 0x50B26140, 0xDC3A149E, 0xAC50D04F},
11127 {0x2E540162, 0x140D1434, 0x62FD283C, 0xD2132E13, 0xF05DB4EB, 0xBCDCC50C, 0xBB4E4CAA, 0x53A65138} } } ,
11128 { { {0x56019695, 0x3980A81E, 0x7385565B, 0xDF2B439F, 0xB747CB72, 0xAA0AF9F6, 0x3F4265C4, 0x55B6402B},
11129 {0x4AE35AAB, 0xE22A8D39, 0xD7FEE5D0, 0xE389143B, 0x607AB797, 0xFD6FF13F, 0x772DFCAB, 0x1B384131} } ,
11130 { {0x84C89615, 0xDAB22D0E, 0xC65589CD, 0x8FB5BF30, 0x1B5B32BC, 0x6AAEAC6D, 0xB42909C1, 0x94100D71},
11131 {0x4A3C426F, 0xF9666088, 0x529ED637, 0xC2D7EF38, 0x8513B12D, 0xE1917DDE, 0x85327496, 0xB5FD5718} } } ,
11132 { { {0xB064D4D9, 0x09148568, 0xE031AAE0, 0x16605154, 0x7A6C9300, 0x1E2CBEFC, 0xFAEB3E54, 0xB98898C7},
11133 {0xEAAE9A91, 0xDB496ABE, 0xABDEF86C, 0xC740B36C, 0x38C150EA, 0xF47F2400, 0xE508F2DC, 0x320AE55F} } ,
11134 { {0x20E24A5E, 0x413C2BAC, 0xEE87CF1C, 0x1682790C, 0xFAB0219E, 0x3A9209AC, 0x143A984B, 0xB7568D65},
11135 {0xA9FA22E3, 0x07DA09B5, 0x60CD67DF, 0x75C2C148, 0xF9FFEB1B, 0xB6D89063, 0x17B938CB, 0x0D37FD09} } } } ;
11137 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2577 a000");
11138 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2578 a001");
11139 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2579 a010");
11140 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2580 a011");
11141 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2581 a100");
11142 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2582 a101");
11143 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2583 a110");
11144 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2584 a111");
11145 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2585 a200");
11146 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2586 a201");
11147 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2587 a210");
11148 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2588 a211");
11151 static const fp12_t var_a = { { { {0xAEC3135D, 0x1B5FED94, 0xCE078024, 0x06E35C72, 0x423FADE7, 0xC60E7233, 0x0A29CB3F, 0x54C98480},
11152 {0xEE41D669, 0x5EC5EDD4, 0x3FA4C65C, 0x7C9B0A49, 0x0A70722B, 0xD9D9FE4B, 0xD3D5A2FB, 0x17729E03} } ,
11153 { {0xCFA15976, 0x1A5E9362, 0x669C24C7, 0x64773EE5, 0x2151A236, 0x928A429B, 0x79C1A62B, 0x3046975F},
11154 {0x5BFC04A4, 0x60569888, 0xAD0A16A8, 0xCE9D7665, 0x5F040A1F, 0x03A460CF, 0x2C3BE924, 0x8114E23E} } } ,
11155 { { {0xE335E194, 0x8BD5CCDD, 0x80984036, 0xE8D598C9, 0x025A7084, 0x63A09821, 0xF298F71E, 0x3AB21260},
11156 {0x3B9836DF, 0xB3A2F712, 0x46EA935E, 0x9C7C7B23, 0x1C80CC30, 0x4CED065C, 0xE6059C76, 0x40155F23} } ,
11157 { {0x1CECC25F, 0x39EA22DC, 0x93D84038, 0xDFE8F6C3, 0xD50B12FF, 0x7A58754E, 0xB4E709A4, 0x0A8BA22A},
11158 {0x62BC648A, 0x3EFEAE93, 0x237BF698, 0x528A8C40, 0xD23B544A, 0x122C5E3B, 0xDF439703, 0x0AEE6573} } } ,
11159 { { {0x50E7D9B1, 0x2BF0A6B3, 0x2E5E94DD, 0xEAC275FB, 0x201621A3, 0x4D9ABE93, 0x7C602F37, 0x305FD1CB},
11160 {0x07CC8863, 0x2A176A52, 0x1975C460, 0xD87236C9, 0x4E75DBA1, 0xE53E1E81, 0xF49ED294, 0x06D6153C} } ,
11161 { {0xF75A1502, 0xAA040C9F, 0xEF1F770D, 0xFEB33F3D, 0xF97A930B, 0x91C1D0B7, 0x8600D253, 0x37D4FC75},
11162 {0xE158C98E, 0xE0D5E68D, 0x9583A75F, 0x2FEC94F6, 0xF442AC70, 0x9C1C9F1F, 0xC295675E, 0x23656228} } } } ;
11163 static const fp12_t var_b = { { { {0x3DF1DB77, 0x43E99273, 0x69825FAD, 0x01FE8B57, 0x6D69BB1A, 0x4D449B33, 0x4F3EF9DC, 0x0254BEEB},
11164 {0x2073743D, 0x0BF7B494, 0x9C15B0FC, 0x71D079A8, 0xC3CFA178, 0x5C64BF76, 0xA64B38BB, 0x1EAE53D1} } ,
11165 { {0xDFE6C641, 0xBAEE8EC6, 0x64D6B559, 0x91999B33, 0xBC6F5010, 0xAC0C6479, 0x14169E8C, 0x10EC58CD},
11166 {0x5BD7A339, 0x913CABD3, 0xEF898AF4, 0x347E68C0, 0xF325DE3A, 0x79CD5C33, 0xFCEF362C, 0x23AC803F} } } ,
11167 { { {0x528B702A, 0x1B2EA91E, 0x9B7B10AB, 0x38922CF8, 0x16E3A6F4, 0x2C4497CE, 0x53A08BC5, 0x388A5779},
11168 {0xA66190D3, 0x9F57FE26, 0xE6A38E92, 0x25942D3E, 0x550C8AA5, 0x8ED6F583, 0xE2F668B3, 0x28F08064} } ,
11169 { {0x08B0C93A, 0xACB240D2, 0xAD7A91F3, 0xEB7D8954, 0x9496799B, 0x8024A7F9, 0x489DEA9C, 0x068EC11F},
11170 {0xDA62DCC0, 0x9811430E, 0x6E2BF7E7, 0x7D6745FB, 0x49AAFC85, 0x6A9A01DC, 0xB69EADA1, 0x4E2C4D29} } } ,
11171 { { {0x960B51AA, 0xFA5E7041, 0xFF07A912, 0xA63C17AE, 0x94A6B475, 0xADA72835, 0xB1A81C2A, 0x15711D5B},
11172 {0xC83E40A4, 0x2B86E451, 0xB30EC554, 0x4569E4DD, 0x79F6A97A, 0x319654C2, 0x93912585, 0x9674E254} } ,
11173 { {0xF199CB12, 0xCB1672DD, 0xB3189506, 0xDC6A3923, 0xAF262AF9, 0xE5574057, 0x49C5E63C, 0x724EEDE3},
11174 {0x066E1266, 0x3E09519A, 0x79E09766, 0x12E1D45F, 0x1FE85ECD, 0x39036D99, 0xD6E30C34, 0x2C1E63BB} } } } ;
11175 static const fp12_t var_expected = { { { {0x70D137E6, 0xD7765B21, 0x64852076, 0x04E4D11B, 0xD4D5F2CD, 0x78C9D6FF, 0xBAEAD163, 0x5274C594},
11176 {0x2FFA96C7, 0x51BCC2F2, 0x7806F4A7, 0x1DDC3D41, 0x9A835A68, 0x78D59B3F, 0x6DA94669, 0xB2D7E8F4} } ,
11177 { {0xEFBA9335, 0x5F70049B, 0x01C56F6D, 0xD2DDA3B2, 0x64E25225, 0xE67DDE21, 0x65AB079E, 0x1F5A3E92},
11178 {0x0024616B, 0xCF19ECB5, 0xBD808BB3, 0x9A1F0DA4, 0x6BDE2BE5, 0x89D7049B, 0x2F4CB2F7, 0x5D6861FE} } } ,
11179 { { {0x90AA716A, 0x70A723BF, 0xE51D2F8B, 0xB0436BD0, 0xEB76C990, 0x375C0052, 0x9EF86B59, 0x0227BAE7},
11180 {0x9536A60C, 0x144AF8EB, 0x604704CC, 0x76E84DE4, 0xC774418B, 0xBE1610D8, 0x030F33C2, 0x1724DEBF} } ,
11181 { {0x143BF925, 0x8D37E20A, 0xE65DAE44, 0xF46B6D6E, 0x40749963, 0xFA33CD55, 0x6C491F07, 0x03FCE10B},
11182 {0xEA85BC65, 0xA5DBF535, 0x89C7DDF7, 0xE834F2E5, 0xDC72E179, 0xA2F2B8CA, 0x68C3C58A, 0x76D5B70C} } } ,
11183 { { {0xBADC8807, 0x31923671, 0x2F56EBCA, 0x44865E4C, 0x8B6F6D2E, 0x9FF3965D, 0xCAB8130C, 0x1AEEB46F},
11184 {0xA1BA7C5A, 0xFD7F0FB1, 0x3ADEDE52, 0xA619FE8C, 0x2861BBDC, 0xAF08262A, 0xA12C8938, 0x2A74D1AA} } ,
11185 { {0x67EC7E8B, 0xDDDC2373, 0x107EC14D, 0x355AB2BB, 0x9E36F1C7, 0xA7CAECCB, 0x7C59C83F, 0x7F99AD54},
11186 {0x3D16EBC3, 0xA1BB1EA5, 0xF01AEF40, 0x301C6D37, 0x283CD758, 0x5E798DF2, 0x2BD13753, 0xB15A9D2F} } } } ;
11188 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2589 a000");
11189 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2590 a001");
11190 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2591 a010");
11191 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2592 a011");
11192 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2593 a100");
11193 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2594 a101");
11194 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2595 a110");
11195 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2596 a111");
11196 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2597 a200");
11197 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2598 a201");
11198 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2599 a210");
11199 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2600 a211");
11202 static const fp12_t var_a = { { { {0xEF392128, 0x2A933140, 0x555834F5, 0x2F2E5453, 0x69E2D288, 0xA25FA88C, 0xCFAFD5FC, 0xADA3989F},
11203 {0xA7C9311F, 0xFB1C9BCA, 0x16D83263, 0x9095F70F, 0x0A744516, 0x1E21CBA5, 0x9E2D36B2, 0x065379A9} } ,
11204 { {0xA5297340, 0x5EE10E8E, 0xB36F4BD5, 0x7F5614EC, 0x8790B54F, 0x9C79CE43, 0x40CEC2F3, 0x977415E2},
11205 {0x87DF1B65, 0xC99B8F92, 0x787503CC, 0xFA473950, 0x9D2BD3F2, 0xAC0B626D, 0x46152526, 0x449E4C5F} } } ,
11206 { { {0x6756327E, 0xF2F29B28, 0xDAD4FE34, 0xED6DEEF1, 0x0F2338F9, 0xCE80D85D, 0xD8FF50EB, 0x415B9603},
11207 {0x11643E77, 0x5503A765, 0xF82075A0, 0x44FD7F0B, 0x2BD3120C, 0x0F219C1B, 0xADC7DF39, 0x2F190C75} } ,
11208 { {0x69803551, 0xAE3F551A, 0x4223818B, 0xC8B6D4C5, 0xF134DBAB, 0x73A0917D, 0xD44E613A, 0x42843E3A},
11209 {0x04124FB4, 0x8205032B, 0xD40A7753, 0x3D1D705F, 0xEAF448EE, 0x8D3B99C7, 0xEE9C6F01, 0x1FADC4C7} } } ,
11210 { { {0xA6683C82, 0x9AFB13BF, 0xF54212B3, 0xE995DF8D, 0xAFC524DB, 0xF9C3BF83, 0xB157847D, 0x5A212E42},
11211 {0xAE652BF9, 0x7F1737AE, 0xBDF07440, 0x6C737A98, 0x04EE0141, 0xCD9C4E7C, 0xA713EAF3, 0x98F6B6CF} } ,
11212 { {0x0D659842, 0x005BFE01, 0x438AFAA7, 0xF9EDB553, 0x11B26A06, 0x256762AE, 0xADEA597D, 0x2AB4EF38},
11213 {0x26D4CCB1, 0xB2462B8D, 0xF41490AD, 0xE505B431, 0x30F87A9A, 0xA39ED2E2, 0xB4F828A4, 0x442FF96E} } } } ;
11214 static const fp12_t var_b = { { { {0x546C1CED, 0x6A6EAE9F, 0x0E3C0F6A, 0x2AE45E91, 0x70DB5638, 0xEBE558C4, 0x440AF735, 0x7FE3E21B},
11215 {0x623D9F3A, 0xC41D55EE, 0x26B77587, 0xE8CA5F64, 0x140EF1EA, 0x2863A5B1, 0xF49A1482, 0x55DB4B22} } ,
11216 { {0x118832F5, 0x9F0CD78F, 0xA20033BD, 0xE095D335, 0x120C4BFD, 0x852CF255, 0xF3233A06, 0xA928081C},
11217 {0x9668CA3D, 0x9F2336B5, 0x405C06FB, 0xF7CADE35, 0x951D991E, 0xB5C4E712, 0x82BA6A64, 0x3CEDCC5D} } } ,
11218 { { {0x19515EB4, 0xAA50A2CF, 0x8D2D2746, 0xB93A8390, 0x7C29F444, 0x6CA7E40E, 0x78FE1B3E, 0x39F32404},
11219 {0x3654FA62, 0x6B6B532A, 0x6F9EB149, 0xD4305900, 0xD8578344, 0xE4E5F94A, 0xBD58FD39, 0xAAD52F14} } ,
11220 { {0x803FBF0C, 0xD3290B9B, 0x9C959100, 0x98340E40, 0x72844724, 0x59D32E7C, 0xCF89F80A, 0x00B9EDC8},
11221 {0xF985DBC1, 0x922431D0, 0x20FD65AC, 0x7E59CBB7, 0x4281F274, 0x8DC1DD83, 0x408845C8, 0x8F9319BC} } } ,
11222 { { {0x9CFAC6F0, 0xA2EBBAEF, 0xDB581682, 0x9E1FE585, 0xF9287451, 0x45CD3B4B, 0x35AFAB47, 0x0F06D4B7},
11223 {0xD45A4B2C, 0xBD2A52AE, 0x01AD1412, 0x37E476CC, 0x7841273C, 0xC9BA5D76, 0xE93C4A74, 0x1CC4A0A4} } ,
11224 { {0x02A92385, 0xE2DD6AC2, 0x98B48577, 0x2BE2CBFF, 0x572EC8BE, 0x68E24BDB, 0x282182CD, 0xB78C7835},
11225 {0x982A080A, 0xD5A6B1EA, 0x28EFEA7F, 0x6DB10B2B, 0x0B9115D9, 0xF6CC9B7E, 0x93FCFF29, 0x0A9F52E7} } } } ;
11226 static const fp12_t var_expected = { { { {0x9ACD043B, 0xC02482A1, 0x471C258A, 0x0449F5C2, 0xF9077C50, 0xB67A4FC7, 0x8BA4DEC6, 0x2DBFB684},
11227 {0xA7B7C680, 0x35EDCF8D, 0xC4989C23, 0xBADD444B, 0x4A47DCE0, 0xF11E825F, 0xE9B1FE58, 0x6A8BCD48} } ,
11228 { {0xF5CD74E6, 0xBEC2C0B0, 0xE5E6F75E, 0xB1D1EE57, 0xC966F306, 0x12AD3859, 0x8DCA6516, 0xA85FAC87},
11229 {0xF1765128, 0x2A7858DC, 0x3818FCD1, 0x027C5B1B, 0x080E3AD4, 0xF6467B5B, 0xC35ABAC1, 0x07B08001} } } ,
11230 { { {0x4E04D3CA, 0x48A1F859, 0x4DA7D6EE, 0x34336B61, 0x92F944B5, 0x61D8F44E, 0x600135AD, 0x076871FF},
11231 {0x3D3B78B0, 0xE886DDEC, 0x5CF9A39D, 0x83DED2AC, 0xA75E187C, 0x259BFF3B, 0x308DBE28, 0x3E577C23} } ,
11232 { {0xE9407645, 0xDB16497E, 0xA58DF08A, 0x3082C684, 0x7EB09487, 0x19CD6301, 0x04C46930, 0x41CA5072},
11233 {0x6CB8A88E, 0xEECF5B0B, 0x8784F0ED, 0xD1D55149, 0xFC54E02E, 0xFADA18AF, 0xEE330561, 0x4A2E49CD} } } ,
11234 { { {0x096D7592, 0xF80F58D0, 0x19E9FC30, 0x4B75FA08, 0xB69CB08A, 0xB3F68437, 0x7BA7D936, 0x4B1A598B},
11235 {0xDA0AE0CD, 0xC1ECE4FF, 0xBC43602D, 0x348F03CC, 0x8CACDA05, 0x03E1F105, 0xBDD7A07F, 0x7C32162A} } ,
11236 { {0x6CE8A958, 0x1C6D1CF0, 0x7F4E5476, 0xE11C95F4, 0x0E662AFD, 0xB7E5733E, 0xC5E7B2D8, 0x2D3C15C5},
11237 {0x8EAAC4A7, 0xDC9F79A2, 0xCB24A62D, 0x7754A906, 0x256764C1, 0xACD23764, 0x20FB297A, 0x3990A687} } } } ;
11239 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2601 a000");
11240 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2602 a001");
11241 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2603 a010");
11242 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2604 a011");
11243 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2605 a100");
11244 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2606 a101");
11245 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2607 a110");
11246 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2608 a111");
11247 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2609 a200");
11248 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2610 a201");
11249 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2611 a210");
11250 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2612 a211");
11253 static const fp12_t var_a = { { { {0x8640DED1, 0x9BCCC98F, 0x5FD31D09, 0xE0BC4008, 0x10078AF9, 0x3C20213A, 0x642BFE22, 0x8A35C13C},
11254 {0xE2754E99, 0x014A7C4E, 0x433D5650, 0x1A483D20, 0x1C75C98B, 0xA0FB8844, 0x604B1FFD, 0x3669169B} } ,
11255 { {0x3ED6AC37, 0x1598E531, 0xFE9CE012, 0x9F5AC73E, 0xEAD0C531, 0x7AE4EFE4, 0xE68270A5, 0x582F930F},
11256 {0x407A1BAE, 0xAC87B843, 0x3E61930D, 0x053BA792, 0x14782B94, 0xAC22C6A2, 0x284378E6, 0x63BFE2E1} } } ,
11257 { { {0x7FEE781E, 0xDBC41823, 0x8286FD5D, 0x88E017F9, 0xE9A40E10, 0x1B6D93E6, 0xEC15658A, 0x31FF30CA},
11258 {0x093E373D, 0x7E7BB9B7, 0x9DFD3265, 0x84E3866B, 0xECD0FE77, 0x2F466C32, 0x0B9CB830, 0x7E6B043E} } ,
11259 { {0xDDCC1992, 0xB50B7C97, 0x37624F48, 0xFCFD319E, 0x53E733BE, 0x5768062C, 0xF2DBE355, 0x68903CCA},
11260 {0x0FD6B034, 0x62DFF697, 0x77894A4A, 0x030B17B6, 0x3464B60E, 0x87E1E25C, 0xE4C1D212, 0x3BFD98E1} } } ,
11261 { { {0x2FC442C2, 0xABE9DB15, 0xAB2FEE86, 0x9DFC532C, 0xAC97EAC7, 0xA8841F28, 0xB5A585A2, 0x8E445D1A},
11262 {0xF0BF7A30, 0x7E356001, 0x78F0A653, 0x7E616670, 0x0F672E6C, 0x40BCC2E3, 0xD05A046D, 0x7C559C92} } ,
11263 { {0x8886A59A, 0x08303279, 0xAAEBD4F0, 0x4BD0D56A, 0xB9A06AB8, 0xC700921F, 0x33ED5C58, 0x72038A53},
11264 {0x397687E6, 0x3D0215DC, 0x8EB4AB22, 0xBBE2C106, 0xE5CD4A69, 0x3FB0C6AE, 0xAEE86FED, 0x02E7376B} } } } ;
11265 static const fp12_t var_b = { { { {0x3D7548E8, 0x5494A383, 0x42609B7E, 0x2827E888, 0x8028009A, 0xAD3B32B6, 0xA8A5B2AF, 0x264BF7A4},
11266 {0x417C9932, 0x48B2E7FF, 0x3B6C2797, 0x0F910816, 0xAE7DBBF3, 0x9903A48E, 0x9AC73C58, 0xB9958FA5} } ,
11267 { {0x83C3DC26, 0x595177BB, 0xEB7C64A5, 0x81678A89, 0xF2FE0707, 0x96E4222A, 0x50ECBB73, 0x422C0B31},
11268 {0x3DD0C7DE, 0x877FCF47, 0x6C3BB32C, 0xFB2F3F7B, 0x512B2F7B, 0xA8134C63, 0xB066259A, 0x125F6FE8} } } ,
11269 { { {0x53A98122, 0x1C62CE0E, 0xAF7D1DAA, 0x301A7322, 0x8F541568, 0xF06A6A4C, 0xAC744680, 0x83BCA942},
11270 {0x403BB4DD, 0x26021027, 0x79A3FE57, 0x2D53E9B3, 0x9DABA5DB, 0x08E5BA2D, 0x0E17A653, 0x036B329A} } ,
11271 { {0x9CEDACFC, 0xEBBBC9AB, 0xDF0CB909, 0xDE45B860, 0x203D0660, 0x80CE71AC, 0xF51F623D, 0x8E61E2D4},
11272 {0x267F81CB, 0x876616D0, 0x4EAA0771, 0xDFC82729, 0xF5B3E849, 0x86985286, 0x1178CC99, 0xAC7EEACA} } } ,
11273 { { {0x17FC5A1E, 0x4D34FB58, 0x5BC1F3D3, 0xBE33E1CB, 0xFFCCBD5C, 0x3BEFEA5F, 0xA905FD0B, 0x2DA69AB9},
11274 {0xBCEA5FAA, 0x59B14556, 0x19FCDD6D, 0x19F516BA, 0x004964EC, 0x4831A0E1, 0xD60E75B8, 0x0F475952} } ,
11275 { {0x575264B7, 0x0B664594, 0x719714B5, 0x3125B810, 0x7002CDDF, 0x593DA06F, 0x46A77CAA, 0xB1E799B4},
11276 {0x9B65F567, 0x859B8D99, 0x9D695B2B, 0x6E96169E, 0xF9EF38D4, 0xA1EE0727, 0xBA4E0FC9, 0x582E7BCE} } } } ;
11277 static const fp12_t var_expected = { { { {0x48CB95E9, 0x4738260C, 0x1D72818B, 0xB8945780, 0x8FDF8A5F, 0x8EE4EE83, 0xBB864B72, 0x63E9C997},
11278 {0x0324EA02, 0xB7861E01, 0xDC490DFF, 0x1DC8E1AA, 0xC1DA974D, 0x03584020, 0x05A2BFCE, 0x36E725B8} } ,
11279 { {0xBB12D011, 0xBC476D75, 0x13207B6C, 0x1DF33CB5, 0xF7D2BE2A, 0xE400CDB9, 0x9595B531, 0x160387DE},
11280 {0x02A953D0, 0x2507E8FC, 0xD225DFE1, 0x0A0C6816, 0xC34CFC18, 0x040F7A3E, 0x77DD534C, 0x516072F8} } } ,
11281 { { {0x8E712B97, 0xBE4FD3C6, 0xA781BEFA, 0x6BD75177, 0xAE32825D, 0x26638605, 0x7FBFFB32, 0x6856264A},
11282 {0xC9028260, 0x5879A98F, 0x2459340E, 0x578F9CB8, 0x4F25589C, 0x2660B205, 0xFD8511DD, 0x7AFFD1A3} } ,
11283 { {0xA30AA131, 0xC83E3C9D, 0x2CCD7585, 0x31C925DE, 0x878CB713, 0xD1F9F0EB, 0x3DDB5D40, 0x9441F8B8},
11284 {0x4B836304, 0xDA686978, 0xFD57221F, 0x36549D2D, 0x92935779, 0xFCA9EC40, 0x1367E1A1, 0x49924CDA} } } ,
11285 { { {0x17C7E8A4, 0x5EB4DFBD, 0x4F6DFAB3, 0xDFC87161, 0xACCB2D6A, 0x6C9434C8, 0x0C9F8897, 0x609DC261},
11286 {0x33D51A86, 0x24841AAB, 0x5EF3C8E6, 0x646C4FB6, 0x0F1DC980, 0xF88B2202, 0xFA4B8EB4, 0x6D0E433F} } ,
11287 { {0x9360757E, 0xFBB87696, 0x0DCC9F81, 0x2DBCC9FB, 0x9D80268E, 0x69234E1B, 0x2D64BBD7, 0x7A2F8F61},
11288 {0x003CC71A, 0xB65511F4, 0xC5C32F3D, 0x605E5708, 0x3FC09B4A, 0x99231BF2, 0x34B93C4C, 0x64CC5A5F} } } } ;
11290 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2613 a000");
11291 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2614 a001");
11292 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2615 a010");
11293 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2616 a011");
11294 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2617 a100");
11295 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2618 a101");
11296 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2619 a110");
11297 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2620 a111");
11298 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2621 a200");
11299 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2622 a201");
11300 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2623 a210");
11301 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2624 a211");
11304 static const fp12_t var_a = { { { {0x32FD3F66, 0x2E307B9C, 0xAD38FE2B, 0xD9750EA3, 0xF9F64408, 0x55A9ACE5, 0x88DF4DC8, 0xAB79EDB2},
11305 {0x37E25B88, 0x317CF07E, 0x056167E0, 0xA17B5108, 0x038EADEC, 0x2CF7DA47, 0x19CDCF04, 0x3809E437} } ,
11306 { {0x5ABC906A, 0x00576FC9, 0x095395A3, 0x849A0AD2, 0x0A4D6A96, 0xEAD34074, 0x2C93919E, 0x33A1B37B},
11307 {0x46DA1287, 0xC9C6480F, 0xC0350519, 0xB1A5B75B, 0x849B5035, 0xC2495509, 0x91305FE9, 0x9F3AFA93} } } ,
11308 { { {0x4C3025B0, 0x07BFC3E6, 0x0DC577CC, 0x8A866815, 0xA5EB973A, 0x067ED0A9, 0x2F1DC631, 0x860C4599},
11309 {0x59723B29, 0xF4ABFF39, 0xA57837CF, 0xCD4602CA, 0xCD917967, 0x7EECA866, 0xBFE224E6, 0x05B01780} } ,
11310 { {0x1341DA11, 0x0FB89DB9, 0xB73DD0A1, 0x01FFCDC5, 0xBE9477FB, 0xF1F7CD51, 0x0FC78256, 0x0F0011C7},
11311 {0xCDA7C1EF, 0x9B54FD49, 0x1F1FBAE5, 0xB0272A8B, 0xC0A679B0, 0xAF61F1DD, 0x81770E16, 0x095489C2} } } ,
11312 { { {0x0C0D1239, 0x1F8EE073, 0xE41BF043, 0xD9AF90DD, 0x2A782F1A, 0x1556F1B7, 0x896D620A, 0x469845E0},
11313 {0xF0E42A83, 0xE81B975A, 0xDEA42981, 0xE00C1ECB, 0x84452CF6, 0xF96D9012, 0x714EC528, 0x2D596026} } ,
11314 { {0xC668FDD5, 0x832A388A, 0x0FBBEDF0, 0xA31F7A7D, 0x5F5DD203, 0x3CF6B240, 0x985D1A24, 0x1498D88E},
11315 {0xD90C2C26, 0x437534F8, 0x238A477D, 0x72716209, 0xD335C1D9, 0x327272EB, 0x6F916ACE, 0x1D0FD5F1} } } } ;
11316 static const fp12_t var_b = { { { {0x1CFFAAAD, 0xC08EE5AA, 0x99C645A4, 0xCDDFFD79, 0xB21DFAF7, 0x4C1E7654, 0x7B13E9CC, 0x72BA1635},
11317 {0x7DEDE40B, 0x56D1F112, 0x9BCCAB1A, 0xA641F1B0, 0x5280E68E, 0x7116BC38, 0x566DC10C, 0x09907B09} } ,
11318 { {0x7E02E938, 0xA26D5B9B, 0x4FFA8060, 0x808D6D7C, 0x6AA7B254, 0x8DDDE61F, 0xEE3F313D, 0x83909339},
11319 {0x12BC08A2, 0x091D7D47, 0x332F4DC2, 0xFFFB8B4C, 0xE6A0A15B, 0x113B60A8, 0x4500D614, 0x63E456DD} } } ,
11320 { { {0x2266BB1F, 0x31F6603B, 0x9422A096, 0x6FA89E9C, 0x63114660, 0x72C7E306, 0xEFE543D5, 0x9274E517},
11321 {0xA939518A, 0x8762E3C1, 0x4392DDF4, 0x2AB017AB, 0x60F38861, 0xAF27C1E8, 0x570A40CF, 0x21FED255} } ,
11322 { {0x1E50B479, 0xB6BD195A, 0x3590A4F7, 0x7B48A4BA, 0x607A6DD7, 0xB69EF5A8, 0x7A933CD8, 0x713214DC},
11323 {0x1FDCE4F1, 0x35049E4E, 0xB71AF729, 0x60646BA2, 0x2174ACD9, 0x160046C6, 0xEA59E222, 0x65309760} } } ,
11324 { { {0xC795BF88, 0xBA3DCDDB, 0x3E6169F4, 0xC63F7B13, 0x663CABE8, 0x4F462F35, 0xCC4FDABD, 0x302C665E},
11325 {0x426C53A0, 0xC0F68E52, 0xBD53C59B, 0xAB7A5E0E, 0xD22EDEB8, 0x6C8A3B43, 0x1B631899, 0x2E70390C} } ,
11326 { {0xB20BED6B, 0x0664A8B7, 0xFD50B168, 0xB02AEDB3, 0xBB3C1012, 0x7951F6FD, 0x636B5093, 0x1F6A32E5},
11327 {0xAA076E4B, 0x10A7C778, 0x18ADB7BC, 0x9D6BC047, 0xAB6F3470, 0x0789C42D, 0x46486A32, 0xA8336FBC} } } } ;
11328 static const fp12_t var_expected = { { { {0x15FD94B9, 0x6DA195F2, 0x1372B886, 0x0B95112A, 0x47D84911, 0x098B3691, 0x0DCB63FC, 0x38BFD77D},
11329 {0xB9F4777D, 0xDAAAFF6B, 0x6994BCC5, 0xFB395F57, 0xB10DC75D, 0xBBE11E0E, 0xC3600DF7, 0x2E79692D} } ,
11330 { {0x3EE5DBCD, 0x5CD89DDF, 0x8DD0F489, 0x171E49F6, 0xF38841F7, 0x5855B6BF, 0x7E733C8A, 0x6A24BF03},
11331 {0x341E09E5, 0xC0A8CAC8, 0x8D05B757, 0xB1AA2C0F, 0x9DFAAED9, 0xB10DF460, 0x4C2F89D5, 0x3B56A3B6} } } ,
11332 { { {0x8BF59F2C, 0xD4B7ED5C, 0x4E1AB67C, 0x2DEF7619, 0x96BCDA8F, 0x8F174A0E, 0x7F575E84, 0xADAAFF43},
11333 {0x12651E3A, 0x6C37A529, 0x365D3922, 0xB5A797C0, 0xC0807ABB, 0xCB2542E9, 0xA8F6C03F, 0x9DC4E3ED} } ,
11334 { {0x571D5A33, 0x57EA0E10, 0x56250AF0, 0x99C8D5AC, 0xB1FC93D8, 0x36B93414, 0xD55321A7, 0x57E19BAC},
11335 {0x0FF71199, 0x653EE8AD, 0x3C7CA303, 0x62D46B89, 0xF314568C, 0x94C20782, 0xD73C081D, 0x5E379123} } } ,
11336 { { {0x447752B1, 0x65511297, 0xA5BA864E, 0x137015CA, 0xC43B8332, 0xC610C281, 0xBD1D874C, 0x166BDF81},
11337 {0x10A40B7E, 0x261392BA, 0xF5C8432D, 0x47A36D5D, 0x05F8D7F3, 0x8843B13A, 0x960A88B8, 0xB8FCC5DC} } ,
11338 { {0x76894505, 0x7BB41984, 0xE6E31BCF, 0x06063969, 0xF8044BA6, 0xBF0517AD, 0x7510A5B9, 0xAF42446B},
11339 {0x9130F276, 0x31BBF731, 0xDF546F08, 0xE8174E62, 0x7BA9171D, 0x26490B29, 0x6967DCC5, 0x2EF004F7} } } } ;
11341 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2625 a000");
11342 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2626 a001");
11343 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2627 a010");
11344 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2628 a011");
11345 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2629 a100");
11346 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2630 a101");
11347 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2631 a110");
11348 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2632 a111");
11349 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2633 a200");
11350 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2634 a201");
11351 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2635 a210");
11352 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2636 a211");
11355 static const fp12_t var_a = { { { {0x51A939BE, 0xA4337978, 0x2A0F691E, 0xC86DAB0A, 0x8F596B85, 0xB132B365, 0xBB310F48, 0x1796B75D},
11356 {0xCA97B58C, 0x4DDF3E99, 0xF3F3AFF3, 0xF8809059, 0xD3A2EB5F, 0x7F6515E2, 0xCA0DAF52, 0x861A1F4F} } ,
11357 { {0xE0B6CB94, 0xDAFF29FD, 0x0F6C3A06, 0x27A05678, 0xA325A8EE, 0xA0B0EF65, 0x91508928, 0x167351E8},
11358 {0x594DBC08, 0xE045C671, 0xBD9A01FC, 0xBDF6A7D8, 0xAE87F750, 0xAE21A46B, 0x4289ABDB, 0xB7124BA5} } } ,
11359 { { {0x8E614596, 0x34A6AB26, 0x3C701B82, 0xB5E65485, 0x01610DDD, 0x4FAC4F90, 0x6279E774, 0x001E0087},
11360 {0x4BF0059F, 0x73ED799F, 0x218925C6, 0x2D0B1BD3, 0xE1807ECA, 0xACE7BED5, 0x8C312955, 0x6D688015} } ,
11361 { {0xEF9B3D7D, 0x7C85A14D, 0xFF6C8798, 0xD4A750F1, 0xEE3DAB51, 0xF619A981, 0xAC40E640, 0x24D86196},
11362 {0xD52F9C92, 0xEEE43313, 0x0EEC012D, 0xC90EFE99, 0x50E4C8FC, 0xD299E60E, 0xC5EE6088, 0x18D66B9A} } } ,
11363 { { {0xFF680E01, 0xB60DB2E0, 0x61C7F0FC, 0x5D969474, 0xEAB0E435, 0x01912045, 0xEBF2CADE, 0x4217B914},
11364 {0x6CF25640, 0x7BC703CA, 0xAF05C6CC, 0x52748EC6, 0x224BA486, 0xB962ED97, 0x4AEAB90B, 0x6A94910E} } ,
11365 { {0x4B7AC3BE, 0x30FB074E, 0xDE1A8C93, 0xE61683E9, 0x6AE889FF, 0x3B12EE80, 0x1D2B92DE, 0x44C75F65},
11366 {0xC6A5D837, 0x834CAAD2, 0x73FD5988, 0xC8E0BF1B, 0xBAE13A9A, 0x3A45D977, 0xB75EDC7B, 0x536A2906} } } } ;
11367 static const fp12_t var_b = { { { {0xB00F6ECF, 0x6FE2B5AD, 0xD40E024E, 0xDB54D9C0, 0xC4E45D4F, 0x8A466BB3, 0x7E77778D, 0x228C67C1},
11368 {0xD78E3ECC, 0xAED718E9, 0x06B0628A, 0x6E3B2D25, 0xBFB75E46, 0x6FAC8A2D, 0xEB67185F, 0x06BD1E18} } ,
11369 { {0x3A863CCD, 0x40DB07BF, 0x3EA9264D, 0x5136E177, 0xEC98DD71, 0x3B0035F0, 0x8B359AA3, 0x45909AD6},
11370 {0x71ED50D6, 0xE61A6B7F, 0x8107FA87, 0xB0ABC113, 0xC02DC034, 0xB59ACA2C, 0xC1B444C7, 0x378B95E4} } } ,
11371 { { {0x476D6B6E, 0xA8F17C92, 0xFD9BAD65, 0x368C29F1, 0xB86937D5, 0xB3D52286, 0x01560E0B, 0x26D6028F},
11372 {0xCFFE6BE0, 0x545D9726, 0xB8AA593B, 0x76F221FC, 0x8BCE435C, 0x9BBDEAA4, 0x17CF3D24, 0x0ED0AEBA} } ,
11373 { {0xC53CFAB8, 0xF3C3A018, 0x5E0FF283, 0x31132D9F, 0xF03584EB, 0xB90C4489, 0x1E580ACF, 0x6816D2A8},
11374 {0xA66A4714, 0x5E6A43AA, 0x1B7638C3, 0xC21A6D55, 0x86330254, 0xFB18EA23, 0x8A59FCC7, 0x7A2BD9C2} } } ,
11375 { { {0x0B61C637, 0xAB5DDB95, 0x7020919C, 0x6438C468, 0x9A7E6C1B, 0x46EB3A64, 0x1E526E80, 0x1C9E763F},
11376 {0x269D767C, 0xB1175EDE, 0xAC4B2894, 0xAD93BD4D, 0xAC5459D6, 0xF7962BC3, 0x76D54B55, 0x39F26038} } ,
11377 { {0x705E8C12, 0x95DDD866, 0x28388D9F, 0x54180BB0, 0xA2D3CEC7, 0x8BE6CF15, 0xFFA2A7ED, 0x084A7EF4},
11378 {0xE5EAA1EE, 0x35855AA7, 0x2E3AD108, 0xCC906A38, 0x3744329C, 0xE37CBEB3, 0x3A142256, 0x75A53FA0} } } } ;
11379 static const fp12_t var_expected = { { { {0x03C5FF8A, 0x333F4D7C, 0x2A794617, 0x002A7DEA, 0x1E5797EB, 0x224CA41D, 0x7CD873E4, 0xAF1DEE5E},
11380 {0xF30976C0, 0x9F0825AF, 0xED434D68, 0x8A456334, 0x13EB8D19, 0x0FB88BB5, 0xDEA696F3, 0x7F5D0136} } ,
11381 { {0x085CC362, 0x9912ABF0, 0xA53AF300, 0xE97B21A1, 0x0A6F5531, 0x611115E0, 0x4639CAAE, 0x8AF655D4},
11382 {0xE7606B32, 0xFA2B5AF1, 0x3C920774, 0x0D4AE6C5, 0xEE5A371C, 0xF886DA3E, 0x80D56713, 0x7F86B5C0} } } ,
11383 { { {0xA9200EC3, 0x8AA3B845, 0x134C4D63, 0x926BD734, 0x9CDA5FBD, 0x97378974, 0xA142B591, 0x935B9CBA},
11384 {0x7BF199BF, 0x1F8FE278, 0x68DECC8B, 0xB618F9D6, 0x55B23B6D, 0x1129D431, 0x7461EC31, 0x5E97D15B} } ,
11385 { {0x8C8A7760, 0x87B08AE6, 0x75D4745B, 0xB6A5CFF3, 0x51EAB01B, 0x386DC163, 0xCE07B79A, 0x76D52DB0},
11386 {0x90F18A19, 0x8F68791A, 0xC7EDA7B1, 0x1A063DE4, 0x1E94505D, 0xD2E15856, 0x7BB33FE9, 0x58BE309A} } } ,
11387 { { {0xF40647CA, 0x0AAFD74B, 0xF1A75F60, 0xF95DD00B, 0x50327819, 0xBAA5E5E1, 0xCDA05C5D, 0x257942D5},
11388 {0x4654DFC4, 0xCAAFA4EC, 0x02BA9E37, 0xA4E0D179, 0x75F74AAF, 0xC1CCC1D3, 0xD4156DB5, 0x30A230D5} } ,
11389 { {0xDB1C37AC, 0x9B1D2EE7, 0xB5E1FEF3, 0x91FE7839, 0xC814BB38, 0xAF2C1F6A, 0x1D88EAF0, 0x3C7CE070},
11390 {0x42E76AE4, 0x4CB5D9DC, 0x1A3A67C7, 0x0F620184, 0xD77F91B3, 0x5229772F, 0xBD69964D, 0x97D88828} } } } ;
11392 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2637 a000");
11393 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2638 a001");
11394 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2639 a010");
11395 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2640 a011");
11396 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2641 a100");
11397 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2642 a101");
11398 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2643 a110");
11399 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2644 a111");
11400 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2645 a200");
11401 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2646 a201");
11402 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2647 a210");
11403 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2648 a211");
11406 static const fp12_t var_a = { { { {0x6843523C, 0xBC5A4DA7, 0x3D8A020A, 0x922F7821, 0x3ABD41ED, 0x06586630, 0x3D21FE28, 0x012FA23C},
11407 {0xF8086A1B, 0x14021A9E, 0xF7F615B6, 0xCDC4F3E9, 0xFA13521D, 0x5E16CF3B, 0xF16AB111, 0x269BD909} } ,
11408 { {0x69D60E6A, 0x681AA04B, 0x542DA5EA, 0x0FCF9395, 0x7A6DD843, 0x68E34AE1, 0x15913F36, 0x9411A7C3},
11409 {0x3A613D54, 0xB231C7EF, 0xF5775AE7, 0xEADCBBE5, 0x516E0CA6, 0x308BD357, 0xF93844B9, 0x6B8AAFCC} } } ,
11410 { { {0x05087B26, 0x257FB7F7, 0xCEA7A7E7, 0xC9C7DF38, 0xBFAE87B7, 0xB630A513, 0x44CEB98B, 0x5D0EBA9A},
11411 {0x78B09EBD, 0xBD4F08F4, 0x541F7781, 0x2ADC5645, 0xE918CC60, 0x83A5B66C, 0x6F89AA99, 0x46CC5114} } ,
11412 { {0x334D5573, 0xB928369A, 0xCE7F3BA6, 0x31ECFE28, 0xA37C65A3, 0x24B7AE79, 0x885C6F5D, 0x672633E1},
11413 {0xE8DBFE7B, 0x1D1D866B, 0x03B7C22C, 0x10CF1473, 0xA62F4C2A, 0xAECBA1B0, 0x6FF25224, 0x292732E6} } } ,
11414 { { {0xC73DCF31, 0x2ECDD8D6, 0xE0317A4D, 0xEAD60C9A, 0xABCB7A7B, 0x2BCE8CB1, 0x9DB98C35, 0x43FCD34B},
11415 {0xC41A40D4, 0xFB8604EF, 0xD7D2FEE8, 0x81C52DE4, 0x5596DCE5, 0x442AEF5A, 0xD94C18AB, 0x39C571E6} } ,
11416 { {0x75E40004, 0xCEC77FE5, 0xFEFFDA06, 0xC0FA88CE, 0x47D8B0BF, 0x883CE0C5, 0x412E2132, 0x08E5208A},
11417 {0xC08E5668, 0xBD74E78E, 0x3FB6429D, 0x809F4ADF, 0x5BC38BC6, 0x1ACACAFC, 0x47FCDDB0, 0x66FBEFBE} } } } ;
11418 static const fp12_t var_b = { { { {0x57C05A1C, 0x2165E507, 0xDCA036A2, 0xFDFBD5A2, 0x2504D954, 0x2C4D0F9B, 0x30171C4B, 0x3C46DB42},
11419 {0x0D9E5EC0, 0x1062E2AA, 0x3D2EE559, 0x261D2680, 0xB505D85D, 0x541609C0, 0x16D3DCD4, 0x6E4FFA4B} } ,
11420 { {0xFF3685CE, 0xEEC7F808, 0xC9B80C32, 0x01619084, 0x88B5D585, 0x4E758BC3, 0xE71D611C, 0x2F4888AE},
11421 {0x43178033, 0xDC8F5D60, 0x93B366A1, 0x0844F3DC, 0x9C4A9507, 0x46568FCD, 0xA46A9FE1, 0x7CF43B62} } } ,
11422 { { {0x1FB82FB8, 0x438AF365, 0xD43155E6, 0x329A793F, 0xFBC4CF67, 0x768DD124, 0x62EA2131, 0x43C817F8},
11423 {0xD5D4A033, 0x49DD0580, 0x6E5C0E25, 0xE72A12C2, 0x34DF672D, 0x89B84058, 0x4E808F1D, 0x408739DA} } ,
11424 { {0x52C966F5, 0x63A3CCDD, 0x1BBA0003, 0xBFBCAB85, 0x93A96099, 0x4B21ABD8, 0xA2217B12, 0x33380504},
11425 {0x7A38D654, 0xC14512DE, 0x3B247962, 0xC41A8A83, 0xE4A365BF, 0xF7437D8F, 0xB1E224EB, 0xAC320C17} } } ,
11426 { { {0x66BBF002, 0xDCF6C5BC, 0x598EB527, 0x7C88E35B, 0x04822AFA, 0xD855A4B6, 0xE06F7594, 0x27809413},
11427 {0xC44F20E6, 0xED817964, 0xD343FDFE, 0xCD8C8E59, 0xFC7A17B7, 0xAD06AC49, 0x6922B090, 0x36AC0287} } ,
11428 { {0x77C544F0, 0x74D42BEB, 0x2EC7B8D6, 0x17988490, 0xE38A1C5A, 0x438800DB, 0x9B3C6E1F, 0x5850F0B2},
11429 {0x0EFD174A, 0xB44267FD, 0x9F58E424, 0xBB94706F, 0x5DFF2955, 0xF58AB3B9, 0x55FEA1AC, 0x7EA62044} } } } ;
11430 static const fp12_t var_expected = { { { {0x72AF2CBB, 0x99E2F251, 0x3561AAAF, 0xA7454F1F, 0x699AF24D, 0xD56BB300, 0x4D29BE05, 0x7EFC65BC},
11431 {0x4C963FF6, 0x028DC1A6, 0x8F3F0FA4, 0xBAB97A0A, 0x98F00375, 0x056121E6, 0x1AB5B066, 0x725F7D81} } ,
11432 { {0x6A9F889C, 0x7952A842, 0x8A7599B7, 0x0E6E0310, 0xF1B802BE, 0x1A6DBF1D, 0x2E73DE1A, 0x64C91F14},
11433 {0x5975F1BC, 0xD490F440, 0x363BD38C, 0xF5A974AA, 0x09060154, 0xE5959FF5, 0x94EC8100, 0xA8AA132C} } } ,
11434 { { {0xE5504B6E, 0xE1F4C491, 0xFA765200, 0x972D65F8, 0xC3E9B850, 0x3FA2D3EE, 0xE1E4985A, 0x1946A2A1},
11435 {0xA2DBFE8A, 0x73720373, 0xE5C3695C, 0x43B24382, 0xB4396532, 0xF9ED7614, 0x21091B7B, 0x0645173A} } ,
11436 { {0xE083EE7E, 0x558469BC, 0xB2C53BA3, 0x723052A3, 0x0FD30509, 0xD99602A1, 0xE63AF44A, 0x33EE2EDC},
11437 {0xD0CF5CC2, 0x5AC6FD3E, 0x9D0B2810, 0x5FC63690, 0x156E701F, 0xB2E8808C, 0xFE2F0961, 0x3708C590} } } ,
11438 { { {0x6081DF2F, 0x51D7131A, 0x86A2C525, 0x6E4D293F, 0xA7494F81, 0x5378E7FB, 0xBD4A16A0, 0x1C7C3F37},
11439 {0xFFCB1FEE, 0x0E048B8A, 0x048F00EA, 0xB4389F8B, 0x591CC52D, 0x97244310, 0x7029681A, 0x03196F5F} } ,
11440 { {0x604AEFAF, 0x58E1DDAB, 0xA4B00077, 0xBC73B0DF, 0xB8311E1A, 0x40153C54, 0xE6108F3C, 0x6AA7CE99},
11441 {0x13BD73B9, 0x08210943, 0x74D53DC0, 0xD81C8710, 0x51A6EC25, 0x20A073AE, 0x321D182C, 0xA2696E3C} } } } ;
11443 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2649 a000");
11444 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2650 a001");
11445 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2651 a010");
11446 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2652 a011");
11447 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2653 a100");
11448 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2654 a101");
11449 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2655 a110");
11450 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2656 a111");
11451 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2657 a200");
11452 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2658 a201");
11453 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2659 a210");
11454 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2660 a211");
11457 static const fp12_t var_a = { { { {0x35B15554, 0x3587E5A6, 0xA923DDBD, 0xF761AB94, 0xBA2BF8EF, 0x142FB357, 0xCEB4BBC4, 0x2AFFB707},
11458 {0xA89533E9, 0x416BA08E, 0x5086125F, 0x183CDFD7, 0x2F077E7A, 0x789DCC99, 0x10FB4079, 0x071C702E} } ,
11459 { {0x171DE3A5, 0x692A8C1F, 0x6CFF2976, 0x100F9DFE, 0xA200CBD2, 0xFF94122D, 0xB8E7796A, 0x267C4545},
11460 {0xA7E3E6CA, 0xFDF6B154, 0x28F5CA30, 0xF646FDFE, 0x2DC17273, 0x09A750F2, 0x786BE532, 0x7B24E4AC} } } ,
11461 { { {0x72E9BA18, 0x978E6627, 0x83CBAC46, 0x84305A1A, 0x9FBEBED9, 0xFC83F9A8, 0x96FF6AB0, 0x5FF8B409},
11462 {0x029D59B2, 0x91DE0EA1, 0xD24AE185, 0x98E9C583, 0xFA9D8F28, 0xC157E287, 0x6AA4A307, 0x0CA20D4A} } ,
11463 { {0xDAB567F6, 0x89B8248E, 0x3C56956E, 0xB3E11D58, 0xF66518E0, 0x45365D2A, 0xE42FD4AE, 0x240B454E},
11464 {0xEDDE10CF, 0xE4966D14, 0x3DF2C1D8, 0x7DEADDC7, 0x7D81DD9D, 0xF99784B8, 0x03EC7227, 0x2B65AE34} } } ,
11465 { { {0x2531DF2F, 0x497195FA, 0x249B87B3, 0x3FD81475, 0x2D92A11B, 0x53E6C979, 0x5F85524E, 0x08C2BCC9},
11466 {0xDD7D1758, 0x22A19F43, 0x94EB2D6B, 0x67B21C32, 0xD9122A0F, 0x4B181911, 0xA049CC53, 0x883CD1A2} } ,
11467 { {0x063D305C, 0x1FE8562B, 0x331B2221, 0xF5634BDE, 0xB4E77B6A, 0xE3FDC70E, 0xC497A755, 0x219CD735},
11468 {0x8855DA81, 0xB21A6D81, 0x469C8A65, 0x575C7965, 0x750CBFE3, 0x8FE1A27F, 0xDD559DD4, 0x1505066B} } } } ;
11469 static const fp12_t var_b = { { { {0xF71B9ED7, 0x93E840A2, 0xF203D516, 0x2FCF8D7A, 0x8DCF23B4, 0xE18AA9CA, 0x11F182A8, 0xAE010A7B},
11470 {0xE298B8E3, 0x3D4D7416, 0xFF9EC5A9, 0x8EC55B4D, 0xF48B8D3E, 0xDEE44CDB, 0x980A8FCF, 0x03BAC1A4} } ,
11471 { {0x05D9AD61, 0x702FC3E2, 0x5ED9D5F9, 0x03BC5BF8, 0xAD0DC929, 0x97A4E4C7, 0xC2905DD1, 0x197107F9},
11472 {0xBCF61407, 0xAE4F83BE, 0xD81BED1F, 0x7A8BA47F, 0xE880437A, 0x962AD84F, 0xAF73C415, 0x0871439E} } } ,
11473 { { {0x2E057A0A, 0xBF032B54, 0x82D3FA91, 0x4A1DA6BF, 0x93711317, 0x734AA388, 0x5462A83E, 0x1FAC6150},
11474 {0xB6C24DF3, 0x2A41310F, 0x7AEF98B9, 0x147627BA, 0x736310CD, 0x4247F8D4, 0x3C1B1603, 0x04CD57CB} } ,
11475 { {0x834B65EF, 0xC57093CA, 0x2A00B16D, 0xE59B3724, 0x064FE87D, 0x2B25FD50, 0xC5E32B7E, 0x9302F1C1},
11476 {0x5C9369D0, 0x1E836640, 0xD6CCCFE8, 0x26D365EE, 0xFCB6C9B4, 0xC9210A5C, 0x1FA1BBD1, 0xB948EE46} } } ,
11477 { { {0x98ED2A74, 0x0FCE3102, 0xBA8AAF2A, 0xD0B670A6, 0x63B01F51, 0xC28167F3, 0xD109B169, 0x106DB0A8},
11478 {0x044477ED, 0x329FAFE5, 0x6DBBF507, 0x023B32B4, 0x7D2749C2, 0x3F4DC61A, 0x74C37BF5, 0x140C4054} } ,
11479 { {0x61F1026F, 0x66F062BE, 0x54E32820, 0x7E2D9CD7, 0x421241DF, 0x6EBCDBF8, 0x35B1EEC3, 0xA309BB66},
11480 {0xE56BA247, 0x4E2C7FDB, 0x2C90360F, 0x2B46944C, 0xDB722AF7, 0xFEB34D3E, 0x57924A25, 0x8399C854} } } } ;
11481 static const fp12_t var_expected = { { { {0xA0C1EB18, 0xA08E2EB4, 0x8B97E7ED, 0xDAA3CABA, 0x803F5EF0, 0x2E0565F8, 0xFCE21544, 0x37124B4E},
11482 {0xC5FC7B06, 0x041E2C77, 0x50E74CB6, 0x89778489, 0x3A7BF13B, 0x99B97FBD, 0x78F0B0A9, 0x0361AE89} } ,
11483 { {0x11443644, 0xF8FAC83D, 0x0E25537C, 0x0C534206, 0xF4F302A9, 0x67EF2D65, 0xF6571B99, 0x0D0B3D4B},
11484 {0xEAEDD2C3, 0x4FA72D95, 0x50D9DD11, 0x7BBB597E, 0x45412EF9, 0x737C78A2, 0xC8F8211C, 0x72B3A10D} } } ,
11485 { { {0x44E4400E, 0xD88B3AD3, 0x00F7B1B4, 0x3A12B35B, 0x0C4DABC2, 0x89395620, 0x429CC272, 0x404C52B9},
11486 {0x4BDB0BBF, 0x679CDD91, 0x575B48CC, 0x84739DC9, 0x873A7E5B, 0x7F0FE9B3, 0x2E898D04, 0x07D4B57F} } ,
11487 { {0xB99636A2, 0xC3361A75, 0xE6CDC347, 0xE15792D4, 0x43F7BA17, 0x1570BC46, 0x5E6B8559, 0x4B1BF24F},
11488 {0xF376DB9A, 0xC5019085, 0x3B9DD137, 0x6A292479, 0xD4AD9D9E, 0x2BD6D6C6, 0x2469927F, 0x2C305EB0} } } ,
11489 { { {0xEE70E956, 0x3891EEA8, 0x3E88B7D0, 0x8233506F, 0x1DC50B7E, 0x8CC5BDF1, 0xCE9A7D0D, 0xB268AAE2},
11490 {0xD9389F6B, 0xF001EF5E, 0x272F3863, 0x6576E97E, 0x5BEAE04D, 0x0BCA52F7, 0x2B86505E, 0x7430914E} } ,
11491 { {0x06786288, 0xB7E67D1E, 0xB2AFD947, 0x8A475BA7, 0xC6B7C340, 0x70A14781, 0xCF0494BB, 0x38A6BA91},
11492 {0x05166CD5, 0x62DC7757, 0xEE84339D, 0x3F2791B9, 0xED7D1EA1, 0x8C8EB1AB, 0xC5E22FD7, 0x4B7EDCD9} } } } ;
11494 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2661 a000");
11495 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2662 a001");
11496 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2663 a010");
11497 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2664 a011");
11498 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2665 a100");
11499 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2666 a101");
11500 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2667 a110");
11501 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2668 a111");
11502 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2669 a200");
11503 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2670 a201");
11504 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2671 a210");
11505 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2672 a211");
11508 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11509 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11510 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11511 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11512 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11513 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11514 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11515 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11516 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11517 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11518 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11519 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11520 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11521 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11522 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11523 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11524 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11525 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11526 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11527 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11528 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11529 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11530 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11531 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11532 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11533 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11534 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11535 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11536 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11537 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11538 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11539 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11540 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11541 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11542 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11543 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11545 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2673 a000");
11546 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2674 a001");
11547 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2675 a010");
11548 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2676 a011");
11549 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2677 a100");
11550 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2678 a101");
11551 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2679 a110");
11552 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2680 a111");
11553 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2681 a200");
11554 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2682 a201");
11555 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2683 a210");
11556 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2684 a211");
11559 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11560 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11561 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11562 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11563 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11564 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11565 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11566 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11567 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11568 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11569 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11570 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11571 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11572 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11573 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11574 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11575 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11576 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11577 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11578 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11579 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11580 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11581 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11582 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11583 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11584 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11585 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11586 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11587 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11588 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11589 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11590 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11591 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11592 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11593 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11594 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11596 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2685 a000");
11597 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2686 a001");
11598 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2687 a010");
11599 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2688 a011");
11600 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2689 a100");
11601 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2690 a101");
11602 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2691 a110");
11603 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2692 a111");
11604 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2693 a200");
11605 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2694 a201");
11606 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2695 a210");
11607 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2696 a211");
11610 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11611 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11612 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11613 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11614 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11615 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11616 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11617 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11618 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11619 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11620 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11621 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11622 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11623 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11624 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11625 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11626 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11627 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11628 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11629 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11630 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11631 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11632 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11633 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11634 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11635 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11636 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11637 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11638 { { {0xB1161A4E, 0x7F7744D8, 0x6A3BEFA3, 0x8988D650, 0xA9F144DA, 0x7DB02E35, 0x200F6E14, 0x5D09CF61},
11639 {0xB1161A4E, 0x7F7744D8, 0x6A3BEFA3, 0x8988D650, 0xA9F144DA, 0x7DB02E35, 0x200F6E14, 0x5D09CF61} } ,
11640 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11641 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11642 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11643 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11644 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11645 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11647 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2697 a000");
11648 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2698 a001");
11649 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2699 a010");
11650 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2700 a011");
11651 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2701 a100");
11652 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2702 a101");
11653 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2703 a110");
11654 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2704 a111");
11655 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2705 a200");
11656 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2706 a201");
11657 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2707 a210");
11658 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2708 a211");
11661 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11662 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
11663 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11664 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11665 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11666 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11667 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
11668 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11669 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11670 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11671 { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
11672 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
11673 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11674 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11675 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11676 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11677 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11678 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11679 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11680 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11681 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11682 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
11683 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11684 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } } } ;
11685 static const fp12_t var_expected = { { { {0xB1161A4F, 0x7F7744D8, 0x6A3BEFA3, 0x8988D650, 0xA9F144DA, 0x7DB02E35, 0x200F6E14, 0x5D09CF61},
11686 {0xB1161A4E, 0x7F7744D8, 0x6A3BEFA3, 0x8988D650, 0xA9F144DA, 0x7DB02E35, 0x200F6E14, 0x5D09CF61} } ,
11687 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11688 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11689 { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11690 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11691 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
11692 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
11693 { { {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
11694 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
11695 { {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2},
11696 {0x622C3499, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } } } ;
11698 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2709 a000");
11699 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2710 a001");
11700 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2711 a010");
11701 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2712 a011");
11702 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2713 a100");
11703 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2714 a101");
11704 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2715 a110");
11705 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2716 a111");
11706 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2717 a200");
11707 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2718 a201");
11708 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2719 a210");
11709 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2720 a211");
11712 static const fp12_t var_a = { { { {0x5492E9C0, 0xD213CA6B, 0xB0376437, 0x7EB5655A, 0xD447E110, 0xAAF0A65E, 0x6FD1B0E6, 0x22C3B68A},
11713 {0x10ACFA47, 0x9C5F2610, 0x6BBDE26D, 0x4D9D7223, 0xE7B7AF2A, 0xA327C7A2, 0xE64088C1, 0x00DD7DB8} } ,
11714 { {0xAAA05F43, 0x9B04E7BE, 0x1812FFAF, 0xE9769EAE, 0xDB18D543, 0x23CE6F11, 0x3B084FF9, 0x8CDDB872},
11715 {0x63E2F485, 0x83427D31, 0x167AB794, 0xA363FC70, 0x0232C5F3, 0xF8D59408, 0x7E8CE053, 0xA8A34779} } } ,
11716 { { {0x30DED89C, 0x4D6B0721, 0x48036D3C, 0x955576F6, 0x0BD84021, 0xE4FE6D00, 0xD6124A94, 0x0B233EF0},
11717 {0xAAB39198, 0xAFF688A9, 0x5CE3B174, 0x3592614E, 0xD5B173C3, 0x250FD51C, 0x3C5E98F4, 0x7FDC48BE} } ,
11718 { {0xA4CB89FD, 0xAD6A2E51, 0x09FF5E84, 0x1AFE6D13, 0xA712F879, 0x1900D13F, 0x7E4E5023, 0x1C1250AF},
11719 {0x7DA14B60, 0x0792D8B8, 0xFD7AD7AF, 0x97BC6056, 0x99C478E3, 0x7F9FF2FB, 0x7DC96168, 0xAF77BA53} } } ,
11720 { { {0xD8287C3C, 0xC6DEA010, 0xEA824529, 0x1C41F693, 0x300E082B, 0x39F2DFBF, 0xEF596410, 0x5123645F},
11721 {0xF04B75AE, 0xB51A567F, 0x5428A9D1, 0x77B4769A, 0x1FB5C43A, 0xA21A244E, 0x5E25C2B4, 0x2FFAF9EA} } ,
11722 { {0x1D860C8A, 0xE2DBCEDF, 0x0ED48FEA, 0x53357BFF, 0xC7F0F9C0, 0x08803BB4, 0xA6FA526B, 0x08EEB4B8},
11723 {0xDDC7C303, 0x21AB8C6E, 0x48D7A3DC, 0x0F068920, 0xC82ED71B, 0x5BAC0935, 0x3B971D60, 0x200A2BF6} } } } ;
11724 static const fp12_t var_b = { { { {0x2B637F18, 0x88E4F743, 0x56306926, 0xF5A1E0B9, 0xC38654EC, 0x7A58E531, 0x218E6C4C, 0x0B9BBBA0},
11725 {0x133D3B88, 0xF4B554EE, 0x0C9A4F39, 0x66532437, 0x3DAC0123, 0xCFE84705, 0x32AA54E2, 0x84AF1ABC} } ,
11726 { {0x96D3E577, 0x83C173D6, 0x11BABD8A, 0x63C6EA79, 0x6A042416, 0xC739468C, 0xDC5B557C, 0xABA5B590},
11727 {0x29E8F663, 0x18E24AD7, 0x60276C0B, 0x1219A459, 0xB6A8CF8C, 0x531C1EDE, 0xA057E841, 0x8533A0F0} } } ,
11728 { { {0x34FA401E, 0xDBFF3191, 0xC9C0AA83, 0x3D7CE047, 0x40392E92, 0x69E24654, 0x9484F679, 0x79FFE90C},
11729 {0x3265533A, 0xB805AB72, 0x9CDBAB42, 0xBF51ED6C, 0x069D53E5, 0x869AFA3F, 0xA21BB09B, 0x1AB53FE7} } ,
11730 { {0x1A59A4AC, 0xD9803311, 0x4D9124AB, 0x644766C8, 0x0BE08F19, 0x19A150D5, 0x47D26606, 0x4620F30E},
11731 {0x0A094596, 0x364FAC81, 0xAB577CB4, 0xA8F2A988, 0x8D9E585B, 0x329327D2, 0x958035CA, 0x63B05F25} } } ,
11732 { { {0x9D218C01, 0x050A88AA, 0xAA45B0AD, 0xF9653D34, 0xCFEE4D67, 0xD0E49113, 0x3188A7BC, 0x2416ADD6},
11733 {0x7F751E63, 0x427F3338, 0xBEA2794B, 0xD546179B, 0xF3D76AA8, 0x7DD87567, 0x95B6A1B1, 0x6349B2E2} } ,
11734 { {0x518467CD, 0x2AD5CFB6, 0x2D953111, 0x5EE0E6FD, 0xD1E6DA5B, 0xC6CC8624, 0xCF323552, 0x6295C712},
11735 {0x28A51E9A, 0xC2CE6389, 0x94A8D650, 0xDAB3BDA0, 0x73B01919, 0xBD38E330, 0x019C312C, 0x452130E6} } } } ;
11736 static const fp12_t var_expected = { { { {0x7CBCF142, 0x17701B20, 0x0A2C82D3, 0xD5F18659, 0x9254AF14, 0xE4356A6D, 0xD137FE2D, 0x1315D238},
11737 {0x140F5DC8, 0x85EE1F3E, 0xED892B7B, 0x3F8DDB24, 0xC5214E62, 0x75B7244C, 0x5AAEA292, 0xB03FB660} } ,
11738 { {0xB5EAA6A8, 0xCC14F4AA, 0x6B534C6E, 0x8489D17B, 0x082F37DF, 0xBEAC856E, 0x1F0B27BC, 0x66702726},
11739 {0xC4818745, 0xF49EC9A6, 0xC36B72DB, 0xFD195B0A, 0x858A90DA, 0x7E6CCA84, 0x3FC96C58, 0x5F557D38} } } ,
11740 { { {0xB5FB9B1B, 0x8E52752D, 0x0299A753, 0x4783D9AA, 0x54C13622, 0x575EF431, 0x3D0F018B, 0x9823565B},
11741 {0x5571B6D0, 0xD9FD377C, 0x684C9A21, 0x3F724F92, 0x1722FA0B, 0x1A8C10FE, 0x2F26D1A3, 0x11474546} } ,
11742 { {0x5B7544BB, 0xDBCA2F5C, 0x2DEACD2C, 0xBABEB424, 0x44980AC8, 0xAB72C96F, 0x3B3A0498, 0xA4A553B5},
11743 {0x89D7D509, 0x3259AAFF, 0x9855BD33, 0xD97E7510, 0x66274CE5, 0x40D1552E, 0x69F155B4, 0x6EBF35E3} } } ,
11744 { { {0x325D2300, 0xA31DBBB2, 0x0CF7BDE7, 0xC9B26BF9, 0xB2FEAB94, 0xC28F9021, 0xD541B7E6, 0x9B51F0FF},
11745 {0xA80A86E9, 0xAB4E36C3, 0x0540542B, 0x8AC605B1, 0x5C7C0F1E, 0x63C54B16, 0xAF3B610F, 0x5C4A2CF3} } ,
11746 { {0xFABA53D3, 0xB1FE13B4, 0x3C4B4CDC, 0xDA72AE76, 0x284AC7E3, 0x7C87C8DC, 0xA8247122, 0x6B431338},
11747 {0xE73A48C7, 0x027D0212, 0x1A5E5BFB, 0x5EAF6E1A, 0x76D694F6, 0x9F68E5AB, 0x471D6916, 0x66A8A8BA} } } } ;
11749 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2721 a000");
11750 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2722 a001");
11751 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2723 a010");
11752 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2724 a011");
11753 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2725 a100");
11754 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2726 a101");
11755 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2727 a110");
11756 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2728 a111");
11757 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2729 a200");
11758 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2730 a201");
11759 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2731 a210");
11760 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2732 a211");
11763 static const fp12_t var_a = { { { {0x0C01579E, 0x502041C7, 0x62A4CC8A, 0x34992A66, 0x9724904C, 0x75B8C5FA, 0xDF776C5D, 0x9308FC91},
11764 {0x7A5DA481, 0xDFD30F6C, 0x5BB2506C, 0x786F68D9, 0x30B09928, 0x8A299BCC, 0x34F1177E, 0xB903E574} } ,
11765 { {0xE3B61E98, 0xC0BD31A3, 0x16D5DBD0, 0x5A5D8280, 0xE52F1B64, 0x96D70FFE, 0x5DE6C2BE, 0x87A0E7ED},
11766 {0x2BAB4E0E, 0x0401709B, 0x80AEEDB7, 0xB0A18FC9, 0x91B21519, 0xBDB8E563, 0xCC47DC67, 0xB10A9BDA} } } ,
11767 { { {0x2AB44C4D, 0x02A4243C, 0x5796F915, 0xF4F36868, 0xC10BDF38, 0x22BAA508, 0x86C6D309, 0x4F6489E0},
11768 {0x2F329D3C, 0xD7345249, 0xB00070C4, 0xC3747984, 0x3936EA56, 0x6F1C7EA8, 0xA6D231B6, 0x5DAE0A0B} } ,
11769 { {0x7846936E, 0xE17D5B00, 0x72341E9A, 0x602E8DA8, 0x6F8649FE, 0x52E0DFA2, 0xD8E9408B, 0x3C416435},
11770 {0xBA7D4453, 0x444A4DFB, 0xD9515EE2, 0x3225BF00, 0x0EAD5461, 0xFA42AD14, 0xDE3522B5, 0x2FD52E2F} } } ,
11771 { { {0x3D1E22AA, 0x664C6283, 0x1F30F2B7, 0x2EE73B74, 0x21A69341, 0xA2E9AF2B, 0xCF5C8B9F, 0x2506A6C4},
11772 {0xE1240208, 0x72BA6EA9, 0x51E8C0B5, 0xA9FF8A37, 0xE2EA0CC8, 0xFB01CC3B, 0x9337AFDA, 0x1ED01DAD} } ,
11773 { {0xB77C722E, 0xD79C5A40, 0xA86A714B, 0x7767BC98, 0x9769AB06, 0xC0098A2F, 0x28CEE895, 0x09DBAC3B},
11774 {0x7FF35D9A, 0xCAD22709, 0x06CFA991, 0x66CB3C14, 0x14DC8DB9, 0x3C8BB393, 0x202CF783, 0x48CDC08D} } } } ;
11775 static const fp12_t var_b = { { { {0xB19BF4EF, 0xC1DE2B5C, 0xC9C5AB87, 0x11BAC018, 0x875382E6, 0xB66DDB62, 0x21112AF9, 0x126E3FAA},
11776 {0x6188103E, 0xF5F829A8, 0x24F74798, 0x6F256CE7, 0x4E08BE02, 0xE63288A1, 0xA38DB867, 0xB1225D1A} } ,
11777 { {0x499757D6, 0xE9E539F8, 0x21034649, 0xA8C047CF, 0x850C3D32, 0xA97A128C, 0x36B8D68F, 0x783591B3},
11778 {0x20573162, 0xDE860DC9, 0x6FB6EF5C, 0x5745AC75, 0xC9AFD156, 0x4CC97F30, 0x79047091, 0x8423AF5E} } } ,
11779 { { {0x2E24CAE7, 0x5B8875D3, 0xBF89ED11, 0xA5392A35, 0x1A613D42, 0x23AF2632, 0x64154200, 0x9D524601},
11780 {0x301F0A32, 0xABB4E761, 0x1340AEA4, 0xE0B2AD0B, 0xABB48C52, 0x0746021E, 0xFF9AD5CB, 0x71CDD644} } ,
11781 { {0xD6C7D577, 0x5F68F31B, 0x445D7E1A, 0xFB950BF0, 0x60561B54, 0xD65DC0AC, 0xE860E325, 0x0E7C43FC},
11782 {0x4667D7DF, 0xC81620EB, 0x7DECA7A2, 0x0B68C666, 0x57CC33A4, 0xF0B8B802, 0xD2ACDC91, 0x6AEC22D3} } } ,
11783 { { {0x351DE6E0, 0x7FEFDDA5, 0xEA1E74C1, 0xB89CBFEE, 0x08276BC8, 0xC0F88350, 0xC0CED497, 0x219691CB},
11784 {0x57CD0890, 0xDC2DC065, 0x5A092C8D, 0x19E132EE, 0x73CF6726, 0x21DA0382, 0xCEB62A65, 0x9F2A610A} } ,
11785 { {0x063482F6, 0x8177621B, 0x79ACE8C9, 0x77E7AA47, 0x52E2ED9F, 0x0DE2EFA3, 0x29157E9E, 0x563E5A96},
11786 {0x995635D5, 0xD0F6C6D4, 0x97A95CDF, 0x8A2CBBFE, 0xE40975A8, 0xF29936A4, 0x1127E2EF, 0x82205238} } } } ;
11787 static const fp12_t var_expected = { { { {0xA824D466, 0xE99615D5, 0x2B906D00, 0x42FC6441, 0x32710BE7, 0x824B71F0, 0xFADDDB68, 0x046C87A4},
11788 {0xDB030760, 0x6B32322C, 0x547BD092, 0xCD14291B, 0xB6D85137, 0x0BBF3424, 0xCE7EF6B5, 0x5614C817} } ,
11789 { {0x8E904BF3, 0x17117064, 0x4CACD0CA, 0x79D077FB, 0x5BA28296, 0x91D5FD04, 0xFDC9B81B, 0xA6306E0F},
11790 {0x0FF45951, 0xD441E2AF, 0x07B2C83C, 0xD0203A6D, 0x7F0A4D75, 0x7C4B7E69, 0xC7749D49, 0xB5D8B540} } } ,
11791 { { {0x0847288E, 0x06EAD196, 0xAFC62E7E, 0xA83CB469, 0x47F61CA1, 0x46D5A430, 0xFAB26DD2, 0x66B7D4E7},
11792 {0x36060693, 0x4EB4099B, 0x4C8D2582, 0x66FD8F37, 0x7C76A754, 0x0CF04F22, 0x7C6C9B64, 0x4F2C03A3} } ,
11793 { {0x5DAB7CC1, 0x16C861F7, 0x7DB46037, 0x5C3B07F2, 0x060AF7EB, 0x22E107FC, 0x74BA4293, 0xB1210A16},
11794 {0x3D4FF1A5, 0xADDFB99C, 0x8C724CC5, 0x5B6BFEDE, 0xEE6AA00A, 0x16ADF051, 0xF6BA7FCF, 0x3B8A8D01} } } ,
11795 { { {0x3AEB2C80, 0x0AA79562, 0x7D3AEEEC, 0x71F30AD7, 0x32729620, 0x5C6E413B, 0x4C1D2544, 0x0C56DB34},
11796 {0xC063D520, 0xC1ACDE40, 0x1C3DC16D, 0x217DE292, 0xA4804CD9, 0xD5FB3EBB, 0x81014DA1, 0x3160558E} } ,
11797 { {0x4DDDD700, 0x49F1A4D6, 0x3E1ED990, 0x1C731A08, 0x674AFD0F, 0x9ACE4CEE, 0xE81E0C39, 0x7A6E33E0},
11798 {0x98A4495B, 0xF61F5FDE, 0xDDFBE26F, 0x5A8FA719, 0x51EFD693, 0xBF8702D0, 0x2DA88B38, 0x7130BAC8} } } } ;
11800 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2733 a000");
11801 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2734 a001");
11802 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2735 a010");
11803 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2736 a011");
11804 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2737 a100");
11805 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2738 a101");
11806 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2739 a110");
11807 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2740 a111");
11808 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2741 a200");
11809 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2742 a201");
11810 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2743 a210");
11811 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2744 a211");
11814 static const fp12_t var_a = { { { {0xF81A6747, 0x71848371, 0x0342A157, 0x9F3D3787, 0xC7E41709, 0x443CC7FE, 0x1E0E50FD, 0x0E0C97F0},
11815 {0x1E938EB6, 0xCF8BF741, 0x8CFD8B4D, 0x0EEA0F08, 0x7BA78CF4, 0x01503809, 0xB90DE546, 0x0A50A24D} } ,
11816 { {0x1FC9C878, 0x98BBABAF, 0x5480D945, 0x114804E6, 0x2E1CC6B4, 0x1CDA8799, 0x9E96AA43, 0x1B5C337F},
11817 {0xC0CB4654, 0x3E5FE12A, 0x257A64E9, 0xDEAF9388, 0x9974AD88, 0x1830155C, 0x21899420, 0x569CC113} } } ,
11818 { { {0x953CB3BD, 0x7D856232, 0x21C458FE, 0x158B39FB, 0x30798A80, 0x886E977C, 0x6544FD60, 0x03479B79},
11819 {0x51968D83, 0xCA75E623, 0x90FA9B72, 0x01707385, 0xE64CECF7, 0x6010E9F1, 0x665DFEB7, 0x688A8C31} } ,
11820 { {0xEE190049, 0xE9DCE0AC, 0xBA1B032E, 0x0B33B53B, 0x16B13FE0, 0xBD9C9917, 0xF1B72737, 0x16681145},
11821 {0x65E167EF, 0x5A4CF85C, 0x903E9C91, 0x0C3394BA, 0x9D4CF6A7, 0x2CC3C53A, 0xE7FC900C, 0x6B208788} } } ,
11822 { { {0x3DFC54F4, 0xE7E86051, 0x000DFBF3, 0x6F24D30E, 0xBB8DCC94, 0x41887C89, 0x7E6C1E26, 0x71E324C2},
11823 {0x72661E1B, 0x18BD52AE, 0x5063B698, 0xC0D2CFC8, 0xE2AFF280, 0x15C2F38F, 0xFFBB3D88, 0x128EE9C2} } ,
11824 { {0xF7A25FEB, 0xBF2D8FDC, 0x96C634BF, 0x34617977, 0x39AE7D4A, 0xC644975D, 0x4924B0D6, 0x9FE2E65C},
11825 {0x2E269FD6, 0x6D7E70B1, 0x3E2B2129, 0x1F1B9E46, 0x1A0614E4, 0xF41E21A7, 0x4DC0170E, 0x4C518B85} } } } ;
11826 static const fp12_t var_b = { { { {0x71906753, 0xFA65B5E2, 0x890B4227, 0x7BD4F25D, 0x94498064, 0x46E6CC77, 0x903B6265, 0xB1502C0F},
11827 {0x8DB85DFB, 0x01B37A5B, 0x08CEAC98, 0x67DA7528, 0xE98113BE, 0xE313F873, 0xACD06A57, 0x4B4653CB} } ,
11828 { {0xE059E886, 0x62118BD2, 0x5104AFC6, 0x9361629D, 0xBD7F7785, 0xFF10657B, 0x8E78919D, 0x3EEAF013},
11829 {0xC49CE761, 0xBD79BC52, 0x9AC80A6C, 0x1CF19143, 0x3649206F, 0x3A9379DC, 0x3A252604, 0x7FB7CB3C} } } ,
11830 { { {0x3DD5696E, 0xFDAF3C07, 0xF765D60A, 0x554E7BB7, 0x3615B72E, 0x5A69F637, 0xC377B34A, 0x06B5733F},
11831 {0x49892CA5, 0xCB7D1AC8, 0x20ADA932, 0xFE611A4C, 0x25C542CD, 0x93D71B79, 0x53379BDB, 0x9A6DDAD4} } ,
11832 { {0x78AD6E20, 0x17FCE1F3, 0xCD93A25C, 0x6A9EF921, 0xC8EB5D40, 0x20642BFD, 0x6943868B, 0xAB40B44C},
11833 {0xCFBB7A88, 0x94868EDD, 0x09F32451, 0x0E62B1EF, 0x1AF233C6, 0xC5F3ACD9, 0x969190FA, 0x8CBF9C63} } } ,
11834 { { {0xE54289B7, 0x39E1B525, 0xDFA60D38, 0xF2C6D745, 0x7646A078, 0x4A35A5D4, 0xBF3C69F1, 0x3D724E87},
11835 {0x4D492F15, 0xC007A7E2, 0x01C74887, 0x8C6864ED, 0xBCAFA865, 0xEB62F907, 0xDE9FA8EB, 0x88A267C0} } ,
11836 { {0x40F6C53C, 0x290CF31A, 0xF838C5E5, 0x87B94C9E, 0x841E2D9F, 0x0265E992, 0x01ECD290, 0x3D8F719C},
11837 {0x9540E62A, 0x39C2813F, 0x2162C9F7, 0xE82C54AC, 0x9A2D8790, 0x6237D9D6, 0x096040BE, 0x42A64CF9} } } } ;
11838 static const fp12_t var_expected = { { { {0x32314A1C, 0x94537DEB, 0xF38EC0E6, 0xDC11CA45, 0x0712D020, 0xDC0C5E3C, 0x844CAFDF, 0x6FFFC65E},
11839 {0xEA1B2DBA, 0x49B0E90B, 0x72C62B18, 0x7AFF86F7, 0x64F5D385, 0x9D8E7F3F, 0xDF53B358, 0xB43CAF2B} } ,
11840 { {0x1B526090, 0x5485876A, 0x0726AE57, 0xF1B31064, 0x0F7D5F6C, 0x72BBAD10, 0x4E9267F2, 0x9384C04C},
11841 {0x15DF14C6, 0x95CCA8B1, 0x1B39758D, 0x4210935C, 0x9187C659, 0xD403D9DE, 0x7DA608A0, 0x2275864B} } } ,
11842 { { {0xDBF51DF8, 0x41A8B189, 0x87B086CD, 0xC0130E10, 0x1522FF46, 0xF34A5362, 0xD54E3FC1, 0xA308C378},
11843 {0x38E688BA, 0x361AEF1D, 0xC9AEF9A1, 0x5F727CA2, 0xE9040EE8, 0x86C61A4A, 0x018FA0B4, 0x19EC7F33} } ,
11844 { {0x543E7B55, 0x9BF62DB6, 0x4A875FC0, 0xBC1400AA, 0x4F6F4985, 0x811559E0, 0x739FC18A, 0x5EB71BCC},
11845 {0xA4FF6B74, 0xAEE3238F, 0xAFA793FE, 0x07365319, 0xD2287181, 0x0EADDB98, 0x0F010C5B, 0x7C5EE8E1} } } ,
11846 { { {0xAF51C39E, 0x8DB36BC2, 0x5AA0EB36, 0xDEA2DD0E, 0x56E2E579, 0x18741998, 0x2748ED0F, 0x7B8CE35D},
11847 {0xF67453E9, 0x703DED23, 0x77FDEDAC, 0x85B49C51, 0xB0EC6597, 0x8A02F5DA, 0xAD123B52, 0xB1B5E450} } ,
11848 { {0x7D578809, 0x609A78B0, 0x472BB028, 0xC4318B6A, 0x3D92425F, 0xACCE6A5E, 0xF29CBFF3, 0x7E8C8B9E},
11849 {0xCD589580, 0xADDC2E58, 0xB221B00C, 0x45F19644, 0x035EF355, 0x4E61A0C7, 0x2A5E21DD, 0x8CFEFE32} } } } ;
11851 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2745 a000");
11852 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2746 a001");
11853 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2747 a010");
11854 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2748 a011");
11855 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2749 a100");
11856 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2750 a101");
11857 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2751 a110");
11858 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2752 a111");
11859 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2753 a200");
11860 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2754 a201");
11861 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2755 a210");
11862 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2756 a211");
11865 static const fp12_t var_a = { { { {0x38F36A86, 0xF4136A97, 0x27081C6F, 0x925BA738, 0x7974AEEC, 0xD0F54402, 0x2DB7CEDF, 0x0D9DDDAE},
11866 {0x42DD974E, 0x26FFFFAA, 0x1236D1EE, 0x1A11CF0F, 0xD6ABCBA9, 0xB48F311F, 0x35CECAB6, 0x9C677D23} } ,
11867 { {0x4432DE40, 0xE05FC4CA, 0x0E6B909C, 0x0641D2A8, 0x6E817975, 0x67BEE214, 0x7FEAB8F7, 0x3836546F},
11868 {0xE3115BE7, 0xF3C9F839, 0xC504FC23, 0xEB7CAB10, 0xDAE9CCD6, 0xCA5C41AA, 0x3C7C9AFB, 0x57DB8066} } } ,
11869 { { {0x56C36D5D, 0x781DBC2C, 0xE5567E58, 0xF155FA3B, 0x14B394E9, 0xC5B4512D, 0xF4CDFD00, 0x1623BC4D},
11870 {0xD09DEF12, 0x47D621B3, 0xBB686FF5, 0xAFA28BD1, 0x9D57BA56, 0xB7BBFD0C, 0x3E9A31D1, 0x5F23FAAE} } ,
11871 { {0x2A27C495, 0x826A43DC, 0x75FD58B8, 0xEE542AFD, 0xAE4F28EA, 0x17BFA3FF, 0xC92B04DE, 0x24E55DFD},
11872 {0x3D7AED51, 0x0C65F68D, 0xE24860F8, 0xE734617A, 0x05F57943, 0xD4A0B9E2, 0x572A000D, 0x243C417E} } } ,
11873 { { {0x0DB71864, 0x0BA11723, 0xFC76224B, 0x521A5C99, 0x6F01BB09, 0xE722BC02, 0xBCD24C51, 0x0DE43371},
11874 {0x9F57E146, 0x6AC3D7E0, 0x65216FFC, 0x54886355, 0x378535D0, 0xBAC8C159, 0xE3EF9E95, 0x5820DA1E} } ,
11875 { {0x9C8EE0B6, 0x59E3C0B5, 0x9797A982, 0x48B9EDA0, 0x6B7863D3, 0xDAB92FCB, 0xC930C198, 0x89AF0672},
11876 {0x49C1B38A, 0xCBEC1EC2, 0xDE5BD7D7, 0xE4920FCF, 0x45FC47E5, 0x47E80337, 0x4020A666, 0x32C4D1BA} } } } ;
11877 static const fp12_t var_b = { { { {0x054296E1, 0xF6B40926, 0xD7B9ABE3, 0xBA81C1C1, 0xAE68C55C, 0xF9D7A481, 0x6E530AEB, 0x7AE288EC},
11878 {0x564B0384, 0xD7C06DF0, 0x77767500, 0x11519A45, 0xCE3ADA89, 0x871C9E63, 0x0BCF005C, 0x108DF932} } ,
11879 { {0xDDE9CDD8, 0xACD758FF, 0x073CDDA3, 0x09C52280, 0x7BBB79A6, 0x7CA5773B, 0x25EF3B3B, 0x32F8A0B9},
11880 {0xD62615DB, 0x7747EFBA, 0xA0253A2E, 0x222BA385, 0xBC86DF3B, 0xDFBAD72E, 0xA185AEA7, 0x3692F4E5} } } ,
11881 { { {0x2173736F, 0x82DB3BFE, 0x33554BB2, 0x0EE1CCB7, 0x53DF07BA, 0xD0A901C4, 0x712FB489, 0x73611A6F},
11882 {0x9E2DA157, 0xD58C6238, 0x59D2BA04, 0xEDAFCF6F, 0x88B24B4D, 0xE4A0012B, 0x9F4B0B05, 0x0F7CD630} } ,
11883 { {0x5C3332DF, 0xC3620D36, 0xD62D1716, 0x5EA61365, 0xAC38706A, 0xBE9C9819, 0x494E44DF, 0x21C4D2BF},
11884 {0x655434C5, 0x5A8B1490, 0x11132FA0, 0x714FA74D, 0x9701A9F9, 0x70E4BF70, 0xA1DA85D0, 0x8B2C94C1} } } ,
11885 { { {0x6CD22E26, 0xF5A392B6, 0x4EBA1788, 0x6768D675, 0xDAB92192, 0x2E96C2F2, 0xED389EE5, 0x3742008E},
11886 {0xBDFB5213, 0xAFBA8F7C, 0xA07B655C, 0xDD6A3558, 0x3A77D428, 0xA062DF65, 0x466EF631, 0x22CFB3AC} } ,
11887 { {0x5DD4951E, 0xE6187922, 0x9712801E, 0x3CFB6268, 0xD413309F, 0x6B9E8D91, 0xD96CEEC9, 0x1F3EE745},
11888 {0x02194D06, 0xBB4A0191, 0x6FC4A8E2, 0xEBB96A91, 0x5197D9DC, 0xBE34BEF9, 0x69309696, 0x73503C57} } } } ;
11889 static const fp12_t var_expected = { { { {0xA86C99DD, 0x912E56E7, 0x0A58A59D, 0x9970E8A8, 0xC65CBF55, 0x506A4031, 0x3C24C49D, 0x11AE1D59},
11890 {0x45C956F0, 0xBF2CEAD0, 0x64AA6D89, 0x744FF177, 0x7AACEB8F, 0x71C70144, 0xF45FF6EB, 0x8172214E} } ,
11891 { {0x00624240, 0x71364C70, 0x279EB54D, 0x8F8D554C, 0x1E260423, 0xA2066233, 0xB20B439A, 0x7277ED5A},
11892 {0xCE27760F, 0x87BA6707, 0xA777AC8C, 0x498BC496, 0x5418957D, 0x3F560834, 0x09EFAF0B, 0x270C8967} } } ,
11893 { { {0x9B36BB4F, 0xED0C385D, 0x9C690E10, 0x77EB7F70, 0x5A331F8B, 0x52392547, 0x5AE19FA0, 0x82B85DC2},
11894 {0xB3328A03, 0x82B7BAAC, 0xB230C524, 0x5E79A164, 0x6CBA64D6, 0x1DA418A4, 0x6A6FC295, 0x73DDDAA8} } ,
11895 { {0xE09782DF, 0xA7D42315, 0x39CC2BB8, 0xBDA57ADF, 0xACFD2E4B, 0xA5F10AF0, 0x439AD603, 0xB8A861ED},
11896 {0xEDC40D75, 0x6D9E9DAD, 0x3032CAAF, 0xF77AB90E, 0x7269DE0C, 0xEABF0530, 0x1A96A441, 0x54DCAD9B} } } ,
11897 { { {0x44DFF340, 0xB28B8ADA, 0x309FC8C0, 0x1329E963, 0xC03CF7A8, 0x3147B2A5, 0x4B2BEC9E, 0x6AE5DDD1},
11898 {0xAD0ECAD5, 0x2945EE9B, 0xB9FE4A9C, 0xCC1D21E8, 0x53896C24, 0x55D9F222, 0x76F3F394, 0xAE490BD5} } ,
11899 { {0x731269A9, 0x7E7C2A99, 0xE59C4047, 0x7D58739A, 0x032A8F13, 0xDB7579DC, 0x6184360B, 0xA694B372},
11900 {0x06B0CF0F, 0x638F9109, 0xF3C27A5E, 0x02448BF9, 0x36D42565, 0x1D5D0B3F, 0xEBEC1BBA, 0x7A501464} } } } ;
11902 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2757 a000");
11903 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2758 a001");
11904 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2759 a010");
11905 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2760 a011");
11906 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2761 a100");
11907 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2762 a101");
11908 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2763 a110");
11909 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2764 a111");
11910 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2765 a200");
11911 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2766 a201");
11912 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2767 a210");
11913 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2768 a211");
11916 static const fp12_t var_a = { { { {0x8EAFF161, 0x99F37B9E, 0x8FB6884B, 0xCDD9D8A6, 0x6B1DC0AA, 0xDA3DB193, 0xCAB6DB54, 0x51B6105F},
11917 {0x82D4C6ED, 0xA95D8D2B, 0x2FEC2042, 0x23B0CDAF, 0x07D53C76, 0x73760E42, 0xA8D064C6, 0x009F7665} } ,
11918 { {0xEC826302, 0x5BB2775F, 0x865D1D88, 0xC02B8A72, 0x6CEFA65A, 0x456DC574, 0xFE37A546, 0x701EE2B9},
11919 {0x538BF46D, 0xE2ED6D63, 0x21B63D50, 0x993700D8, 0x14C46B02, 0x929F947B, 0xE08C14E8, 0x758A40B8} } } ,
11920 { { {0x2F4E4E1C, 0xB5F3E965, 0x5EEB50B4, 0x499BC0FB, 0x2EE3111D, 0x9E451F7B, 0xF183756D, 0x475301CA},
11921 {0x6C468B38, 0x0EB300F6, 0xF2229D6D, 0x8E6B94EA, 0x1DF89BAA, 0x342F409D, 0xED6464DA, 0x026C31D1} } ,
11922 { {0xEC63017F, 0x6E5B66D2, 0x64E9EDF2, 0xCA0AA443, 0xF77B755A, 0x1FB02B21, 0x21D9C65E, 0x27436B97},
11923 {0x023698C5, 0x17A1144C, 0x8FB8C28C, 0x82B94DCA, 0x06385317, 0xB29C3230, 0xEE09F779, 0x194B9D90} } } ,
11924 { { {0xF7E5C9B7, 0x9011C5A8, 0x24CE57C5, 0xE3B60DD9, 0x4B98B1DC, 0x41563864, 0x490FC433, 0xA112E97F},
11925 {0x8801D962, 0x2578B185, 0x255283D7, 0x38F11990, 0xF6CDDA1D, 0xA6E72DBD, 0x3EAEA132, 0x6BED1C53} } ,
11926 { {0x66150576, 0x65524C17, 0x6BCDA064, 0x7546938C, 0xEFC19E59, 0xBD31245B, 0x6967A147, 0x872C8AD7},
11927 {0x52EB936E, 0xA3665995, 0x4E782580, 0x9D42C24E, 0xFDF49D3C, 0xEBC76B46, 0x3BB63299, 0x2ED29AFF} } } } ;
11928 static const fp12_t var_b = { { { {0x2B7631BD, 0x760FD36A, 0x7430D484, 0x8FC8C8DC, 0x959B0646, 0x8FBBF7AF, 0x7B3CED54, 0x2E3E2419},
11929 {0x1AD22776, 0x385100DD, 0x5D107334, 0x17965C0B, 0x67B1A7E6, 0x95BD0112, 0x4205D8FF, 0x08959F60} } ,
11930 { {0x02FD72D8, 0x882AA9EC, 0x067D91DF, 0xCA1E7580, 0x7D9CC54C, 0xE560EBBD, 0xBE6FDDAC, 0x17AA2BEA},
11931 {0x14A38010, 0xCBBC2D20, 0x41D5835F, 0x28421442, 0x1BBACAC3, 0xFAC0D2C9, 0x70312206, 0x6A962A43} } } ,
11932 { { {0x9AA32D49, 0xA8AFDFD7, 0x3297A362, 0x8E588621, 0x3189DB2A, 0x444948B3, 0x2E008B0B, 0xA4D2EC2B},
11933 {0xF2A93586, 0x8A5ED449, 0x7D277967, 0x6B1BB321, 0x94BEDA09, 0xBDD20D2C, 0xA15399DD, 0x900BCA42} } ,
11934 { {0x6A74FB1D, 0x1FBBEF71, 0x9A3F21A0, 0xD0776FC1, 0xCA9A21A7, 0x61B0C49A, 0x081334BC, 0x60EFC226},
11935 {0xC9BE741C, 0xDB51DF0E, 0x54342B74, 0xF4DEEA1E, 0x8C2C1A74, 0xB26B39A2, 0xB4730600, 0x2676F2D3} } } ,
11936 { { {0xC7FCB8EE, 0x745EC14C, 0x4B8C89FC, 0xB1264690, 0x4B63EFF8, 0x3491BA5A, 0x8A276CD4, 0x5CBAAFE4},
11937 {0x90E4BC9A, 0x67F0E900, 0x72E68EAB, 0x04FAF5F6, 0xA9F13CBE, 0xF28CCCAD, 0x84DB4418, 0x5D61E2C6} } ,
11938 { {0xE39CD053, 0x7330EEE4, 0xBCB85291, 0x7DC825C4, 0xA91D5F31, 0xFC366FD1, 0xEFE76D54, 0x2F7FACE0},
11939 {0x7AC557DD, 0x1850AD4F, 0xC42D0DD1, 0x1CACF80B, 0xCEAE9187, 0xD6AF54FB, 0x2F06BA96, 0xA586C5EA} } } } ;
11940 static const fp12_t var_expected = { { { {0x42B65D58, 0xDAF38460, 0xD755A4C7, 0x0E0643FE, 0xD344D50B, 0xF83B0B8E, 0xCD4F0468, 0x30B86383},
11941 {0xC4BDCFA1, 0xE6410CCF, 0xA73EEECA, 0xFE4F0C8C, 0x211A4650, 0xD3238379, 0xE7CE169D, 0x42474D3F} } ,
11942 { {0x4E916F02, 0xB2F481A4, 0xB63314F4, 0xA2253EBC, 0x00FBC7A1, 0x811E5C68, 0x1D04BCB9, 0xB86DF33F},
11943 {0xD4294B12, 0xC4AF8BF6, 0x5C2433E0, 0xD2FAA37E, 0xF2C364DB, 0xA2AF3B25, 0xAAB9A64E, 0x064F08AD} } } ,
11944 { { {0x645DEC09, 0xD56D01C6, 0x41E538E6, 0x5331C73C, 0xE316F081, 0x3A511F18, 0xE3A17288, 0x741EA267},
11945 {0x5F3EDEE3, 0xE8BD5C87, 0xCF555CF1, 0x2E1CAE54, 0xCF45C7C2, 0x75A66875, 0x86AD0395, 0xA320280E} } ,
11946 { {0xFA7F44A9, 0x6BE5081F, 0x9CD429FA, 0x6060782E, 0xA408CEC0, 0x19A84DBB, 0x36E2D164, 0x0BF569C3},
11947 {0x567F690F, 0x7BACA800, 0x76338566, 0xF60792F8, 0x8ACD49E6, 0x1C124F79, 0xA0BD67B4, 0x6967BB5B} } } ,
11948 { { {0x7A1D87A4, 0x46F023D7, 0x08C72F17, 0x573EC971, 0x519C511D, 0x960F90F6, 0xDB8BFF05, 0x15FE8586},
11949 {0xBCE9574D, 0x356736DE, 0x318E3286, 0x0EE755AD, 0xE67C38FE, 0x4F6D3A3D, 0xB7D3F4A6, 0x1049F436} } ,
11950 { {0x0D7F8BFA, 0x5EA6E7B7, 0x51545516, 0x586BA118, 0xBC0CEF66, 0x0AF6A360, 0x154E3A87, 0x37A71C7E},
11951 {0xE7BC8DDC, 0x79225034, 0xB57A4F77, 0x993C2B34, 0x109A3EF5, 0x5CE2C245, 0xA217D695, 0x071724CA} } } } ;
11953 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2769 a000");
11954 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2770 a001");
11955 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2771 a010");
11956 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2772 a011");
11957 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2773 a100");
11958 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2774 a101");
11959 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2775 a110");
11960 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2776 a111");
11961 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2777 a200");
11962 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2778 a201");
11963 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2779 a210");
11964 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2780 a211");
11967 static const fp12_t var_a = { { { {0xB9B5BDC6, 0x2088384C, 0xFA4CE470, 0x11DFD7B8, 0x5F69384C, 0x23AD722E, 0xB7908709, 0x9992BB3B},
11968 {0xFE025266, 0x16D3E7D8, 0x76CF8EEB, 0xFD161AB8, 0x210815A8, 0xF85504D2, 0x12704479, 0xB0DD5C98} } ,
11969 { {0x3A3DB515, 0xC9B671E9, 0x523F9CAF, 0x12703C36, 0x3BC3BA9E, 0x718FCA7D, 0x1D92841E, 0x3B934BB4},
11970 {0xD185275D, 0xCBB74841, 0xF7351CC6, 0xA74E01D9, 0x08F5F830, 0x309905C4, 0xCA667E2C, 0x6EACCA76} } } ,
11971 { { {0xB99E6159, 0xF6FF210A, 0xD2FA69C8, 0xA3AD6F18, 0x41C997E6, 0xDDF95040, 0x5E6F2D24, 0x28350DEA},
11972 {0xE6CD2312, 0xE0A85F5F, 0xF4401118, 0x5D69B674, 0x2610A0DD, 0x97BB9058, 0x33D95483, 0x1297824B} } ,
11973 { {0x8FD9C8AF, 0x6D364B99, 0x70B7D1C2, 0x49FA0C03, 0x5DAC7EC7, 0x9AB7A6C1, 0x7875118D, 0x243936D3},
11974 {0x7442765A, 0x3D4D9081, 0x5815E561, 0x9E8FE798, 0x61E70CFA, 0x87B7C6A8, 0x6C27F201, 0x0AB05DE6} } } ,
11975 { { {0x31FD963F, 0x3AA696B9, 0xE5F28070, 0x9698A540, 0xC11073AB, 0x23F80CC1, 0xE5E9AE75, 0x061AED23},
11976 {0xEF81FA59, 0x0BD80958, 0x51ED85CB, 0x2C0C92D5, 0xDE4BC503, 0x97CF4F28, 0xD0F2FCF8, 0x0A88D27A} } ,
11977 { {0x154DA03C, 0xA34F56FD, 0xD397AC8F, 0x7A1FE2FC, 0x84C480CA, 0x2DB509C1, 0xE77B03FD, 0x598489BD},
11978 {0x0CB2B48F, 0xB498C28B, 0x4CE84891, 0x085C0FF4, 0x02A2298A, 0xA21EBE12, 0xFDED2A2E, 0x013E51F7} } } } ;
11979 static const fp12_t var_b = { { { {0x698B67A6, 0x36D92BC7, 0xC7FEF82E, 0xDE140E8F, 0xB2D1679A, 0xC00C678F, 0xF8598A53, 0x00E5B1DF},
11980 {0xC0CF013A, 0xE18A774B, 0xF7DA6DCC, 0x733E86CB, 0x72314013, 0xC127B436, 0xD0AC270F, 0x218FC32B} } ,
11981 { {0x4B30416F, 0xB7635699, 0x63E43280, 0x70C4094D, 0xDD7478F4, 0x00EC92E9, 0x944F9872, 0x34619955},
11982 {0xDED346CC, 0x7BF825A5, 0x68A7585D, 0xDBB312B2, 0xBF936A54, 0x500672AB, 0x2655F382, 0x20D2920E} } } ,
11983 { { {0x694C928A, 0x31110DF8, 0xB4AB6726, 0x985B3DCB, 0x911CDDBF, 0x76603E6C, 0xBAED1BBA, 0x59C367E2},
11984 {0xA0B05DAE, 0xA9C13AA4, 0x78ECB5ED, 0x2751B3B6, 0xB6894145, 0xE07CFA34, 0xDAECE2CB, 0x245AE7F9} } ,
11985 { {0xD99534CC, 0xEFE14BAE, 0x88DCEB7C, 0x35A4A5E7, 0x9084CBCB, 0xDAE6E9F3, 0x6788CE5C, 0x3F5B299E},
11986 {0xBAC8D79D, 0xD546EC79, 0x927E67B7, 0x58FF8466, 0xBCE405A4, 0x49AAADDB, 0x8E8831FB, 0x1E1F83E2} } } ,
11987 { { {0x16B3FC70, 0x7644C117, 0x6BF3C49A, 0xA31903E8, 0xDE0F46DA, 0x19001A93, 0x960BA18B, 0x24092D1B},
11988 {0xFB13C9A7, 0xAC09C00A, 0xE6BF6F76, 0x74F01849, 0x79F3BBE9, 0xB42F2D07, 0x5A066506, 0x10BA2918} } ,
11989 { {0x8F0596A0, 0x91476674, 0x2AFB54C6, 0x0A55D761, 0xC118F80A, 0x7757908D, 0x06B13F26, 0x2D9D6E07},
11990 {0x2021904E, 0x0F8E0145, 0xB41E1483, 0x4D64927D, 0x24A993A2, 0x648AEDE1, 0x5D0C68D9, 0x543F0B16} } } } ;
11991 static const fp12_t var_expected = { { { {0x7EC55081, 0x3B49CA84, 0x5B995893, 0x792BB813, 0xFCA297A8, 0x761C0EC7, 0xB35AFE24, 0x7025A167},
11992 {0xE5A46D9B, 0x56A754A4, 0xAA1F0D4D, 0x9E6BFB85, 0xAF49CE12, 0x2DBD80C1, 0xC0AA76CF, 0x5C9C02AC} } ,
11993 { {0xA8A88109, 0x6E8464E0, 0x5AD7A587, 0x7DA4221C, 0x602D28B4, 0xFDC5B2EE, 0x007854FB, 0x709FCB6E},
11994 {0x1CF8D05E, 0x5859FCEE, 0xC862E574, 0x39E06F03, 0x18E7402E, 0x50B327C5, 0x4DD76176, 0x2873F501} } } ,
11995 { { {0x0AA26DEC, 0x7B9FFEB4, 0xA99FD89D, 0x58C1AD15, 0x00B36432, 0xAD80338B, 0x552CF7DA, 0x4EF7D2E6},
11996 {0xE9D28741, 0x24BA9512, 0x13366A7D, 0xCE0A926A, 0xB747F6FC, 0xE3D404B5, 0xB85B2A9F, 0x7C550A1A} } ,
11997 { {0xF8704B30, 0xDF63DA6D, 0xFA311185, 0x175E0F64, 0x3B19F7A4, 0x9400179F, 0x0E54CFEB, 0x54D34D08},
11998 {0xE5318138, 0xE28CE738, 0xF44E6C4F, 0x3DB9DD46, 0x8C765CC2, 0x000B2D5E, 0x3C493E77, 0x6A801BFA} } } ,
11999 { { {0x2D4005CC, 0x4352EA09, 0x81BC9CBB, 0x3F35CB38, 0x9E45F800, 0x05592BD9, 0xFC1E34BF, 0x8FBFD09A},
12000 {0x05B6CAC8, 0x2445C233, 0x4DE78299, 0xB1D690F3, 0x1D292AC1, 0x46D6C383, 0x8EE4AC25, 0x4F4DA8A3} } ,
12001 { {0xEFB740D2, 0xFC1B13E6, 0xC91FC820, 0xEF6872C8, 0x9974111A, 0xAD1419B8, 0x36779C96, 0x05CD0FBF},
12002 {0xD2B8CB56, 0x1B25DB79, 0xAA26BF9B, 0x196540D3, 0x3C3A2ABE, 0x2BF9C5BE, 0xC6C70E32, 0x19467791} } } } ;
12004 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2781 a000");
12005 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2782 a001");
12006 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2783 a010");
12007 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2784 a011");
12008 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2785 a100");
12009 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2786 a101");
12010 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2787 a110");
12011 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2788 a111");
12012 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2789 a200");
12013 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2790 a201");
12014 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2791 a210");
12015 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2792 a211");
12018 static const fp12_t var_a = { { { {0x7AAB84D7, 0x4A76D77C, 0x280B9DC6, 0x1CD21EB9, 0x14224203, 0x6A1CA405, 0xB408C045, 0xA5AC73C4},
12019 {0x79065638, 0x2EDC4EB5, 0xAA57A9B0, 0x66C40CE2, 0xE586E6B2, 0x035FE8A5, 0x3428644C, 0x6C367203} } ,
12020 { {0xEDF63DD1, 0xE9C11C69, 0x31C08A95, 0xBDA4CA60, 0x9CB625BF, 0xABAD7496, 0x9B2C3D51, 0x5B3F7A8D},
12021 {0x1B8F73F0, 0x6F54A16B, 0x096CB30E, 0xD6702443, 0x74AE1AAA, 0x642A17D1, 0xBCF5688C, 0x04840BBD} } } ,
12022 { { {0x3CE9B322, 0xF7FF3038, 0x53849070, 0x0B9B2CCC, 0x5D9C60FF, 0x338A8A2D, 0xFAAF7053, 0x61F305D4},
12023 {0xFDB137F5, 0x7B94BB04, 0x801AB1FF, 0xDC7A3097, 0x78C15CF8, 0xA1F1EBC9, 0xD152A668, 0x4D17700B} } ,
12024 { {0xFE82DFFB, 0x3C7A83BF, 0xDA5E73C4, 0x694D9AAD, 0x9C24F2C9, 0x3AE15F14, 0x4E6F4310, 0x090D7271},
12025 {0x530DA1BD, 0x3DF6D6A3, 0xFC26B2C9, 0xFAC5E249, 0xD5140991, 0x1132B826, 0x914E2344, 0xB80D87D1} } } ,
12026 { { {0xA3E84B05, 0xC490742B, 0x804C4DA1, 0x651D47C2, 0x8B990AA1, 0x3FC1D142, 0x124156B7, 0x287288DF},
12027 {0x300A6172, 0xDC314219, 0xD3B2C4B6, 0xDE05F4EC, 0x5B1E7599, 0x54111F76, 0x1ADB0FE1, 0x3BAECE6F} } ,
12028 { {0x085ED432, 0xD601020A, 0xB9EF014C, 0x04896377, 0x98169F97, 0xF22C9CD0, 0xC543AB45, 0x050DD871},
12029 {0x0DDE9D6D, 0xC2A4B01A, 0x1DEB4E42, 0xAE169655, 0x194DDE9F, 0x386D18F1, 0x8715BCE7, 0x3CCCE539} } } } ;
12030 static const fp12_t var_b = { { { {0x7EC7CF7C, 0xF8D32C3E, 0x9404E640, 0x69EA0A4B, 0xC3711E74, 0x49C1EF54, 0xA30C66B7, 0xB07417B1},
12031 {0x7FD04E7E, 0x96523368, 0xB30E4AF9, 0x9AA08196, 0x5F106975, 0xDC2B2285, 0x756441AC, 0x315BFC76} } ,
12032 { {0xD8E560C6, 0xF8E5801D, 0xB43AE7DF, 0xCF7D76D6, 0xAF81BC48, 0x8A4FF6C8, 0xAA81ACE2, 0x06FD464B},
12033 {0x1969A4FF, 0x42111E0C, 0x558BACEA, 0x3582E63A, 0x648986A9, 0x93AB1EFE, 0x43DAF9EC, 0x46E64CE0} } } ,
12034 { { {0x4D930EC3, 0xDD24E13D, 0x7A521192, 0xE9D0759F, 0x31E37603, 0x27488C29, 0xD63BA8D8, 0x532E92EC},
12035 {0x90E1FC9D, 0xF17C88CB, 0x87809924, 0x1986E9D1, 0xA9795CE4, 0x00736FBA, 0xCD6DB789, 0xB8386F0C} } ,
12036 { {0xF25BB4B6, 0xEF63F83B, 0xB4125B52, 0x9889B57D, 0x11BB2510, 0xDACBE93C, 0x24DF9EAD, 0x66823DB8},
12037 {0xF87FE459, 0x0A17C983, 0x8C59DB9B, 0x5CDF04BD, 0xE4DBA1AC, 0xF700BD30, 0xEF84BB5F, 0x31EAB33A} } } ,
12038 { { {0x1BFBACEC, 0xB9DAE051, 0x6E8FDEBB, 0xFE874B17, 0x51E9370A, 0x9C9B64FB, 0xD2082B41, 0x518953BE},
12039 {0xE5097B87, 0x38310266, 0x3B474433, 0x2ADF573E, 0x67C8F3AF, 0x977C8FC6, 0x472892BD, 0x2907C8AB} } ,
12040 { {0x5EABFCFE, 0x03B5C5FE, 0xF6F9465A, 0x7BF679B2, 0x3859D8A8, 0xA5A818EF, 0x5C1F6DAE, 0x66F956CE},
12041 {0xB319D775, 0x6111A1E9, 0xFFDE4307, 0x3E71C5BD, 0x1318912C, 0x2885A82A, 0xB28EB52F, 0x3F9D533C} } } } ;
12042 static const fp12_t var_expected = { { { {0x13DB48C2, 0xDE52FEA5, 0x546E587A, 0x38FCEEDC, 0x8A5141D4, 0x4DB2DF65, 0x016EC041, 0x5FACA874},
12043 {0x167BE139, 0x34556E5F, 0xC04013EE, 0x1FB7DD84, 0xF60F0137, 0xB910CC79, 0xF18366E0, 0x53C0A46C} } ,
12044 { {0x628C4D21, 0xFCEB1D9A, 0x361574CB, 0xB23AB936, 0xA2159C74, 0xCF1960A9, 0x9E4D5549, 0x21576A8D},
12045 {0x7D15CED1, 0x0F4D8D5C, 0x0791F72F, 0x1BB4A181, 0x1FAA086F, 0xFA2B1A81, 0xFA2AA1F1, 0x4B37CD76} } } ,
12046 { { {0x2BE4B79F, 0x63D82C0B, 0x90AC09AC, 0xB8D0291C, 0x5AA682C0, 0xF50764A1, 0x39A391A5, 0x5343A52A},
12047 {0x44B1D228, 0xAD479CC2, 0xE921B95E, 0x67812189, 0x602F9B98, 0x7F933FEB, 0xE7CC0B1B, 0x95AD7EC8} } ,
12048 { {0x60A6ABB2, 0x7BEB8464, 0xE5BCCF0C, 0x65C20E10, 0xC2BA0321, 0xA662B3C1, 0x6968D1CA, 0x8349AE71},
12049 {0x88E06DC9, 0x1395E506, 0x486A8333, 0x1BBA8F99, 0x00207F9F, 0x969FEF4E, 0x219222C6, 0x4D6A42F3} } } ,
12050 { { {0x0B31D89B, 0x1EA10A61, 0x63A9B1C7, 0x6674B2A8, 0x3850F008, 0xB7EA4EBD, 0x647B7C70, 0x8784AB62},
12051 {0xAEAABF06, 0x82303A22, 0x3D71EE23, 0xE347BB5D, 0x52EC4CD6, 0xB8B0312F, 0xE30BA818, 0x457B3FFE} } ,
12052 { {0x4A0B8261, 0x0DE34AD8, 0x6DCD2BAC, 0x8C00B09C, 0x354913F0, 0x0B8EA59F, 0xA3D211EB, 0x16FA3663},
12053 {0xDB8441AE, 0xAD560A27, 0x1702479E, 0xE888DCED, 0xD448B5C7, 0xD8FA6016, 0x8CB8D3AB, 0x53DB3CCA} } } } ;
12055 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2793 a000");
12056 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2794 a001");
12057 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2795 a010");
12058 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2796 a011");
12059 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2797 a100");
12060 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2798 a101");
12061 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2799 a110");
12062 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2800 a111");
12063 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2801 a200");
12064 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2802 a201");
12065 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2803 a210");
12066 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2804 a211");
12069 static const fp12_t var_a = { { { {0x9076AF7C, 0xD6A2081A, 0xD9705231, 0xB059563E, 0x4B51073F, 0x70A4D40E, 0x7F22106A, 0x35BF989A},
12070 {0x4E909659, 0xB046B8BE, 0xB3C4398A, 0x0D660811, 0xBDF160FA, 0x58A1EFAD, 0x8D95E7AA, 0x3BE82B64} } ,
12071 { {0xC5856B24, 0x7B68EB3A, 0xE3CF6768, 0x7FA05413, 0x4EC3A7B4, 0xB4904A6D, 0x397B222B, 0x8F0D329D},
12072 {0x91484EC6, 0x8E41D706, 0x4308299F, 0xD17AF8CA, 0xC77FE45E, 0xF4133BB0, 0x34465E85, 0x3D8032F5} } } ,
12073 { { {0x53713728, 0x7B6EBD9D, 0x22804047, 0x0934B62C, 0x469C801D, 0x6B4F8455, 0xC6CBC2FB, 0x856DA26F},
12074 {0x71B0C016, 0xA192F10C, 0x59471BEF, 0xCBBE179D, 0xD46DAFCD, 0x10A22A54, 0x866DA169, 0x759F6E4D} } ,
12075 { {0xCF90742F, 0x9F518DEF, 0xE247A6F0, 0xAD07DDDB, 0x79143253, 0xCD329CAD, 0xA3BFA00E, 0x68CE1186},
12076 {0xFE18C8B5, 0xD879BCA0, 0x677DBDEF, 0x439A2C65, 0xCE2FB7B7, 0x172D589F, 0xDE6C54ED, 0x273281D1} } } ,
12077 { { {0xAB1ED871, 0xF183D4F7, 0xDCA26641, 0xFB97D595, 0x181C9481, 0x5A2D5D4D, 0x4DBC750D, 0x0F8197BD},
12078 {0xD290E342, 0x57DDD625, 0x160981A1, 0x3281658C, 0xD54BEFD6, 0x929CA3FE, 0x5A1F171F, 0x329CD445} } ,
12079 { {0x2366D757, 0xB787E2E3, 0x5CE990B0, 0x0D50D3C0, 0xE21B4A81, 0xBA415191, 0x824D7A1B, 0x7AAFDF79},
12080 {0xA1AEAE01, 0x87724BB5, 0xD34A8518, 0x9B69AF5F, 0x50B4A785, 0x5B14AC1C, 0x97953180, 0x8712C108} } } } ;
12081 static const fp12_t var_b = { { { {0x66572A6F, 0x7D29B7CC, 0xEF71BF8D, 0xCAEE6C14, 0xE3632741, 0xF652AAF4, 0xBFBCC98E, 0x8B9D2221},
12082 {0x3CD6FD1D, 0x154EFA46, 0xCF6B0516, 0x84D18665, 0xE81837E9, 0x997A574D, 0xB1E565A1, 0x28AA6C9B} } ,
12083 { {0x6B93A97D, 0x0B662726, 0xB80FD6BA, 0xA6414285, 0xB15C6175, 0x4174A638, 0xBF19CC93, 0x4C882D60},
12084 {0x604EA28A, 0xE5C9501C, 0x48E1050D, 0xBC88EF2D, 0xCF0882B1, 0x90D1BDCF, 0xC82E9AEB, 0x6F370623} } } ,
12085 { { {0x06DE4292, 0x6A4F717A, 0x438BCBDD, 0x42DF6105, 0xD366925F, 0x1699CE84, 0x416E8E01, 0x504EBDEE},
12086 {0xF7EBDF10, 0x2514AC03, 0x193BC919, 0xB6B0EA3E, 0xDE0A6FED, 0xF021CA72, 0x35986C58, 0x24279BD0} } ,
12087 { {0x4D9A60EF, 0xE38B8FEB, 0x5EEABDC7, 0x8048A1C8, 0x0E0EF278, 0x2C85A3A7, 0x41AD17D6, 0x67943727},
12088 {0x4332CD19, 0x3AAF5330, 0x006DE71C, 0xC0ED3FC1, 0xC5039B21, 0x7B10D4AD, 0x9714AEDC, 0x21DA5414} } } ,
12089 { { {0x951A500C, 0xFFE586C8, 0x15403C4E, 0x81F82B69, 0x6659F62C, 0x7D5C3221, 0xFD82B599, 0xA3D568D7},
12090 {0x0F0434EF, 0xCF00E313, 0x2F94E979, 0xE267C401, 0x3252B174, 0x5BC4CCC3, 0x0B5D9895, 0x697E9689} } ,
12091 { {0x72F0DBFC, 0x87DC3751, 0xB67CA44A, 0xA574F68D, 0x211BE9BE, 0x4233ED3B, 0xF1241D6F, 0x5373E6FC},
12092 {0xF3DC581E, 0xCC269F34, 0x66F62B63, 0xB0A1858A, 0x5CCD5261, 0xE3A091E6, 0xEE18AD0F, 0x260367C9} } } } ;
12093 static const fp12_t var_expected = { { { {0x721A8F66, 0x478E00F0, 0xE468FADF, 0x90471571, 0x73D05EAF, 0x02545277, 0x581D6BA7, 0xAF1B0273},
12094 {0x724EFBDE, 0x734D2DE2, 0x03C340A9, 0xB679EF70, 0x2A7BCFAE, 0xF08542E3, 0x588C4DF6, 0x1BE28747} } ,
12095 { {0xDCF84AD6, 0x4322CBCA, 0x0EA32338, 0xAADFA093, 0x6273300F, 0x020A6EFE, 0xC4A7DC87, 0x8A7C723C},
12096 {0x7DEC6314, 0x7B5171BB, 0x3992E31E, 0x5972E506, 0xF4EDD49B, 0x8F3B095D, 0x3C32CF47, 0x33CFFD25} } } ,
12097 { { {0x63B5A0C4, 0xED28BD3F, 0xB4F8912B, 0x91D52779, 0x94ABB5F8, 0x46231BBE, 0x5940D9E5, 0x622D579E},
12098 {0xD50FD37D, 0x0E2347AE, 0x1B52C48D, 0xB3C09849, 0x46ED1003, 0x9DB43AF5, 0x6549452A, 0x92205654} } ,
12099 { {0xB0D188BE, 0x0072F2BC, 0xFF78160E, 0x1088FAEC, 0x0CC1C5BF, 0x7BA3047C, 0xA9AE22CE, 0x68DEEC77},
12100 {0x03BC6920, 0x4851EF29, 0xFB1086DB, 0x63C23396, 0x83DF33F1, 0xC415E8C8, 0x35F45D60, 0xA8935297} } } ,
12101 { { {0x478D4585, 0x7A63EC45, 0x1061814D, 0x7D45ED74, 0x003BDCA8, 0x43A48F95, 0xA3A88A14, 0x29DE6C4C},
12102 {0x2936C97B, 0xF50C6D38, 0x10880606, 0xE47DA06F, 0xCEC8A798, 0x95B8FCEB, 0x85BA62BA, 0x98584504} } ,
12103 { {0xCF5BCE40, 0x08BF6F0F, 0xC7644DC3, 0xF0B58D46, 0x1115D941, 0x849F6427, 0xF45D3503, 0x2283ED0A},
12104 {0x29F1519C, 0x02BAEE50, 0x13AFA8A2, 0x41750D64, 0x3A3E9600, 0x08C452D9, 0xD83F06AF, 0x686F9ED9} } } } ;
12106 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2805 a000");
12107 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2806 a001");
12108 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2807 a010");
12109 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2808 a011");
12110 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2809 a100");
12111 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2810 a101");
12112 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2811 a110");
12113 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2812 a111");
12114 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2813 a200");
12115 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2814 a201");
12116 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2815 a210");
12117 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2816 a211");
12120 static const fp12_t var_a = { { { {0xBA3C1A34, 0x8432B451, 0xCE3D956C, 0x8D5C1554, 0xC34071FF, 0xF39DC74C, 0xDA2160AD, 0x09C5149E},
12121 {0x65434345, 0x5BDC41B0, 0xD1755C58, 0xEA2D96FB, 0x67AEC269, 0xACF03CEF, 0x9D112870, 0x0AC10DB0} } ,
12122 { {0x82FF6ED7, 0x407F187E, 0x299E73CC, 0x1A7AF8FB, 0x112310B7, 0x4B419773, 0xB531B520, 0x9728D130},
12123 {0x1845ED5F, 0xE5F8FDB4, 0xDFD9C97C, 0x93D146FE, 0xBAC148EC, 0x90D6645F, 0xB521EEC0, 0x059F8D4A} } } ,
12124 { { {0x1F68C216, 0x42BEE9B7, 0xD405056B, 0x6ED1899B, 0x11D692EA, 0x4162B874, 0xC005154F, 0x0D12C03F},
12125 {0x03C7F372, 0x1200FF5E, 0x3C9F67A2, 0xEB9317D6, 0xF8B67CE6, 0xA6DDC174, 0x1205F43D, 0x4A22A5F1} } ,
12126 { {0xC2F9B6A3, 0x55F16CF3, 0x4A823CC4, 0xD79E8435, 0xB396EDA9, 0x13169A18, 0x36F9CF34, 0x0207A07D},
12127 {0x5AD5FA82, 0xCBB1EC34, 0xD5C7655D, 0x72CE0C50, 0x08710562, 0x4A8999B3, 0xD228F909, 0x477EF264} } } ,
12128 { { {0x6AB44C7B, 0x7F56BE47, 0x92ED5E12, 0x2DC1B8DB, 0x798646FE, 0x2DB2B820, 0x987D1A74, 0x3516FBC2},
12129 {0x92F3C56D, 0x3A9A720C, 0xD7AA5C6D, 0xEA3C6871, 0x0D56CCCF, 0x12E5EC20, 0x527B96C7, 0xB0A43B37} } ,
12130 { {0x03B3A97B, 0x0CAC576D, 0xFD0F145E, 0x1B151D2F, 0x2B24E00C, 0x559C7247, 0x1FB296BA, 0x49182A85},
12131 {0x606C047A, 0xC8A1CB5F, 0xAFC40C09, 0x540DC686, 0x6D9FA4D6, 0xD8146BA5, 0x2F3CA1D3, 0x7455DA1C} } } } ;
12132 static const fp12_t var_b = { { { {0x442D2A73, 0x840CE13C, 0x6D1E1539, 0xD23937F6, 0x2373BD42, 0x809A58B4, 0x496CD04F, 0x098F69F0},
12133 {0x58759D17, 0x1EAEC7AC, 0x360FD392, 0xDFDDF0D3, 0x7AC6DCA5, 0xBB83CAE7, 0x06AE04F4, 0x0B1AAE2B} } ,
12134 { {0x61C2608A, 0xB2E9E67D, 0x5ABBE998, 0xA234A632, 0x51FC9B8A, 0xEC21FC82, 0x534CDAAA, 0x0D39A15B},
12135 {0xD45CE963, 0x23DD103A, 0xD628EEB2, 0x4327286A, 0x13457FC0, 0x04591680, 0xB37D1EDD, 0x13BDE668} } } ,
12136 { { {0x55D2C2F7, 0x9A358B27, 0xCF95323F, 0x64EDA189, 0x377158F1, 0x032C5641, 0xBB480A64, 0x129E4474},
12137 {0x231E904B, 0x02BF5F90, 0x3E763F54, 0x0898A657, 0x6204F3B6, 0x5C3E4703, 0xD5637A9B, 0x108BAF13} } ,
12138 { {0xABE6029D, 0x8AAD91ED, 0x47133F95, 0xAE77F14C, 0x49382029, 0x919C4EA3, 0x7D26ECFE, 0x033C47A3},
12139 {0x5C6D2F57, 0x233C7AD3, 0xB0A015C1, 0x44D911C9, 0x208ED502, 0x96B9EBEA, 0x47232858, 0xAD3158B6} } } ,
12140 { { {0xE26BCA79, 0x087D6940, 0x4AAD75C8, 0xD91F9341, 0x882708B5, 0x811B937F, 0x96FE8D9D, 0x1EB53E26},
12141 {0x7429A6FF, 0x307A2121, 0xDA0E73FC, 0x37442A06, 0xF2EB341B, 0xCAD71B87, 0xE7C170BB, 0x1A685E56} } ,
12142 { {0x8C4ABAF3, 0xDE72C657, 0x2913EC03, 0x47C62664, 0x3AF8B885, 0x0CE0F984, 0x85D5E867, 0xB41539B0},
12143 {0x3FAC17FF, 0x136CB649, 0xD3B445EE, 0x4DF340F7, 0x69F7EEE0, 0x58BE0542, 0x92573271, 0x0EFFB1F4} } } } ;
12144 static const fp12_t var_expected = { { { {0x7CE97C88, 0x15AC8C48, 0x59C8D877, 0x28A8F8A5, 0x4FD2FE59, 0xDAE47589, 0x5D644970, 0x924FBEED},
12145 {0xC6C5289B, 0x2B68B72C, 0xD5DA27DE, 0xC879A9C4, 0x9D06B916, 0xE73CCB73, 0x856C5BD3, 0x475DE542} } ,
12146 { {0x4DFA74B6, 0x436BBC49, 0xF74CB484, 0xDE918F5A, 0xD24BEBBA, 0xC5A4F7AA, 0x20142B91, 0x8CDA1609},
12147 {0xB7C64DB2, 0xA4F99A32, 0xB7DEC7AE, 0xA8DB0B13, 0x34B56EEA, 0xD7901584, 0x97416999, 0xB5F0A6A3} } } ,
12148 { { {0xF1A42B21, 0x7E806284, 0x3C811857, 0x9704F77D, 0xAF5CFF0D, 0xED1A4DAE, 0x3144AC70, 0x39C40BD2},
12149 {0xE26E0774, 0x1EF91BCF, 0x25BE478C, 0xF0062918, 0x32419EF2, 0x64375F93, 0xD96E1B7B, 0x7B730236} } ,
12150 { {0x3BC6BDB3, 0x1CF8C219, 0x15548058, 0xC01B91C6, 0x97F9ADA5, 0x3E1238AA, 0x21668605, 0x03F83CB6},
12151 {0x002C9011, 0x62D90392, 0x57961867, 0x33D3A153, 0x129E6078, 0xBA709055, 0xA8F125DF, 0x6418B722} } } ,
12152 { { {0x6CE945C2, 0xC63BF2F9, 0x8AED710A, 0x618C75A7, 0x735AD824, 0x111913A8, 0xBAB7FBC0, 0x9C2F3F0B},
12153 {0xDE237D55, 0x901B3BD1, 0xD25998E0, 0x16235F3E, 0x04E72923, 0x89757085, 0x73655E07, 0x2DC9C77A} } ,
12154 { {0x344E2506, 0x8406051E, 0x0BDB4363, 0x7E89EF47, 0xF45AAB1F, 0xB17786E4, 0xCDEDC351, 0x81B119A9},
12155 {0x05D7739F, 0x9AA8AF74, 0xAC2EB76A, 0x6CE57FDC, 0xB4E72143, 0x42AF2631, 0xAEAAF33E, 0x2E887789} } } } ;
12157 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2817 a000");
12158 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2818 a001");
12159 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2819 a010");
12160 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2820 a011");
12161 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2821 a100");
12162 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2822 a101");
12163 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2823 a110");
12164 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2824 a111");
12165 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2825 a200");
12166 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2826 a201");
12167 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2827 a210");
12168 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2828 a211");
12171 static const fp12_t var_a = { { { {0x59379F85, 0x169C305B, 0xF0F9C7DD, 0x5DEFF542, 0xE7985EB3, 0xBA40D7EE, 0x446BD8F1, 0x28E47C88},
12172 {0x56F8AD33, 0xF10C8EAB, 0x463B90AF, 0x85276D9B, 0xA61A36A8, 0xCA1A0575, 0x647ADB44, 0x6B5833AF} } ,
12173 { {0xE5B9FC0A, 0xF61A67BB, 0xC19A6FE5, 0x4E88926E, 0xA54FFD40, 0x30082A98, 0xD14363BC, 0x33FB0F98},
12174 {0xE821BE2D, 0x38ABB9BD, 0x4EA930B3, 0x8F9B63CD, 0xBEDCEB94, 0x0C92C778, 0xFCB7F838, 0x36937431} } } ,
12175 { { {0x6013CA7F, 0x0BB4672D, 0x2AF5DA15, 0xFCF9466B, 0x7DB3C7F0, 0x75BB59C3, 0xAAC139C2, 0xB97B0752},
12176 {0x723301F5, 0x8C79C190, 0xEB39E738, 0xFA9831B7, 0xA67E70AD, 0x23F58246, 0x3535714B, 0x8AD2AC10} } ,
12177 { {0x5E496103, 0x1CA9E30F, 0x784DEBE2, 0xCBED7744, 0xB2CA5698, 0xC2F2F590, 0x4B2EB955, 0x0AAC5FC2},
12178 {0x01EE5466, 0xDA1D481B, 0x8B26D096, 0x0EFE22CD, 0x4703BE2A, 0x77272B27, 0x6DB34B33, 0xAA1649B4} } } ,
12179 { { {0x7A4953DB, 0x31604690, 0xE18441DE, 0x824B940B, 0x7477E9C8, 0x8988AC91, 0xF26B3F97, 0x29EEA37B},
12180 {0x6EF782B2, 0x4986AEDC, 0x309D0F27, 0x9F139AEB, 0x1A3AF8C8, 0x9DD8C725, 0x41AE2285, 0x0031AF99} } ,
12181 { {0x655BAAE9, 0x95432769, 0x5D92A1D0, 0xEDF03327, 0x316A709F, 0x844526B5, 0x5A24E8BE, 0x3272B912},
12182 {0x6C51785C, 0x43CE1DC5, 0x473929C6, 0xAE427BD5, 0x84A3D2FE, 0x6C2FC920, 0x4E942A47, 0x7E6C439D} } } } ;
12183 static const fp12_t var_b = { { { {0x75222BED, 0xCF130644, 0xFB314A0E, 0x30012162, 0xF0E76735, 0xADF057B6, 0xC220DAA9, 0x328FEEBB},
12184 {0xF2D46922, 0x70BDD0EC, 0x7D4B22C6, 0x7C360BC4, 0x2AA3A564, 0xFFBA4A6D, 0x71B5B474, 0x54B246D2} } ,
12185 { {0xA0ED035F, 0xA8726C46, 0xD9B4E7D9, 0xBC03AA84, 0x4A2478A7, 0x3BE4A54E, 0xE70AF834, 0x35D82C2C},
12186 {0xD356444D, 0xBB694E16, 0xEB317A2C, 0x77DAD723, 0x9CECE3AB, 0xB3A261AA, 0x85F34E67, 0x3A859BE6} } } ,
12187 { { {0xF855D5E2, 0x2CBC745E, 0xDEF11383, 0x0EA204C7, 0x1B0CF19C, 0xAE19E856, 0x05CFF441, 0x59D84DCC},
12188 {0xA8D009D5, 0x496DDE57, 0x3A7FF3BE, 0x98C40DE5, 0xFD433F10, 0x13165958, 0xAC2E5AE9, 0x0F796971} } ,
12189 { {0xF49803FB, 0xA12A25F4, 0xABE4A90D, 0x1A247067, 0x7CDA88EA, 0xBBFA3F1C, 0x591CD5BF, 0x279F5377},
12190 {0x02FFD373, 0x872AFB4F, 0x5C1CD99B, 0xA9901CD2, 0xB4EC2CF8, 0x061D49DE, 0xBEDC1D55, 0x957392DB} } } ,
12191 { { {0xE9362856, 0x92AEFA48, 0x4C9E7105, 0x003B6E89, 0x73E4BA62, 0x5A719C02, 0x20BDABE2, 0xB27D092B},
12192 {0x36639EF4, 0x1CA87A96, 0xD0C64CDB, 0xFCA430C5, 0xBCDAA338, 0xA0E7A864, 0xDA114E53, 0xB88BB92B} } ,
12193 { {0x6B6FC182, 0xC66CA355, 0x0F8D3D12, 0x212243D7, 0x45CAC5D3, 0xC5D74EAC, 0xD884768C, 0x492B650A},
12194 {0x198E813F, 0xF38C2BD9, 0xB111324F, 0x00D74F44, 0xA4AEB09D, 0x401DDF65, 0xDD9532B7, 0x2F9D7C8B} } } } ;
12195 static const fp12_t var_expected = { { { {0xFAFD1F0E, 0x5E5D5058, 0xB8FB17F9, 0x486209FC, 0x116AEF7E, 0x557D9504, 0xAAC81AAD, 0x09420137},
12196 {0x829D3FC0, 0x7323C559, 0xF22C0F76, 0xA426C9F8, 0xF721B9E5, 0x5642AF48, 0xACBC9FAF, 0x3EE96CFA} } ,
12197 { {0xC3A0461F, 0xF4C4080E, 0x56723077, 0x740DA9F3, 0x4EA85131, 0xC6967AAF, 0x6B70611F, 0x91645D55},
12198 {0xBE9A3685, 0xD4EB54AB, 0x3C22A116, 0x7A05A57F, 0xB2851F2C, 0x4EAFC0CB, 0x0073FAA5, 0x1C3E2197} } } ,
12199 { { {0x6A6E40F2, 0x76282E87, 0xD9E2555E, 0x430479CF, 0x2CDDA681, 0x4C7CC032, 0x31A955DE, 0x5C6CB0B2},
12200 {0x00C69496, 0x2CD6918A, 0x93B44201, 0xC8A0AE9E, 0xD042A99C, 0x55BA7A9C, 0xF563352A, 0x04D7A726} } ,
12201 { {0x501C0B3E, 0xDAB764F3, 0x50CD7C50, 0x81D1F5BC, 0x954E1706, 0xB6C922DC, 0xC50A7426, 0x9FD2CCFD},
12202 {0x3C5761AB, 0x97A13DC1, 0x1A87B113, 0xCCB21280, 0xA870B188, 0x853DD319, 0xEFBFCEC4, 0x0D072940} } } ,
12203 { { {0x471D3C15, 0x36A96B1A, 0xE18B82F3, 0x98CDCB87, 0x8EE11C8E, 0xC8656121, 0xD15D26C6, 0xACB3EAE0},
12204 {0x4FD44BCC, 0x46F66BF6, 0xB2317BD3, 0x7B6AC85F, 0xFF268435, 0xA93E06C2, 0xC81B2863, 0x6C121B67} } ,
12205 { {0xD326244C, 0x97483390, 0x3F1747F8, 0x197CFE2D, 0xA9740023, 0x901A6413, 0xD21EB7C3, 0x17B64BEC},
12206 {0x2AEC39C6, 0x5C12515D, 0xE3A28F86, 0x1101A4A7, 0x0B09763B, 0x27354ADD, 0x6AB34532, 0x0B9EB2A9} } } } ;
12208 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2829 a000");
12209 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2830 a001");
12210 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2831 a010");
12211 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2832 a011");
12212 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2833 a100");
12213 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2834 a101");
12214 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2835 a110");
12215 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2836 a111");
12216 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2837 a200");
12217 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2838 a201");
12218 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2839 a210");
12219 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2840 a211");
12222 static const fp12_t var_a = { { { {0x5091E05A, 0x484EB4A5, 0x804C3C50, 0x1EAFAC5C, 0x76C71498, 0x75888734, 0x3D20F3CE, 0x7FD5EC51},
12223 {0xE44CE017, 0x33565E3A, 0xD18C4828, 0x9CD13DDD, 0x3B776B06, 0x73518E79, 0xA34B9144, 0x1EC0A749} } ,
12224 { {0xAD4A0CF8, 0x5F90E2CB, 0x6E755EA0, 0xD9617DBD, 0xCB029D53, 0x236E1642, 0x4CE547CC, 0x2430C171},
12225 {0x4A1B3F9F, 0x44410A6A, 0xA23D193D, 0xD1CF11A6, 0xE48BF8D0, 0x14AA091A, 0xCB6E54C2, 0x77F155F3} } } ,
12226 { { {0xD6F856A4, 0x9654C197, 0xE36DD01D, 0x72741B89, 0x4ADE2E03, 0xC7936F8B, 0x43A38053, 0x49854BFE},
12227 {0x1C47A043, 0xD2ED2C64, 0x50F8059F, 0xA79AD09A, 0x4B043425, 0x4A18FED9, 0x703AF592, 0x3D0EB30E} } ,
12228 { {0x61F8A87D, 0xB4300376, 0x2E398825, 0x4BEBE3AB, 0x3747BBC2, 0x9BB4F3A4, 0x9E72DFD5, 0x40C58F68},
12229 {0xB3D09CEE, 0xC44A7DA9, 0x48618D3A, 0xD8373CBC, 0x4CF81F87, 0x604880A3, 0x70D7D304, 0x0E9F12EE} } } ,
12230 { { {0x23F53EC0, 0xC4BE3FA4, 0xDC47E79C, 0x04A5713F, 0x18068DEF, 0x18CC7C32, 0x1B850192, 0x989622AF},
12231 {0x87268C33, 0x42CD7E2D, 0xB3908AFA, 0x2556D6B6, 0x10DC2306, 0xEDC8567B, 0x2812695F, 0x9C280ADB} } ,
12232 { {0x313A5CED, 0x0D2D3D21, 0xB9477064, 0x7F6AC83A, 0xB10E768B, 0xF7A52ED5, 0xB5F5D711, 0x2466C378},
12233 {0x86AB5A36, 0xB8E4F582, 0x5950A9DE, 0x68780A3F, 0x53B21C70, 0xD604A9E3, 0xB54965E2, 0x635AD23B} } } } ;
12234 static const fp12_t var_b = { { { {0x7CD4FCA8, 0x1BE033D1, 0xFF7BB0DC, 0xC9ECB722, 0xB3EE6650, 0x360E2F02, 0x6B79982F, 0x3962FB87},
12235 {0x08DBF8C3, 0xCE3A895F, 0xBA47FC05, 0xF755705C, 0x0FC8090B, 0x2FAEE834, 0x33DC93BE, 0x507C571E} } ,
12236 { {0xC3C5F43A, 0xB3A8D119, 0x77E47FDA, 0x7C2F2B20, 0x608435D0, 0xFE40CC91, 0x7ACBAA5C, 0x58F21AC4},
12237 {0xE1C06473, 0x6D98044A, 0xF07365EF, 0x3E95AFD9, 0xD398CAED, 0x546ED9F1, 0x815A7909, 0x171D317F} } } ,
12238 { { {0x4F61FF67, 0xE119225D, 0x5CE74FA0, 0xEED299EE, 0xED9EB9AB, 0xDD5A20D0, 0x9D25A884, 0x29E3E964},
12239 {0xAB4DB11F, 0xBB0A87D3, 0xA2C63306, 0x3847377D, 0xC16C3D1A, 0xD1BA5F25, 0xBA13BB82, 0x9A98949B} } ,
12240 { {0xC0445524, 0xEC0AFD5C, 0xCE264E6A, 0x4B2EDD7F, 0x6E87DE8E, 0x7888602F, 0xD3E4895D, 0x65AD2376},
12241 {0xF5F46E31, 0x25272596, 0xC2474E8F, 0xAE4288B2, 0x42D133CD, 0x8D9B3DEF, 0xBCAC1899, 0x9A627A57} } } ,
12242 { { {0xE1D3153E, 0x5F474627, 0x88D38BF2, 0x6849044F, 0x982FF6AB, 0xDB963115, 0x59660468, 0x363B5446},
12243 {0x16AFEF9F, 0x53E7415C, 0xD2937CBB, 0xF2E8681E, 0x4FC0A02D, 0x9C04DF11, 0xA428EC6A, 0x03DC54E7} } ,
12244 { {0x6D284A13, 0x03115EFA, 0x54823A84, 0xE0ECF553, 0xADC8B30C, 0x312383D3, 0x6AA75D29, 0x192A9C9D},
12245 {0x437021C7, 0x2D93E590, 0xBD541C3B, 0x86DB5847, 0xCD8426B1, 0x588171CC, 0x8F1C1869, 0x45009932} } } } ;
12246 static const fp12_t var_expected = { { { {0x6FA2C0DB, 0x7C448B22, 0xCA8FD186, 0xE27F8611, 0xA6FBAB55, 0xFE043337, 0x0D4513C5, 0x2CD2DCAE},
12247 {0x56DA38BE, 0xCDF824A5, 0x60DB8F0E, 0xFB3A6694, 0xE4F9B41E, 0xDCE4E732, 0x62EDFCCE, 0x93AA7436} } ,
12248 { {0x182E0F67, 0x795960A7, 0x1B2C729C, 0x70BCB161, 0xB1A40B47, 0x127E7AA2, 0xC5B941AC, 0x7FDDA5B8},
12249 {0x44E958E8, 0x11B47373, 0x4247DEBB, 0x1957C47C, 0xC0D84C06, 0x2E992CCF, 0x734B790C, 0x121469F1} } } ,
12250 { { {0x763DAA40, 0x8AE0E5D9, 0xC4AFC5F1, 0x149E86D2, 0x43F995AA, 0x6EEFC8EA, 0xCBFA6F71, 0x70259E4F},
12251 {0x7EE2B57A, 0xC2A997F8, 0x3E8065A6, 0x1C0B0BDA, 0xBA9F7F41, 0xF1B5230F, 0xFB5B16C1, 0x4B9953D1} } ,
12252 { {0xE9A28340, 0xF5826D64, 0x74DD4128, 0xC4FE935D, 0x26072258, 0x16700C2D, 0xABD4F324, 0x5F157667},
12253 {0x54077B70, 0xC9752FAB, 0x7773AA80, 0xAE9F8111, 0xB73E3669, 0x9F4FCBFB, 0x3866BD75, 0x8BB1AFEC} } } ,
12254 { { {0x4D51582F, 0xA8C78482, 0x00B618B4, 0x0C6ED170, 0x2846F995, 0x99675DDC, 0xD7AA7F56, 0x76856887},
12255 {0x267DA414, 0xC170379A, 0xCCFD22EF, 0x6CA5C7D5, 0xA677F773, 0x5ABEC1D1, 0x818A66E0, 0x18191853} } ,
12256 { {0xBCC19C24, 0x3E8904D6, 0xE7C79CB7, 0xD5F523D9, 0x2700B36C, 0xABF014C2, 0x85C5ED30, 0x7770B54F},
12257 {0x8ED6C0A0, 0xDE1C81FC, 0x7EF19DE8, 0x938CD520, 0xD6D595BC, 0x4D4FB749, 0xF2A6CEA9, 0x6903E23D} } } } ;
12259 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2841 a000");
12260 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2842 a001");
12261 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2843 a010");
12262 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2844 a011");
12263 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2845 a100");
12264 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2846 a101");
12265 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2847 a110");
12266 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2848 a111");
12267 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2849 a200");
12268 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2850 a201");
12269 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2851 a210");
12270 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2852 a211");
12273 static const fp12_t var_a = { { { {0x3BABF47E, 0xDD63B2DF, 0xBF4D38CA, 0x530C1A9E, 0x31329DB5, 0xF46AA046, 0xC5E69876, 0xA015907D},
12274 {0xF2A35B62, 0xDC3E4E67, 0xB289AD70, 0x2A1E77E1, 0xE1EC534A, 0x5925F008, 0xD99E7273, 0x12892537} } ,
12275 { {0x9A8798EF, 0x3A749EFF, 0xED1D443D, 0x7DDD51D2, 0x42366CFA, 0xE43B748B, 0xE789EBCF, 0x29B29138},
12276 {0xD77CAB42, 0xCA5AFBE0, 0x1C5712DF, 0xE1261FFA, 0xEF99CBF5, 0x781C9667, 0x2017A80D, 0x5BFE2EAC} } } ,
12277 { { {0x42DEC4E4, 0xA3E418DA, 0xBFCFC46E, 0x914783C5, 0x38407731, 0xF8639593, 0x4B8E76E8, 0x7E494923},
12278 {0xE744D470, 0xA043BDAD, 0xAAD662E7, 0xEBEDE984, 0x9E50DF1F, 0xCE3A154C, 0x420E72D2, 0x50C64F78} } ,
12279 { {0x6536CA0A, 0xE1AF6E2C, 0xAEADE9BC, 0xDD984E7F, 0x0541BA4C, 0x6C60EC6F, 0x30BC3AD0, 0x36628C4F},
12280 {0x57AD0310, 0x46D2C86E, 0x48E754E3, 0xC8FD126B, 0xD2489FE7, 0xB58C90E5, 0x5AFE2162, 0x6335BC0B} } } ,
12281 { { {0xFFD7E1A4, 0xFA4C70B6, 0xC60E79ED, 0x3CFE1214, 0x2952BACC, 0xAC329B47, 0x133256F0, 0x104CBE5C},
12282 {0x9D1E3A96, 0xE6EBCE25, 0x22FD37E9, 0x3B83417E, 0xB07D5D84, 0xC5E65A6A, 0xC6228049, 0x449E9AEF} } ,
12283 { {0xFF5F461C, 0x39F3910F, 0x5478BB22, 0x55E806D1, 0x6D24C0E7, 0x7D26620F, 0x2FFC53A8, 0xAF60E363},
12284 {0x09DC3294, 0xE9228F28, 0xD379A57F, 0x304C094E, 0x491B1A9D, 0xDC151C95, 0xE22A2274, 0x2B4DE058} } } } ;
12285 static const fp12_t var_b = { { { {0xBAA05F61, 0x2987B8FA, 0x66A51107, 0x4AB50C95, 0xD74F42B8, 0xDACB2425, 0xC2FEA67F, 0x25CF2727},
12286 {0xBB313960, 0xF5F1A3B5, 0x83D301FE, 0x222DD82C, 0x3D3AA54D, 0x044FEA0B, 0x4D9C3E4C, 0x77FF0CE2} } ,
12287 { {0x88C0183F, 0x90413685, 0xF3D9DE9B, 0xA1AEA907, 0x54B6E06A, 0xF32110A9, 0xCCA258E7, 0x3592CD93},
12288 {0xBE08A33D, 0xF8F54C38, 0xA3B679D6, 0x59663242, 0x765811FA, 0xA6FFAEDB, 0x627EEE55, 0x6B24B885} } } ,
12289 { { {0x3FE2CDD3, 0x777DA774, 0x87DDF133, 0xFBD9D353, 0x685AB6EB, 0x40A80473, 0x052E0C87, 0x7237F0EF},
12290 {0xEBF212CE, 0x17D4EF26, 0x358408C7, 0xA95EC425, 0x6E807307, 0x551D9BEE, 0xBF4EF57B, 0x71BCAFC6} } ,
12291 { {0x306B3EA3, 0x28527CC7, 0x45C17A99, 0x14FF6668, 0x309BC60A, 0x83EE9216, 0xED922350, 0x38E554A1},
12292 {0xF59C5F69, 0xBD1E9762, 0xA4CAFACD, 0x135EC389, 0x882DF42C, 0xEAD5E648, 0x013FF711, 0x7B01E9FA} } } ,
12293 { { {0x1236B851, 0x2DC4B722, 0x100C6DB0, 0x1F17CBFD, 0x06FF0FCE, 0xB0042DD6, 0x01D827DD, 0x52D708DD},
12294 {0xD34A682C, 0x93D4AADB, 0x9E8D417F, 0xD7AEBA18, 0x6B7E9506, 0x7F7F8593, 0x05222CF8, 0xB98B4F81} } ,
12295 { {0x7930A140, 0x4E9E59E0, 0x35AA2337, 0x7E1378AD, 0x2EF4B98B, 0x028B4794, 0xBC6E337E, 0x111B06A1},
12296 {0xB92769D5, 0x81F02331, 0x11167AD7, 0x78AD103C, 0xFA84E2F7, 0x6B2840FE, 0xE83B8AF8, 0x9D6119A1} } } } ;
12297 static const fp12_t var_expected = { { { {0xCF1F6E4D, 0x175924F8, 0xFA393FC1, 0x447DB63D, 0x7A5127BA, 0xA5AC7562, 0x47822114, 0x44803E16},
12298 {0x16960EE9, 0x467CA0B3, 0x21EC194B, 0x1C7BC913, 0x81BF2D9E, 0x1324A07D, 0xFC374D0B, 0x4388012F} } ,
12299 { {0xD0F19E3C, 0x4C153DCB, 0x533F2629, 0x9B1514CD, 0x09DB3ADB, 0xBEDAF161, 0xDC53E27F, 0xA087E20C},
12300 {0xF1BF1D4C, 0x24D5E52F, 0x3C89BCB3, 0x4537E0E6, 0x34554909, 0x3863A503, 0x18DBB386, 0x58A8BC2E} } } ,
12301 { { {0xC150841D, 0x5F4D4D5C, 0x1EC877A2, 0x1D7F7B89, 0xF4374025, 0xBB2692BC, 0xD5C2A8B5, 0x8E39E6C1},
12302 {0xE13CFC55, 0xBC1307FD, 0xA94CD1E6, 0x7344BAB6, 0x87B404A4, 0xBC088C3D, 0x57B9334F, 0x36F811EC} } ,
12303 { {0x8F8AC1F2, 0x51F988A2, 0xEBCC54C7, 0xC08F86B3, 0xE570AA1B, 0x423D53E1, 0xB4ED53FC, 0xB6793404},
12304 {0xD9F61EC9, 0x20CE7E4B, 0x5996DDA5, 0x66C36820, 0x31FC17C9, 0xBBC5F188, 0xA403EA02, 0x420BA944} } } ,
12305 { { {0xD3C5DCA4, 0x65F12A1A, 0x1C4A8459, 0x14651FDC, 0x048C8A66, 0x254E18E8, 0x40CD7CFC, 0x435FC27E},
12306 {0x709CC7B0, 0xE6F3A339, 0xECB1A935, 0xA0880AFE, 0x364E44B0, 0x20009994, 0x29DB04F9, 0x742760F4} } ,
12307 { {0x38538542, 0xD8B821F4, 0xE876D833, 0xB4D037C8, 0xE0EC7E0C, 0x76746348, 0x71796A0B, 0x9025B816},
12308 {0x16ABD6AD, 0xCE881DED, 0xCB832D95, 0xD064D200, 0xCAE8DF82, 0x052A8D5B, 0x7F1D7928, 0x3CD6F1BB} } } } ;
12310 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2853 a000");
12311 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2854 a001");
12312 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2855 a010");
12313 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2856 a011");
12314 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2857 a100");
12315 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2858 a101");
12316 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2859 a110");
12317 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2860 a111");
12318 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2861 a200");
12319 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2862 a201");
12320 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2863 a210");
12321 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2864 a211");
12324 static const fp12_t var_a = { { { {0x3BD7397E, 0x94EFFD1C, 0x4035712B, 0xD1FFB81E, 0x2E04E849, 0xF0A193B3, 0xDD21840B, 0x06B498C6},
12325 {0xBA69CF03, 0xB30B3A11, 0x544AA9D9, 0xA3C7432C, 0x07B388A4, 0x4DC737B2, 0xC5F368DB, 0x1DF3A063} } ,
12326 { {0x6C865F9A, 0x489B7684, 0xFFC3E518, 0xF911A706, 0xCA23F70E, 0x347A1FBC, 0x60E503A6, 0x02ACC80F},
12327 {0xB17FFAE7, 0x8B935046, 0x52D5CD74, 0x91E19357, 0xF49AA073, 0xF2AA553D, 0xFE3AA00E, 0x5A91174C} } } ,
12328 { { {0x62C98270, 0xF3E8E8B7, 0x7FBA28C4, 0x18BA085D, 0x0803AFFB, 0xC7E4BAC9, 0x83A6A5EB, 0x172368A3},
12329 {0x6DA5A2D1, 0xB90DD313, 0x3A48DFAD, 0x4BBBFABC, 0x685E5613, 0x7D4A16E1, 0xAB2E1682, 0x55AF18C7} } ,
12330 { {0xB2AAD19B, 0x5E146FB6, 0x0C9A66A0, 0x8EB214C7, 0x2C5D6794, 0xE2E29F9C, 0xC21B963C, 0x955FC5E8},
12331 {0x86EF0607, 0x23F4DBD4, 0xCF98EACB, 0x65ABF976, 0x9DDFCBB0, 0x45954F6B, 0x2B16D38C, 0x3AC1BAFE} } } ,
12332 { { {0x3104968A, 0x92DD3DF1, 0x33D1D2BB, 0xFC0F1979, 0xBB4821DE, 0xFD355F65, 0xDA9440EE, 0x0CDE00F4},
12333 {0x70BDC064, 0xF39ECA3C, 0x3D9A9B22, 0xA059B6BC, 0xB8A05A7A, 0xE2A25124, 0xDA9B83C1, 0xB9E480C8} } ,
12334 { {0xF3CEC765, 0xD7184EF4, 0xC38B3D10, 0x44510610, 0x7B879434, 0xD2EF10A5, 0xC9CA2789, 0x4F6107F4},
12335 {0x7E094FA6, 0x93D38F37, 0x1CCCBE91, 0xEACDD69D, 0xCB14FB0B, 0x324398AD, 0x179C9BA0, 0x09F18673} } } } ;
12336 static const fp12_t var_b = { { { {0x4F73D341, 0xB83E8ACC, 0xC682BD64, 0x866FDE23, 0x71D630FE, 0x5A02C9BA, 0xCBAF926E, 0x6E023053},
12337 {0xCB966073, 0xA7FFA9A4, 0x9886AD86, 0xBDDA234C, 0x745BD18A, 0x406E1491, 0x7E911925, 0x8BEEE740} } ,
12338 { {0x74EC5FB2, 0xFF0CF5E3, 0xB8548DE6, 0x11DC5AF3, 0x8C5A89EE, 0xD26EF38C, 0x1D20315A, 0x012CDFB9},
12339 {0x6785B465, 0x1E731FAD, 0x1F124503, 0x61786B9C, 0x9FB9195A, 0x7314C101, 0x6B2CB837, 0x80570578} } } ,
12340 { { {0x01CA4D59, 0xB0D30C1F, 0xCC345FCF, 0xABD8D82D, 0xFC7F65B6, 0xAB59C1E4, 0xFD2FE191, 0x0AFDE9AC},
12341 {0x285ED6D4, 0x1E462FA0, 0xB32FD3A7, 0xAA894CF4, 0xC4C04E5D, 0x5F6E47D7, 0x7C5BA61B, 0x54F74BE0} } ,
12342 { {0x06A21429, 0x1755C483, 0xCF63E025, 0x362D0E93, 0x84CFEC2D, 0x9CB5A00A, 0x675A8BA4, 0x5EF1FFA8},
12343 {0x61583B69, 0x114F768C, 0xED14AE55, 0x857F95D0, 0xF45125E8, 0xE24C9200, 0x0E60D1D2, 0x3E7F3AF6} } } ,
12344 { { {0x1661594C, 0xBE5FD425, 0x2700B3A5, 0xAB3712F3, 0x815278E8, 0xA9D3B6F8, 0x185B1F51, 0x98F1E2ED},
12345 {0x2DB49185, 0x9E4C892D, 0xF60BD4F7, 0x6ED52343, 0xD03673E7, 0x07E97F00, 0xBE59D4EE, 0x9C0DFBE0} } ,
12346 { {0xC64C88CC, 0x6F109632, 0x20B4FEF4, 0x6E44EBEF, 0x395C8005, 0x0B7823B4, 0x8D71D509, 0x09B6AB4B},
12347 {0x9B4E71E1, 0xB01FF567, 0x3F9528BE, 0xAB6C56FD, 0x41A4EB73, 0x35B49093, 0xE8DD7993, 0xB27830F7} } } } ;
12348 static const fp12_t var_expected = { { { {0x81835AE0, 0xCFC20385, 0xF8ED1CB4, 0xC9628494, 0xD81E1187, 0xB05BACCF, 0x1D8D9357, 0x51280BAC},
12349 {0xC79C4F36, 0x2AB34C19, 0x3739641A, 0xA688296C, 0x36E73713, 0x0EF2062E, 0xF4CB9C34, 0x5CE23919} } ,
12350 { {0x69F195EE, 0xECD7BD30, 0x432EC87D, 0xBEF02B70, 0x03EEAF2F, 0x60127C0D, 0x5F94E59A, 0x85F770B6},
12351 {0xD0CDBEE1, 0x165BD3E6, 0x5D23E0F6, 0x8E8D7B48, 0xDB5D802C, 0x6337324F, 0x8F6700DF, 0x1A6221C7} } } ,
12352 { { {0xEF03B840, 0xABF49DC5, 0x6C0E5836, 0xDD49AEBD, 0x54B144E6, 0xF767189E, 0xD5283BEE, 0xA8439E81},
12353 {0x987775D1, 0x8F81BF9E, 0xAE973C14, 0xAC260D9E, 0x66FD3FE7, 0xA2442EFC, 0x36E9510D, 0x7ED764D3} } ,
12354 { {0xD06CDACE, 0xA6DB4AA7, 0xBFF9D8D4, 0x38FDEFF2, 0x25AFDFCD, 0xFDD91F39, 0x8897EADF, 0x998FA986},
12355 {0x9DEC7ECE, 0x980BF3B4, 0xEF4A896B, 0x2B57FC18, 0xE23D8AA6, 0xE72DC465, 0xDC22ECF7, 0x472607D3} } } ,
12356 { { {0xCC14B40C, 0x016EFBF1, 0x42E699E2, 0xAD9A0B98, 0xED9BDBE7, 0x8B8A7CC4, 0xB9B3D5C4, 0x006DD129},
12357 {0xF42E8BD2, 0x345F365F, 0xA810345B, 0x8D86B1BF, 0xCA83131F, 0x6195ACB3, 0x95306004, 0x51AD132D} } ,
12358 { {0x21A9C62E, 0xED732525, 0x7853FCA8, 0xBCA10385, 0x14A8394E, 0xD3807754, 0x937534E2, 0x763820CB},
12359 {0x22AFB670, 0x957D76F2, 0x9EFF0528, 0x04D5E11B, 0x9CD4FD81, 0x7CFE958A, 0xBC10265E, 0x1645C6B8} } } } ;
12361 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2865 a000");
12362 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2866 a001");
12363 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2867 a010");
12364 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2868 a011");
12365 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2869 a100");
12366 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2870 a101");
12367 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2871 a110");
12368 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2872 a111");
12369 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2873 a200");
12370 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2874 a201");
12371 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2875 a210");
12372 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2876 a211");
12375 static const fp12_t var_a = { { { {0x107B0CAE, 0x2D56D8D5, 0xC5026EE4, 0x56B00756, 0x2CC7DAD0, 0x2BC669E1, 0x4455AFD2, 0x70EBE3B4},
12376 {0x2181B322, 0x71C2803F, 0xF66DDAC8, 0xFE3FBD3E, 0x6C748BE4, 0x05483589, 0xEAE1E8BD, 0x300FB6BE} } ,
12377 { {0xE49CA278, 0x481ACF0C, 0x65D789B6, 0x0D56D23C, 0x2345993C, 0xD2717804, 0x79EB337A, 0x708807D0},
12378 {0x98719A50, 0x47D89301, 0x02608810, 0xA16E11B6, 0xB180A00A, 0x42F6A068, 0x22866215, 0x36ADEBAE} } } ,
12379 { { {0x97D39D9A, 0x46383AFA, 0x0C95DF5B, 0xB4405821, 0x24AD7A11, 0xF8AE87C2, 0x6A307901, 0x1A98DA5F},
12380 {0x6FA6A79A, 0xDEE84D3B, 0xC2633011, 0x89A1DD94, 0x680EE1A7, 0x1898C444, 0x6BB7C919, 0x0CFCEFC4} } ,
12381 { {0x80D94E62, 0xEF19ADBA, 0xB36E7A50, 0xD0AA0984, 0x1C68F67C, 0xCF619040, 0x12E86958, 0x33362C46},
12382 {0x62F04300, 0x1BECFF2D, 0x727599F5, 0x83205DEE, 0xC27074EE, 0xCCC21258, 0xE3C9E982, 0x0DB9818F} } } ,
12383 { { {0x789FF3C0, 0x4C95BC35, 0xE44EE1B7, 0x05C166B6, 0x8F33A791, 0xCC2EF8A6, 0x31F14469, 0x4D4760A4},
12384 {0x5EF4BA7A, 0x2CF513D7, 0xEDE7330F, 0x04C6D89C, 0x9623AEAF, 0x0B4DD83B, 0xE75A785D, 0x007AD085} } ,
12385 { {0x6B7098AF, 0xA9844F13, 0xF039B34D, 0xF8AA83EC, 0x468F34D8, 0xB9AA95A7, 0x01F69485, 0x0A7E7AFF},
12386 {0x3F155015, 0x77B4927F, 0x21399D51, 0x451D5839, 0x466E038C, 0x9F8D880A, 0xD2F10D87, 0x03F4A239} } } } ;
12387 static const fp12_t var_b = { { { {0x36FD4D84, 0x8BAC5A67, 0x35C7008F, 0x1841EF9D, 0x97E92BC8, 0x7CAAF0F9, 0xC17457D8, 0x6230A348},
12388 {0xF907E014, 0xA4C04446, 0xB738F31D, 0x89BDCAD9, 0x75CDEE6A, 0xA21CC8E1, 0x8697EE9C, 0x4C3C1BC6} } ,
12389 { {0x4A3FB5B4, 0xBE42415A, 0x8364C0D8, 0x8C2E3E07, 0xCA8ADAB4, 0x5B931DF9, 0x2EDA72E4, 0x7A4A661F},
12390 {0x9B2345BC, 0x9F1C3587, 0x20CD621B, 0x165A67C4, 0x0E4DB0DA, 0x7B6DD733, 0x5BB0CE1B, 0x18D8EE13} } } ,
12391 { { {0xDCB0E4AF, 0x4AB91D5D, 0x3C4C2AB9, 0x09BD61EA, 0xB99F93A7, 0xCA0AE208, 0x43A965BE, 0x9C411FA3},
12392 {0x226D7E42, 0x8E1D9CC6, 0xDC800E6A, 0xFB861D4F, 0x84AFE3BF, 0xB01E5D44, 0xB0F57050, 0x049CCC43} } ,
12393 { {0x01BF3029, 0x79A8FE6A, 0x2CFE3007, 0x6F8F114B, 0x281E4CDC, 0x83A657E9, 0xFFAE1793, 0x99BC173B},
12394 {0xBB4E6297, 0xDF035604, 0x053DBF0C, 0xEBB993CD, 0xED721407, 0x2BE0EE9A, 0x227A281D, 0x17858A49} } } ,
12395 { { {0x0F46679F, 0xD24CDDC0, 0x62874A04, 0xE0C227B8, 0x1DF765B3, 0x80DCFCCB, 0x9EF1A15B, 0x83B804AB},
12396 {0xE4A870FF, 0x336C1189, 0x99A625D7, 0x747B7855, 0x3F4B72B7, 0xF6118E84, 0x8D6B5096, 0x6B149BF1} } ,
12397 { {0x9CE10997, 0x1F178F9A, 0x28526E05, 0xBCFE33BE, 0xDC66E57F, 0xF792AD13, 0x9E800F3D, 0xA9988819},
12398 {0xAB92E944, 0x79EDCDA8, 0x0ADAAEC3, 0xDE6743CF, 0x61345696, 0x75A5B8BE, 0x500E71C6, 0x42287477} } } } ;
12399 static const fp12_t var_expected = { { { {0xBCC41D5C, 0xA0DD3B26, 0x6B9CE0C3, 0x8FFECAA7, 0xCCA9775A, 0xF5B5D687, 0x5607A9F1, 0x850CEFC6},
12400 {0x2896EE00, 0x1E3E9AC1, 0x73BAE21D, 0xE634334A, 0x3CE02C0A, 0x47AF6B6C, 0x4C371E32, 0x1CCDDC91} } ,
12401 { {0xCA8FFB3E, 0x9F7E7DEC, 0x4C815CE8, 0x7752DFAD, 0x4505074D, 0x87262C0D, 0x6DA02FE8, 0x7B47CFA5},
12402 {0xB1BEC820, 0x8C0A73C5, 0x9DE96F0F, 0x23872667, 0x0C2F38AA, 0x7EC2AD0A, 0xEE13D80B, 0x70337ACD} } } ,
12403 { { {0x73A2E60C, 0x92E190DD, 0x7395953C, 0xEB9A26F4, 0x08D62DE2, 0xDAFE0318, 0x7E2F03EA, 0x91107797},
12404 {0xEC8EFF9E, 0x2E374DEB, 0x63C4F3C4, 0xBC8CBBC8, 0xB9AF7C04, 0x8249DF59, 0xE9035687, 0x0547C819} } ,
12405 { {0x415249A0, 0x86985D77, 0xBE2FFA12, 0x3468486C, 0x610118FD, 0x94EE1C90, 0xF7E6B628, 0xA4BF0BC3},
12406 {0x09521305, 0xA5E751CE, 0x0F9B5043, 0x54C2C5F8, 0x12982437, 0xCC3CE0FB, 0x7C4CD7A5, 0x7E383B3B} } } ,
12407 { { {0xA01AE933, 0x896E92A9, 0x35803F5C, 0x7ABC01B3, 0x3BA7E358, 0x97F0771E, 0xA12A62E1, 0xA0C14DAF},
12408 {0xFD5AE5E6, 0x1512ADE1, 0x8FF5D4E9, 0x0AF8F84F, 0x3217DAF3, 0xF8558DD7, 0x921A11C5, 0x3EC2AF5B} } ,
12409 { {0xF8437682, 0xA93C36B8, 0x95A2FD2D, 0x7A27F4B7, 0xC703F759, 0x8929FC30, 0xBE5E8A39, 0x9C76EAFC},
12410 {0xD13DBEE0, 0x2D048354, 0x2B21A15B, 0xB1992988, 0x2B279A1A, 0x8EFBE686, 0x87EBA59F, 0x99C07611} } } } ;
12412 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2877 a000");
12413 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2878 a001");
12414 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2879 a010");
12415 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2880 a011");
12416 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2881 a100");
12417 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2882 a101");
12418 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2883 a110");
12419 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2884 a111");
12420 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2885 a200");
12421 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2886 a201");
12422 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2887 a210");
12423 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2888 a211");
12426 static const fp12_t var_a = { { { {0x7A3CBC17, 0x693C3B4F, 0x0DF62697, 0xA484F264, 0xEB449A8D, 0x64B0DF43, 0xBA44F299, 0x9E3659FB},
12427 {0xE787FEA1, 0xDAE260ED, 0x576C99C5, 0xFD05EE41, 0xCD7228F7, 0x3DD89F57, 0x06E51331, 0x08F03B1B} } ,
12428 { {0xC160E6A1, 0xF94554B6, 0xDE07B809, 0x7A40A738, 0x0E543D44, 0x7EAB2378, 0xF2CFCBF2, 0x32F20954},
12429 {0x4DE064C2, 0xBC555F6E, 0xEEDEA703, 0xD17C3FC8, 0xE87C2B7B, 0x28DF5CA6, 0x4EE4291D, 0xAE94A983} } } ,
12430 { { {0xC4078B11, 0x59A115FE, 0xA7E95792, 0x5ED85CA0, 0x4A92818C, 0x401BE9FC, 0x802D4AF2, 0x75C179FD},
12431 {0xD24ADB47, 0xCA7B47F6, 0x7DE8A35F, 0x9DB58AC9, 0x572CF01E, 0x4ED7134D, 0x0362EE26, 0x645DC460} } ,
12432 { {0xB7BE1C88, 0x5141FBAA, 0xE2229E27, 0x9EAA5AE1, 0x91A59027, 0xE5E62B77, 0xA3927C19, 0x012D4724},
12433 {0xAC1D2EE8, 0xED46249C, 0xEF449667, 0xE16B2339, 0xFF0DB5A3, 0x08567E4E, 0x42E54138, 0x9CBF2715} } } ,
12434 { { {0x940FC690, 0xE8D8F843, 0x988742B6, 0x15388D75, 0x649CB08D, 0xDAB589A3, 0xD7CA0407, 0x92C29C7C},
12435 {0x4FA6EF54, 0x4DF5344D, 0x73859244, 0x5D3D37DD, 0x05B2394F, 0xF0F839DB, 0x6AF6588D, 0x076F6B78} } ,
12436 { {0xE8F3945D, 0x6C269652, 0x44E2F983, 0x576E0166, 0x377A4EB4, 0xEB5EE3CC, 0x19B059F3, 0x124BBFE7},
12437 {0x7079E4C1, 0x54A1984F, 0x75E01634, 0x13BA0A3E, 0xCEFB0587, 0xDDF5DA4F, 0x17EFBE82, 0x956DAF43} } } } ;
12438 static const fp12_t var_b = { { { {0x93AF3409, 0x60849100, 0x47C9128E, 0xD2C1D7CD, 0x5FD4E985, 0xFC1C9629, 0xA7CF3E73, 0x7A075422},
12439 {0x04C3231F, 0xAAD1FD06, 0xA2010059, 0x45749A1E, 0xFF71250C, 0xEAAAC21C, 0x25CAAC29, 0x781B4CF9} } ,
12440 { {0x9F6A8A03, 0x928A5333, 0x99F12689, 0x9A2726AA, 0xD2F85128, 0x5B14C925, 0xFD465904, 0x347B172B},
12441 {0x4096EB5B, 0x39095684, 0xE7D910F1, 0x7210A09F, 0x7D8E56DC, 0x702EBA90, 0xB2F3B3DF, 0x2147A658} } } ,
12442 { { {0x6937FDCF, 0x08891E86, 0x1C7CB59F, 0x9D3760EC, 0x645F074E, 0x6DF198FC, 0xD982304F, 0xB8C10E5C},
12443 {0x9A3D2947, 0x29578DA9, 0x716F0E3C, 0x5C55FB6D, 0x6D0EAEFD, 0x06DF50BF, 0x1B19BD66, 0x403D27AF} } ,
12444 { {0xE1D7AE18, 0x0C211D46, 0x1DC0DF6B, 0x813CAE8D, 0xDFC0EED1, 0xF9C949B0, 0x77444C2D, 0xA97129D0},
12445 {0x635E8147, 0xE5F7BC39, 0xD935905A, 0xF12AD2FC, 0xE0602503, 0x8C93A28F, 0xBDD97E11, 0x0DC4B9D5} } } ,
12446 { { {0x5CBDF97F, 0x28225992, 0xAAC9F2D9, 0x6AEE0EC1, 0x47345B77, 0xFA76C862, 0x14A0ABC0, 0x1872FC67},
12447 {0x55FA10A3, 0x13A20E41, 0x73BDC29A, 0x97ED7570, 0x227B4857, 0x0FAAB038, 0xF51494F6, 0x2C7E8734} } ,
12448 { {0x956220A6, 0x231AE29F, 0x8F295AB0, 0xEF829A2A, 0xDD83B861, 0x9824D339, 0xEDD175A3, 0x840FF99F},
12449 {0xA8E10C2F, 0x9D66D3BC, 0x2F2CDD5F, 0xD12D9791, 0x1AC78D4F, 0xEBBC3929, 0xDF182F2B, 0x0F933C4E} } } } ;
12450 static const fp12_t var_expected = { { { {0x46E7E048, 0xE24D6E16, 0x4751F7CD, 0xE724A386, 0xC755D518, 0x63A7C6C9, 0xFD1A396E, 0x37099B32},
12451 {0xD3A50825, 0x930A808D, 0xA2250175, 0x59FE839C, 0x46ECA6D9, 0x010401D6, 0x79BFF914, 0x723F40B0} } ,
12452 { {0xC7C46FB2, 0x2C4B0275, 0xAC1A2A3E, 0x11FC3E8B, 0xE861C130, 0x50D38AE2, 0x4DA0114B, 0xB9BE1216},
12453 {0x982504AE, 0x2A67221A, 0x879A5638, 0x8B7B26A5, 0xF6060249, 0x7DBAF01A, 0xFE22798D, 0x310CD244} } } ,
12454 { { {0x623F930C, 0xAFB87BA8, 0xE2D114FD, 0x1ECA3EE8, 0xE2474C31, 0x5960E47C, 0xF8812313, 0x05809E29},
12455 {0x9B650C42, 0x4580A24C, 0xC3DE2FE5, 0xA90F0565, 0x1564C76B, 0x0CE09907, 0x544643C1, 0x1E3C66E0} } ,
12456 { {0x4238E49A, 0x52F647A5, 0x3A5FF33A, 0xCAAB9D6D, 0xBAFB3F70, 0x9B06B259, 0x1882EFB1, 0x9DC76014},
12457 {0x9F526F4C, 0x16F77941, 0xDFD6D196, 0x4DAE10C2, 0xAF4D714C, 0x5AADEFA4, 0xA66627B5, 0x76F86199} } } ,
12458 { { {0xB797C689, 0x7FF39374, 0x81F0822F, 0x50D44729, 0x9BAB405A, 0xF57977D4, 0x6C805814, 0x1B9FD2D4},
12459 {0xC3D327F9, 0x341751FC, 0xBAE94218, 0x7ED953B4, 0xEDF38762, 0xA3CC0DDF, 0xCF044189, 0x74950297} } ,
12460 { {0xFE90073B, 0x6F6B0304, 0x4893C444, 0xCDF97A2A, 0x8EB02331, 0xFC75CBD0, 0x7B9D1C4D, 0xAB6AA321},
12461 {0x19A59618, 0x59B5729E, 0xFEFD4A32, 0x360A06C8, 0xCEF5BF65, 0x28D00C3A, 0x8CA39858, 0x4A0D4B6E} } } } ;
12463 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2889 a000");
12464 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2890 a001");
12465 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2891 a010");
12466 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2892 a011");
12467 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2893 a100");
12468 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2894 a101");
12469 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2895 a110");
12470 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2896 a111");
12471 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2897 a200");
12472 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2898 a201");
12473 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2899 a210");
12474 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2900 a211");
12477 static const fp12_t var_a = { { { {0x3A014C08, 0x07879891, 0xD98EC5B0, 0x7A2394FE, 0x2B874A9E, 0x5B792667, 0x00F4C135, 0x5050AA54},
12478 {0xA5D6E5DE, 0xAE5BC22D, 0xBA95B88A, 0x26A49252, 0xF08735A8, 0xC5C7D63F, 0x195D8295, 0x39AAFAE3} } ,
12479 { {0xC3A7B2C4, 0x1EB3BA30, 0x2A45F9FF, 0xFFA73738, 0x4A4A1D80, 0xF9EFC948, 0x8906899E, 0x08D46505},
12480 {0x8F995E3F, 0xAC781D1B, 0xD6797BE0, 0xE2FA8BEC, 0x580199C1, 0x6586BA75, 0x40810632, 0x82CA31B1} } } ,
12481 { { {0x227A9EA3, 0xF0B0566A, 0xBD35BB50, 0x8A3F9A8F, 0xEB104B21, 0x6E21D9AF, 0x8504AA46, 0x0167AFCF},
12482 {0xCE9F3D34, 0x432A7AC3, 0xDA8E2545, 0xFBCF14DC, 0xA98D70F0, 0xF5554CD4, 0x314D8609, 0x34342432} } ,
12483 { {0xB1E0F364, 0x46912DB3, 0x850E6EB8, 0xA4D9DF36, 0xF90D2294, 0xEA3A8F63, 0xF25037BA, 0x027B167E},
12484 {0x2225041E, 0x59D12861, 0x090F9F57, 0x3FDC180B, 0x1609419C, 0xBBCFA20E, 0x09742C05, 0xA8B7C5FC} } } ,
12485 { { {0x46FACB8B, 0x274DB771, 0x0FBB050A, 0xEEDB8B6A, 0xFA4CE184, 0xE6A3EB38, 0x8CE5FE72, 0x9BCA8007},
12486 {0xDAEB0789, 0x1A52FCCA, 0x0F836B92, 0x3408488A, 0xCAE38A65, 0x60B493FF, 0x658F3C38, 0x60988BFC} } ,
12487 { {0x2FEC6A09, 0xE0555CA9, 0x81346DCB, 0x223226C1, 0x0C020CD4, 0x25987C4C, 0xD12C330E, 0x2973341E},
12488 {0x0B6B8DB4, 0xECE81102, 0x30B88845, 0xEF2E7264, 0x7C2A6E67, 0xB79CF76B, 0x21477B75, 0x08777462} } } } ;
12489 static const fp12_t var_b = { { { {0x26104C19, 0xF7CAE432, 0xBCA85DF2, 0x74B811FB, 0x8840764E, 0x9A922C1A, 0x3C64344A, 0x7762A1C5},
12490 {0x4A191EFC, 0x7C217623, 0x43C21B4E, 0x9ECBCA4C, 0x7E879AB9, 0xDE4980B9, 0xDC664C50, 0x17EAB270} } ,
12491 { {0x5C666D0E, 0x38640861, 0x37F38FAE, 0x32F193E9, 0x5EE2D445, 0x84FDBDDF, 0x0CD59404, 0x1C049841},
12492 {0xF1C50A0C, 0xAEFB3E63, 0xB3951FA7, 0xFA73A791, 0xB2E529D6, 0x1F75B3BC, 0x71647667, 0x2B09EB3D} } } ,
12493 { { {0x6BC2D112, 0xA8A6E5AE, 0x29C3B777, 0x256F783C, 0xBC47A4D7, 0x52A725D3, 0x7E3F8A46, 0x1EB95AD9},
12494 {0xED011BE1, 0xAF4090BD, 0x5BBBE103, 0x7A223379, 0xEBFCC6A6, 0x284076AC, 0x3DE29CD5, 0x0E9A04B5} } ,
12495 { {0x67422EEE, 0x92D39974, 0x6119E1C2, 0x2C8BDF22, 0x6631AEA6, 0xBD688D37, 0x8E0E9A4B, 0x4C7B1CB8},
12496 {0x7B04577A, 0xE5099238, 0xFB1BAB0B, 0x6A5005AE, 0xDFEE4813, 0xBD64D8C3, 0xDF496461, 0x98524913} } } ,
12497 { { {0xE294D074, 0x7F6E0E48, 0x400E3AB3, 0x41744DFF, 0xBA1A21C1, 0xC8BE68FD, 0xF9276644, 0x45F73EE1},
12498 {0x083F15C3, 0xFD65C679, 0xED580B18, 0xBDEF37C0, 0xE36D10A3, 0x0AC5564D, 0x33AD5051, 0x14A76361} } ,
12499 { {0xD330BE30, 0x397DFC4F, 0xE8024933, 0xDB99F90C, 0x50F05B18, 0xA6359B0C, 0x7C589A72, 0x13FA4F4C},
12500 {0xF03D2CA1, 0xDCE9112F, 0x9B9BADC8, 0x327BCAEF, 0xD94B8BF6, 0x5D9B253A, 0x156A8C05, 0x1E07C614} } } } ;
12501 static const fp12_t var_expected = { { { {0x97E9C8F7, 0xD9DA6853, 0xC2328991, 0xDE927FC7, 0x9CD8D441, 0x5E0226D2, 0x20B8B817, 0x2B6FCC53},
12502 {0x0273C1E4, 0x785A90C3, 0xB09C7110, 0xB3CDF7C9, 0xC51F3DC3, 0x3E4025D4, 0x003840AB, 0x95548D76} } ,
12503 { {0x725F8586, 0x07B38209, 0x4CCD7A80, 0xB940113B, 0x939551F5, 0xB8BE6227, 0xD3F0B070, 0x5A79D963},
12504 {0xF153A35D, 0x8145F7D0, 0x5B8B32F4, 0xB2317C9B, 0x82F75724, 0x11AF2A22, 0xC7F88B8F, 0x6E811F04} } } ,
12505 { { {0x5F1E2016, 0x1A4F74D8, 0x4EEDC34F, 0xE0E9431A, 0x3867136B, 0x5A726FEA, 0x53A478AE, 0x9F0AA2F7},
12506 {0x5C125AEA, 0x8853AD2E, 0x92EEA7AB, 0xD334BF4F, 0xD64A8CC8, 0xA752C971, 0xEC14D651, 0x3A4C4E77} } ,
12507 { {0x4BCEC87A, 0x23285291, 0x0B35031C, 0x387B8CA0, 0x2F87AC8A, 0xA4C58364, 0xA95E6533, 0x9066A764},
12508 {0xADE7BA2B, 0x8D1DA8A1, 0x18C8781F, 0x618FDCA1, 0xD5DE3B46, 0xC8695FED, 0x8515114E, 0x369F17B3} } } ,
12509 { { {0x470A0EF8, 0xA29941B1, 0x22D3096E, 0x5D6CCDB6, 0x6B43FEC5, 0xDD0C2518, 0xB9652CC5, 0x3694C760},
12510 {0x8755FCF2, 0x34673409, 0xB72A96BA, 0xC98C6F6D, 0x94ECDD69, 0xD5E2EA62, 0x30F89551, 0x04C41B50} } ,
12511 { {0x3AACB41C, 0xB865FF00, 0x32C850A8, 0x522340C8, 0x88AC1B29, 0xB53AC9F2, 0x6B313072, 0x6726CD00},
12512 {0xC00DC1ED, 0xCBF24915, 0xC1778F0B, 0xE6D12E5C, 0x9A98240B, 0x26996A1D, 0x3E4B523D, 0x45ADC78C} } } } ;
12514 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2901 a000");
12515 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2902 a001");
12516 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2903 a010");
12517 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2904 a011");
12518 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2905 a100");
12519 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2906 a101");
12520 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2907 a110");
12521 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2908 a111");
12522 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2909 a200");
12523 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2910 a201");
12524 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2911 a210");
12525 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2912 a211");
12528 static const fp12_t var_a = { { { {0x0FEF31E0, 0xC85A9A9F, 0xE78C6443, 0x9873F590, 0xADD7CE4F, 0xD179A33A, 0xD5A6F03E, 0x473313A0},
12529 {0xA73CA7C8, 0xABE54A5A, 0x33C1FE1C, 0x85609243, 0xE4FCB4CA, 0x4B4A38D1, 0xE4C192E4, 0x6A23A7A5} } ,
12530 { {0xAA875266, 0x74367F24, 0x0ABF974A, 0x5CA393CC, 0x976182A7, 0x0248D840, 0x004356A2, 0xB2584BA9},
12531 {0x1EAB77FD, 0xD6EDC847, 0x7898FBBB, 0x9317EB5D, 0xC2BFF791, 0xB84CF72A, 0xBBC89D16, 0x731107FB} } } ,
12532 { { {0xFAE1E806, 0xC8A3802D, 0x5DF9BBED, 0x450507B5, 0x12DA08EC, 0x31FD8CBF, 0x3A56084A, 0x653688AD},
12533 {0xAC51AF99, 0x050C0CE4, 0xEC0D1224, 0xB0918D61, 0x6C5EA954, 0xB8A5393C, 0xB7D1D9EE, 0x25C3402B} } ,
12534 { {0x94644A3C, 0x8B2A14A4, 0x2EB9A620, 0xB6BFE510, 0x64986385, 0x99267A93, 0x01D3843C, 0xB1BE984D},
12535 {0x24C85B30, 0x21AA140C, 0xA8A3DC04, 0x49EF0453, 0x74109913, 0xAA90607D, 0xB7A25303, 0x36AF980C} } } ,
12536 { { {0x4C45771C, 0xC8D634A1, 0x09696B1E, 0x4F53903C, 0x114FDC49, 0xB1116A96, 0x11454FDC, 0x281AA128},
12537 {0x22CF589D, 0x50B6A04D, 0x561006D9, 0x5BF7EB85, 0xF71DFEB9, 0x16513043, 0xD7FFAFCA, 0x865DB9C8} } ,
12538 { {0x38D96C82, 0xC7C8CC46, 0xBC30B135, 0xF2AA7C16, 0xDF5BD2F9, 0x335C2924, 0x67A18965, 0x9AB7D4B0},
12539 {0xD2B85E5D, 0x00F853AC, 0x11E8F98E, 0x976B2F10, 0x0F6BB265, 0xEAA24B7E, 0xB3239904, 0x1E93D3D6} } } } ;
12540 static const fp12_t var_expected = { { { {0x3BE7EED6, 0xB71A5A51, 0x32A57CBA, 0x51D65898, 0xFAB1B778, 0x7A7E3695, 0x0B899FF0, 0x4A7302B8},
12541 {0x56848CC2, 0x50ACFB06, 0xF8A5999A, 0x4CC627C3, 0x1AD7DE70, 0x2C374F5B, 0x315E21F3, 0xA4E83C5B} } ,
12542 { {0xE761CF6C, 0x832F2F78, 0x2E51EAA9, 0x39E56668, 0x2C0FFB9D, 0x164610A3, 0xA21321F3, 0x66BA9C6A},
12543 {0x676FCD48, 0xA38CCCA6, 0x03C53C3E, 0x1EE4E250, 0x31D7C381, 0xA25C75FB, 0xC12B8043, 0x7353E8AB} } } ,
12544 { { {0x74706444, 0x821265BC, 0xD41CE31D, 0xEB204378, 0x6ED73B79, 0xDFAADD64, 0xD86EC734, 0x03BD5AAC},
12545 {0x1104E49E, 0x527C5ADF, 0x4B280745, 0x2F57DDD8, 0x44C7CA42, 0x818C4748, 0xB2AB4F5B, 0x757F3AB3} } ,
12546 { {0xC199D512, 0x6079AB5D, 0x0130E9E9, 0x128F242D, 0x5DD0EC96, 0x2ACB99DC, 0xC9E93273, 0x5B580041},
12547 {0x7BCE4EE8, 0x2BD5C91E, 0xF9F642F5, 0x7896A7D2, 0x62BBB662, 0xED7869D9, 0x917CF331, 0x51A44448} } } ,
12548 { { {0x1A5A3104, 0x70AEA2BC, 0x594E4413, 0x9F8B1EE7, 0xBF939A79, 0xB4610A21, 0xFEABB2DA, 0x6F542CD5},
12549 {0xF73FAF6A, 0x4711EFB7, 0x9DBF7A66, 0x0E3FA03A, 0xBAF60993, 0x3074DE69, 0x924BC669, 0xA69032ED} } ,
12550 { {0x90B509A1, 0x112B61A9, 0x55EB6C6E, 0x967031FC, 0x5BB75123, 0xF2079DDC, 0x7212FD63, 0x841CD60A},
12551 {0x59B4E236, 0x08C38739, 0xCA0F7425, 0x34B6DAF6, 0xDA080C2D, 0x816BD010, 0x59508D79, 0x49F12C09} } } } ;
12553 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2913 a000");
12554 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2914 a001");
12555 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2915 a010");
12556 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2916 a011");
12557 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2917 a100");
12558 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2918 a101");
12559 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2919 a110");
12560 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2920 a111");
12561 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2921 a200");
12562 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2922 a201");
12563 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2923 a210");
12564 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2924 a211");
12567 static const fp12_t var_a = { { { {0xADE4AB70, 0x10C5A206, 0x54C51C96, 0xBF2B65D4, 0xD2177C89, 0x1784BBFC, 0x41166143, 0x185CD4E2},
12568 {0xB14D1155, 0xD696D28E, 0xD976C1ED, 0x8D181A44, 0xAF19E21D, 0x2EEACEA3, 0x2964DBC6, 0x1699F6B2} } ,
12569 { {0xDEBFBDC6, 0x6FD6420D, 0x48C1EF44, 0x04B3AF21, 0xDC4512E8, 0x9D1776F0, 0xDBBC72B1, 0x381F120D},
12570 {0xCE8CA568, 0xBDAEC471, 0x1C816257, 0x83E5A909, 0xC087067F, 0x4523EB3B, 0x962D0A7C, 0xB215F708} } } ,
12571 { { {0x6352F7E2, 0xEA9516AA, 0xD154138E, 0x88EF148B, 0x29E6A12B, 0x31C533FA, 0x71E1517B, 0x02C9EE6F},
12572 {0x01DA876C, 0xDE23DA22, 0xDB436A93, 0x4FA0BCB2, 0xBA63561F, 0xC69292CB, 0x972AD440, 0x5C009CFE} } ,
12573 { {0x529491E1, 0xCA1437D3, 0xB8B96A05, 0x2E121FF6, 0x7F29F311, 0x900B7D2C, 0x04411FBB, 0x4484F266},
12574 {0xFD7473CD, 0xA1873449, 0x85E824B1, 0xF0B7E087, 0x048C0B92, 0x897532F5, 0xC977E9A8, 0x064AFF69} } } ,
12575 { { {0x3CCAFF7F, 0x996C60C6, 0x640D8310, 0xEFE7E899, 0x3AAD24FE, 0xB9C9D60C, 0x4DCF4F30, 0x9CE4B0A8},
12576 {0x57C841C0, 0xB0A8872A, 0xF255C089, 0x954BE61D, 0xEE5FCE9D, 0xAD8FF857, 0xC8748242, 0x26EE2EA5} } ,
12577 { {0x17C28336, 0x21F5290D, 0xF56DC388, 0x3F3A1D9D, 0xF345D8B4, 0xE3AE1313, 0x0A2880CB, 0x16637B48},
12578 {0x6997784E, 0xF2CDE927, 0x8B5761F6, 0xF8943095, 0x587B46AB, 0x7BA1AB26, 0x732B8715, 0x5E65071E} } } } ;
12579 static const fp12_t var_expected = { { { {0x9E0AFF32, 0x130D31BA, 0x2E413636, 0x6E2FB50F, 0x788BCABE, 0x3BD90D58, 0xA30D3470, 0xB7059318},
12580 {0xCE900E73, 0x11F5C39F, 0x166F18AF, 0x8E8277F6, 0x017B1996, 0xCD66C359, 0xF4013E73, 0x131A93DC} } ,
12581 { {0x65D660A9, 0xC58337F9, 0x0FA42A01, 0x6A544FAB, 0x3D70050B, 0x9B82BE37, 0x62362978, 0x01A6FF36},
12582 {0x1790017A, 0x379E6E0D, 0x47092669, 0x2187BC66, 0x155FDCCD, 0x499C9573, 0xD48ED19E, 0xB8E289E8} } } ,
12583 { { {0x95280409, 0x2BE8CAB1, 0xC45C03AB, 0x0AAE8741, 0xE005A8D2, 0x47D65190, 0x1282B277, 0x1AB403FD},
12584 {0xFA542457, 0xD9E34701, 0x45745818, 0xE7460746, 0x4C65FEB9, 0x9F8632CE, 0xDE84EC98, 0x02DA36EB} } ,
12585 { {0x5125718E, 0x868ABFF1, 0xAFE7D14F, 0x3882F975, 0x8B244136, 0x265BC988, 0x5A9BFF87, 0x1B1C95E0},
12586 {0xCA5B1AC8, 0x7757A73C, 0x76CE5926, 0xAFBED8EC, 0xB877668E, 0x896928FE, 0x96CFD6B1, 0x94725332} } } ,
12587 { { {0x6B28940B, 0xF9B98A27, 0x41023DA5, 0xC1736B5B, 0xF53E8CFA, 0x2836B59E, 0xD2F0B7D9, 0x1E7B2859},
12588 {0xEABBCFB3, 0x52F3ACBB, 0x39D8E48D, 0x6C90E430, 0x23E359D4, 0xC8E8F989, 0x3065C20C, 0x65C2556D} } ,
12589 { {0xCBEFD5D3, 0x0DAE2152, 0x00B8348E, 0x183510B7, 0xDF8B374F, 0xB62AB81F, 0x023D5740, 0x343C9BB5},
12590 {0xAB0BB0EC, 0x0D1D3C1F, 0x3D2C75AA, 0x02FA3BFB, 0x1A9A739E, 0xE5771371, 0xF018102A, 0x8BBE54F6} } } } ;
12592 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2925 a000");
12593 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2926 a001");
12594 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2927 a010");
12595 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2928 a011");
12596 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2929 a100");
12597 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2930 a101");
12598 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2931 a110");
12599 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2932 a111");
12600 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2933 a200");
12601 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2934 a201");
12602 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2935 a210");
12603 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2936 a211");
12606 static const fp12_t var_a = { { { {0xB96B1723, 0x6A1CE3EC, 0xF9EFCF1F, 0xBF9BCDAD, 0x30C089B1, 0x854AB09B, 0xF9E06D10, 0x411A1A3E},
12607 {0x83926EB4, 0x93F0A1F2, 0x02BFB47C, 0xA1435696, 0x6D2F0B96, 0x9B2DDE4B, 0x65F1246A, 0x2DF0EEA8} } ,
12608 { {0xD52A5FC7, 0xBEF61D27, 0x696D7F21, 0x3E77DD51, 0x6130FC1D, 0x5E9BE313, 0xD65A2F7E, 0x36D6A5AA},
12609 {0xBA624B1E, 0xFAA1ACA4, 0x96E289AF, 0xA44197A4, 0xE4A9CD13, 0xE1D21C42, 0x7C66EA29, 0x406C0EE6} } } ,
12610 { { {0xE5FFD9B0, 0xA37469ED, 0xCDAC4200, 0x157AAD4A, 0x88B34746, 0x5884C15D, 0x9E288D83, 0x338C2156},
12611 {0xA2F06A05, 0xD301B531, 0x209E0A18, 0x2F57F50F, 0x10F75912, 0x6B971A40, 0x558E7519, 0x0CEDCD09} } ,
12612 { {0x5926289F, 0xE5A6897D, 0xF7828790, 0x6CEF9580, 0xEDDDD5D3, 0xBA9237F7, 0x0EB1496B, 0x5B9B6521},
12613 {0x98B9E67C, 0x00E8820F, 0x0DF2FA7B, 0xFBA6C133, 0xD09F7CD7, 0x84B9F56F, 0xCC5AC79F, 0x3447D870} } } ,
12614 { { {0x05EA78BA, 0x8CAC5CC6, 0x72D9C609, 0xE5730A0D, 0x1709796E, 0xFDF7291C, 0xE40E938A, 0x40977D76},
12615 {0xE86D9E08, 0xB11ECF7A, 0x0925A4F8, 0x9209CDE4, 0x4E22CD53, 0xD37F7AAC, 0x80432920, 0x38517015} } ,
12616 { {0xC5D0127A, 0xE153EFBE, 0xB706E6B2, 0x86EEE8B7, 0x6FC12A34, 0xD2B43336, 0x9DC1AF2D, 0x2543741D},
12617 {0x48C6BF0B, 0x4D5A58A6, 0x83CAD652, 0xF3C0C084, 0xF03714FD, 0x312904EA, 0x0C2FBD39, 0x09AE90F1} } } } ;
12618 static const fp12_t var_expected = { { { {0xB92B41A5, 0x57E562D7, 0xF1856FA2, 0x7C80C728, 0x101D96EF, 0xD2B1DCAA, 0xB7ECC89F, 0x9B53CA16},
12619 {0x6347A2C5, 0xAF072C02, 0xE371815A, 0x4A5AD4CE, 0xA8B1B927, 0x593EDD35, 0x342A0725, 0x977BEE65} } ,
12620 { {0x1E9EEFAE, 0x431D0D6C, 0x5F79BD50, 0x12447290, 0x98F80667, 0xCA85090A, 0x36C6116B, 0x0D2205A5},
12621 {0xD5379659, 0x3D743313, 0xE29BDCB6, 0xEBF4EB5C, 0x3BBF8852, 0xBE09652E, 0x16E4254B, 0x83C27CAE} } } ,
12622 { { {0x2ED57EA8, 0x46CC53F1, 0xBAB55429, 0xB6064DD8, 0xC136915F, 0xE66A42A7, 0xC9A6E1B8, 0x4308327B},
12623 {0xF724205E, 0x1EBA35C7, 0xFD5D1698, 0xF9E330E7, 0xEEA57DC1, 0x6B504D5C, 0xF7F2D593, 0xA696F655} } ,
12624 { {0x0CF11ADF, 0xE3C60F84, 0x3BACEE2E, 0xDD9C4457, 0x8A0627D4, 0x2908CB30, 0x658B19D9, 0x622BBE1F},
12625 {0x55843E3D, 0x957257B4, 0x699AECC4, 0xDFB48D32, 0x729C469C, 0x665C353E, 0x1A1F7C71, 0x72770282} } } ,
12626 { { {0x5458BBD8, 0x0148F44F, 0x7CA83145, 0xE9EBFFAC, 0x0E67BD77, 0x585ADAF7, 0xA1933E92, 0x1680F393},
12627 {0x54926023, 0xB1A1837C, 0x81C907A3, 0x03BB3C3F, 0xB06B14E8, 0xAFC8C06A, 0x8CFC49E0, 0x03B892F0} } ,
12628 { {0x6B0BDB1A, 0xE2D3D404, 0xE2525A6B, 0xF35C05B8, 0xB56B9737, 0xF7ECE3AE, 0x51515AC1, 0xB071BDB3},
12629 {0x836D0C7F, 0x98086D7E, 0x4FB5409B, 0x52FC554F, 0xDFFC7300, 0x691FC9F4, 0x3861DD0E, 0x0736EC51} } } } ;
12631 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2937 a000");
12632 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2938 a001");
12633 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2939 a010");
12634 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2940 a011");
12635 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2941 a100");
12636 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2942 a101");
12637 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2943 a110");
12638 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2944 a111");
12639 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2945 a200");
12640 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2946 a201");
12641 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2947 a210");
12642 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2948 a211");
12645 static const fp12_t var_a = { { { {0xEA327FEE, 0x6CF77188, 0xCFBE1C57, 0x7162A8F8, 0xFE830523, 0x32AA9E0D, 0x7409EBBD, 0x1C4FE071},
12646 {0xD4D83BEA, 0x7BC422B2, 0xA592AE65, 0x9983D42B, 0x55205C21, 0xA97CE84C, 0x0E43A471, 0x07DDB5F1} } ,
12647 { {0x4795AA62, 0xF803DA97, 0x61E358E0, 0xE1F41B04, 0x5F187EB5, 0x5E290C8B, 0x68ADC5DB, 0x0368A051},
12648 {0x99D81432, 0x262FE2F3, 0xDFE317D2, 0xCDF3CCF4, 0x670696A2, 0xA2F958D1, 0xE39ABC84, 0x758F2889} } } ,
12649 { { {0x13CD51E4, 0x8D38B942, 0xCEAA220B, 0x885C76A5, 0x6B471F2D, 0xCA632A8D, 0x756C4773, 0x24AF4295},
12650 {0x0DF50BC0, 0x79021B13, 0x5DE18DAE, 0x4E488AC5, 0x4B3B66A8, 0xB4C79B33, 0xE8312D2D, 0x03739DA3} } ,
12651 { {0x62A3BE6B, 0x7479BFE2, 0xE290B340, 0x49A824AF, 0xE8A2756E, 0x307B774C, 0x994F67AB, 0x50778701},
12652 {0xAB7DF8BB, 0xD7DDE396, 0x36C3BB04, 0x445038A0, 0x0EA901CF, 0xB0E657B0, 0x3A8FACA0, 0x172DC25E} } } ,
12653 { { {0x8A50C394, 0x364F726E, 0xAB9E7FA4, 0x4461E986, 0xDBB79987, 0x897111C5, 0x10999449, 0x98699DF2},
12654 {0x0454081E, 0xEE858358, 0x434F3793, 0xDD232F28, 0x01B657EE, 0xB4DE48EF, 0x7503ABB9, 0x270372D1} } ,
12655 { {0x20CCB4FA, 0x9C76DEC6, 0x753AF318, 0xDB9A2F0B, 0x885E2504, 0x0EB96E7B, 0x57943731, 0x4D956329},
12656 {0xAE19AFA3, 0xA5157612, 0x430086C0, 0xAC93F436, 0x5D001365, 0x14303DE9, 0xF80A6A44, 0x5F5245AB} } } } ;
12657 static const fp12_t var_expected = { { { {0xC41E06B2, 0xB267A5CB, 0x644905DA, 0x508BF7F1, 0x4080276A, 0x285EF2C8, 0x78E1031D, 0x26D65EA8},
12658 {0xB9A5977E, 0x41EFC273, 0x60268AEB, 0x4AAFD2F6, 0x56D9E098, 0x4EA42B4D, 0x9C998AF7, 0x085101D3} } ,
12659 { {0x9DE932AE, 0x3F4AC16F, 0x756A02C1, 0x746D2C83, 0x8011F700, 0x9FD90282, 0xFB306E8A, 0x525E8DF2},
12660 {0x38D93409, 0x8989174B, 0x371C344F, 0xFA7C97C8, 0x30C29224, 0xD4DF1D8E, 0x4D282062, 0xAAEB1288} } } ,
12661 { { {0x4D6B6DAB, 0x4DD08EF6, 0x6937D5D1, 0x8E927A7E, 0x23418157, 0xD003B427, 0x2AF29A31, 0x0C0FE9BA},
12662 {0x8F10DD08, 0x6C6B9BDC, 0x67E44B10, 0xD5C77BEC, 0xDCCADE67, 0x152C28C9, 0xF257055A, 0x39A7988B} } ,
12663 { {0xCCC562A8, 0xAAA0E2A5, 0x64D922ED, 0x95A8211F, 0xD8439E06, 0x6772484B, 0x38DC9288, 0xB580A72D},
12664 {0xE01DE94C, 0xA304C60A, 0x06C9C940, 0x407C3C09, 0xDA555B7D, 0xF8CEA1AC, 0x68743E39, 0x32720B53} } } ,
12665 { { {0x7D0CAFBB, 0xC3C96D08, 0x0D2C767E, 0x0F338473, 0x3D0C69DD, 0x7379D70C, 0x15569CBA, 0x55CB1B2E},
12666 {0x71C75477, 0xC18CC337, 0xB2F464E8, 0x7841A358, 0xAC88051F, 0x90419E3D, 0xA841A415, 0x29F72F75} } ,
12667 { {0x596F6662, 0x6FAD7A85, 0xBAA24CD7, 0x8C527D72, 0x3D9101F0, 0xBCC7C757, 0x5274136E, 0x28C7257A},
12668 {0x9B625655, 0xFCF75971, 0xFA4E8E07, 0x77121ACA, 0x7A19A8B7, 0x77595039, 0x15B43B1D, 0x94E50E21} } } } ;
12670 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2949 a000");
12671 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2950 a001");
12672 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2951 a010");
12673 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2952 a011");
12674 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2953 a100");
12675 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2954 a101");
12676 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2955 a110");
12677 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2956 a111");
12678 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2957 a200");
12679 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2958 a201");
12680 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2959 a210");
12681 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2960 a211");
12684 static const fp12_t var_a = { { { {0xF81C99C7, 0xAF70CD14, 0xCEF7442F, 0xAE0242B3, 0x740A1D69, 0x37C45A20, 0x2C660605, 0x00804FAD},
12685 {0xFA761EEB, 0x26F98859, 0xE807173B, 0x3BCD40C1, 0x4B602249, 0x75A2F035, 0x5E67F292, 0x42236FF8} } ,
12686 { {0x29A989AB, 0xB8127F1E, 0x83675BEF, 0x9EF0656B, 0x651ACDBD, 0xBE95366D, 0x8BDC2D07, 0x8335F733},
12687 {0x244EE0A6, 0xD9C12351, 0xEF3FB19A, 0xD527D146, 0x80F1D7DD, 0xA0F9C0F1, 0x4546FC8C, 0xA91D4FDD} } } ,
12688 { { {0xA45A1516, 0x41285E0C, 0xCC6FE75D, 0xBA652E4C, 0x0B461191, 0xA0F02166, 0x711F726C, 0x2C43A0FD},
12689 {0xFBA70373, 0x68A41C66, 0x89769D1A, 0x8445C72E, 0xA502144C, 0xBB3B316C, 0xC95BAC84, 0x96769E4F} } ,
12690 { {0x24C80FA5, 0x10A96EE7, 0x7273CF1D, 0x9B71BB99, 0xA859CBD6, 0x0AC88CCA, 0x1C1D4CDD, 0x792F2D63},
12691 {0x16E228F8, 0xBB4D0931, 0x775A3874, 0xDADE4CC4, 0xF31E4716, 0x1A6B226D, 0x490A2408, 0x35E449B0} } } ,
12692 { { {0xF7A75067, 0x330EB023, 0xB3FBB6C2, 0x97861B67, 0x70CBAFA9, 0x84AF5693, 0x4703197E, 0x15A6BDA2},
12693 {0xEB25F014, 0xFCC7F4E0, 0xE7F820AA, 0x997DCB4F, 0x8EF2587A, 0x5631193B, 0x2096A3A1, 0x36467E94} } ,
12694 { {0xBAAAF99E, 0xECD8F162, 0xAD8D4C62, 0xDA8910E5, 0x79530798, 0xB80A7A74, 0xF2DE7856, 0xB8BE1A20},
12695 {0x2DE45A39, 0x94F95478, 0x4404387D, 0xC29D96D2, 0xDD7C38E0, 0x48D06B00, 0xED1429C6, 0x8BCA93F2} } } } ;
12696 static const fp12_t var_expected = { { { {0x5A7DEA4C, 0xCA731A17, 0xE0C81EDC, 0x6B6FEEA2, 0x4A4F2B1F, 0xE4648E9E, 0xACEDF197, 0x3E1EA873},
12697 {0x2C808669, 0xE86C74CD, 0x1D7CCBA6, 0x3C6B0A47, 0x9A3BCEA0, 0xCAB30E18, 0x6EAAAADB, 0x11FAC3F2} } ,
12698 { {0x9060F486, 0x0AF3F6E4, 0x8790F0A9, 0x409A8CD9, 0xDAB422A6, 0xEBF7FFB3, 0xBE753A90, 0x3F41AD43},
12699 {0xE8AED874, 0x84446595, 0xCE4A8830, 0xDD863189, 0x1FAC3E58, 0x200EE107, 0x45882EF1, 0x950CD5C1} } } ,
12700 { { {0x44501E19, 0xF54A9335, 0x8F6AB996, 0xD78AB770, 0x30B3F98B, 0xC694B348, 0xBDEF3D70, 0x4098FAE0},
12701 {0x07B52C57, 0xC010AC94, 0x7C32DB37, 0x35FC5004, 0x0750A27C, 0x98BB7F8A, 0xA853965C, 0x7EC8BB4D} } ,
12702 { {0x4339C9B5, 0x2CEDEEF3, 0xA3030490, 0xF95AB329, 0xE8B752D7, 0xA6EEA8C5, 0xDA76AE6A, 0x944BDE4F},
12703 {0xCAF11D01, 0x4D46A8FE, 0xFB1A512D, 0xC0558E13, 0xBE5E66AE, 0x7F1EB5FE, 0x40E439FE, 0x99261773} } } ,
12704 { { {0x16E7675D, 0x7FA28766, 0xC6EAF6B7, 0xA2CCDF9A, 0x9CF08BD8, 0x999D220C, 0x357F356F, 0x3F3B9628},
12705 {0x6B6F2F17, 0xA7C0F227, 0x2E60569D, 0x48C51B71, 0xCBDEB2E4, 0xB6A6B68D, 0x561ABD72, 0x86A8FC54} } ,
12706 { {0x0481E2C7, 0xCFF3A4D7, 0x2B51F34C, 0xEBB1B3BB, 0x6DFC5DBB, 0xD1D504C2, 0x7DE77A70, 0x0C753829},
12707 {0x14072891, 0x897B7A96, 0xC24489E2, 0xD3426B1D, 0x9D01151D, 0x760B6451, 0x28DEA959, 0x3C3C439B} } } } ;
12709 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2961 a000");
12710 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2962 a001");
12711 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2963 a010");
12712 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2964 a011");
12713 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2965 a100");
12714 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2966 a101");
12715 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2967 a110");
12716 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2968 a111");
12717 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2969 a200");
12718 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2970 a201");
12719 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2971 a210");
12720 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2972 a211");
12723 static const fp12_t var_a = { { { {0x9C40C484, 0xCA2611A0, 0xEE747B10, 0x4CE37FBF, 0xCBEE3BFF, 0xABFD457F, 0x97A1B56F, 0x46D6226F},
12724 {0xD324ACCA, 0x2A357A4A, 0x3DA45361, 0x96BD4CDA, 0x84605723, 0x0AB2D85F, 0x8B3D87D1, 0x65FD7D38} } ,
12725 { {0x329AAF19, 0x95972C65, 0xC54183ED, 0x4F37A847, 0xAC0FD0B9, 0x96BBC7CF, 0xB51F7D31, 0x0E6E62B2},
12726 {0x11D7FC7F, 0xAAC902F4, 0xBE458746, 0x966D9C2E, 0x67339971, 0xF4F8E09B, 0x1838D075, 0x34D95F1E} } } ,
12727 { { {0x14D19528, 0x54EA6FB7, 0x66218F7B, 0xA969C6E9, 0x480B6259, 0xEABB903E, 0x88C6F8F7, 0x16277B44},
12728 {0x5D21844C, 0x3B925297, 0xF36AFF83, 0x83606DBA, 0xADCEB604, 0x9F0FE789, 0xF06D141B, 0xAAD64386} } ,
12729 { {0x57855E86, 0x50D6C52E, 0xA0CEB35F, 0x3C64A68A, 0x64D7FC7D, 0x5FC09FDF, 0x0EEE2A5C, 0x307F512A},
12730 {0x6AB193AC, 0x46860E66, 0x4B7B7171, 0x5E7B6D51, 0xBA9E153B, 0xE53811CA, 0xB25975EC, 0xB7FCF7F9} } } ,
12731 { { {0x2C0100A9, 0x15ACAB8C, 0x00E9B464, 0xEF160C4B, 0x0981FF94, 0xFC0DB349, 0xC38AA579, 0x3ECCBB87},
12732 {0x2F0C486A, 0x75499CC0, 0x72931F7C, 0x67E50133, 0x32F312D5, 0xDE1FF0FC, 0x39578C8F, 0x8EF00D98} } ,
12733 { {0xAE44F823, 0x693676C0, 0x29786363, 0x6F3279B8, 0xCE53EA32, 0xE7BCC2F5, 0x24319E16, 0x791BAB1B},
12734 {0xE0DDEC2E, 0xB1BBA574, 0x555570C4, 0x20189C6B, 0xFB4EC35B, 0xE367E9EF, 0xA47325C3, 0x9D05FF80} } } } ;
12735 static const fp12_t var_expected = { { { {0x31342191, 0x8F8121FF, 0x66503014, 0xED1CA0B6, 0xCB29A7B3, 0x0753BFE5, 0xCF13AD68, 0x740DEA25},
12736 {0xC8AF2460, 0xD6A41713, 0xAD9045EE, 0x850EA251, 0x1A3B786B, 0xACA86CCA, 0x71BBABCB, 0x88C25F16} } ,
12737 { {0x5AC830BF, 0x6B1D1A2E, 0x2BB4B85E, 0x94BB0801, 0x64C715E6, 0x9C986BFD, 0xF0418522, 0xAAF25A9A},
12738 {0x01893617, 0xD7353552, 0xAC2305AC, 0xAE0AEA49, 0x6DB50041, 0x15B2B8DD, 0x8DAA477F, 0x62871C4C} } } ,
12739 { { {0x459E91A2, 0xB445AE6D, 0x5C550427, 0xAD44B914, 0xCBF0979C, 0x70E27B98, 0x09A0A506, 0x50A50367},
12740 {0xB2E4039E, 0xE2A11033, 0x005D52AC, 0xEA4D4752, 0x2A8C9048, 0xDF723717, 0x661216AB, 0x468555F3} } ,
12741 { {0x724CE2A7, 0x419FCCAF, 0xB9F3AAEF, 0xFF0C6BD1, 0x5E55002D, 0xB6472FB4, 0x980F4BEB, 0x43982836},
12742 {0x7145F2C9, 0x409C7F66, 0xE4F0D857, 0xFA0E9155, 0x00F7D884, 0x32BCB056, 0x7576BEE3, 0x99A374B4} } } ,
12743 { { {0x2991E2E2, 0xD593D158, 0x2FD193E3, 0x0F4D7677, 0x106B2608, 0x8E0A3D3F, 0x6B20FEB9, 0x2367ADB0},
12744 {0x584C2FA8, 0x0B9C126D, 0x2D8DE75D, 0x9AD3CF3C, 0x8F8D22AE, 0x1997C4B7, 0x1DB00EEC, 0x1FE2DE6D} } ,
12745 { {0xA98AE568, 0xB8C54FF3, 0x468A7D20, 0x314523B7, 0x8759A73E, 0xADA88B81, 0x51F858CA, 0x5A26DA04},
12746 {0x34FBCA21, 0xFB31F812, 0x4D86F629, 0x2D132B4D, 0xA5E2B648, 0x6C778729, 0xBFF892CD, 0x1FCC63B4} } } } ;
12748 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2973 a000");
12749 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2974 a001");
12750 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2975 a010");
12751 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2976 a011");
12752 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2977 a100");
12753 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2978 a101");
12754 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2979 a110");
12755 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2980 a111");
12756 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2981 a200");
12757 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2982 a201");
12758 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2983 a210");
12759 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2984 a211");
12762 static const fp12_t var_a = { { { {0x8DE806C7, 0x563C2CD1, 0x2724320D, 0x254FA6B4, 0x3AC029C6, 0xA7FF2422, 0x2E3A24F5, 0x441F0E67},
12763 {0xF2491576, 0x2289A0E3, 0x21B81A91, 0x4BEF7275, 0x3BB825F6, 0x8D3C66F9, 0x4E3D4E62, 0x984D7415} } ,
12764 { {0x40564749, 0x25555D6E, 0x9C359B16, 0x04B0B355, 0x666F514E, 0xF2DCF502, 0x1FE1AF3C, 0x2A23E121},
12765 {0x1A3B68B7, 0x32BA591A, 0x43D8E524, 0xE7B89FB9, 0x5508CB31, 0xB6E1C5FD, 0xD493B888, 0x6EA8B296} } } ,
12766 { { {0x1B3A2D1A, 0x5FCDDD04, 0x9609B294, 0x2E027CC4, 0x5722AC28, 0xBFDAFDC8, 0x337CC2CD, 0x3CB4F089},
12767 {0x4EB320DC, 0x89438522, 0x68C7FCC3, 0x36459FD2, 0xEF3BF183, 0x764314D6, 0x157871D5, 0x51D42AFA} } ,
12768 { {0x52D3BEC8, 0xCE36B93C, 0x8DE31FCA, 0xF06C2747, 0x0103713A, 0x4D8EAA12, 0xA84BA776, 0x12B25B72},
12769 {0xC21B4255, 0x10965117, 0x7E5CD6F5, 0xB9F636B1, 0xEFC21288, 0x26868411, 0x2DDCEB08, 0xB17D2D01} } } ,
12770 { { {0xE0210DF6, 0x79A35489, 0x8C0F9317, 0x24F2FEBF, 0xDF5F9E24, 0x051119E0, 0xFAE554E6, 0x69C1D444},
12771 {0xEB948067, 0xF12EFFC5, 0xB003B150, 0x31D2BD04, 0x78D0E940, 0x5F96AF4A, 0x78735F7B, 0x404FC3E5} } ,
12772 { {0x514E8E4C, 0xABF08539, 0x0D954B17, 0x60CB61DF, 0x6B422A6D, 0xB6669DA8, 0x26B06020, 0x2C82966F},
12773 {0x1C1AA8E6, 0x9638F332, 0x9816C314, 0x8C7D1CE6, 0x9CC85E2B, 0x00583A1E, 0x54639F00, 0x34EE0A6B} } } } ;
12774 static const fp12_t var_expected = { { { {0x1DD2F1A3, 0x078460D9, 0xEC2C59B3, 0xC8B26672, 0xAEB928F0, 0x0D0CCE8C, 0x0CC3C8E2, 0x6CB5E096},
12775 {0xEDD78F3B, 0x5E686AA5, 0xFD3336E6, 0x52C20F06, 0x08B19EDA, 0x128C82C2, 0x5ECA0102, 0x49C1A322} } ,
12776 { {0xFB021DBF, 0xBCAC7DDA, 0xAADC02A1, 0x40480649, 0xDFBCBF48, 0x4CE4AF5C, 0x64045B0F, 0x82406E72},
12777 {0xA6CBB5B0, 0x8C020812, 0xFCD129D9, 0xB05491DD, 0xAD3A91E4, 0x5176233C, 0x2DC7B1AC, 0x39C4D14C} } } ,
12778 { { {0xFF95B424, 0x02762D34, 0x8E9FE3C5, 0x84DF6533, 0x81892A0A, 0x37761BB4, 0x57268C79, 0x9EF9A11E},
12779 {0x95FA103F, 0x50676B63, 0xEFC07190, 0xFE8C9BD0, 0x0E1EAB76, 0x2E3A0E99, 0xD518CE30, 0x5E01B931} } ,
12780 { {0x2E81668B, 0x067027F8, 0x21DDAAB4, 0x6339996E, 0x85292AD2, 0x93432875, 0x8443DA03, 0xB86C3B10},
12781 {0x68B09149, 0xF9C4401E, 0xE78F4B96, 0x1F78DD3E, 0x2BB5664D, 0x313FEA94, 0x11EB0CF4, 0xB400E77F} } } ,
12782 { { {0xFE6AEEB6, 0xB92556F6, 0x25E8BB8A, 0xD9EFB715, 0x978FE0AF, 0x3A14E014, 0x6160D1A9, 0x553C1450},
12783 {0x16D25EB6, 0x38387FA1, 0x95AD1CB0, 0xB7F01CE1, 0x27A68DA8, 0x49266457, 0xFA9DBA2F, 0x25868354} } ,
12784 { {0xB8D9BA40, 0xE7AAF53B, 0x243D7B31, 0x707DEBFD, 0x78B33650, 0xAB18B101, 0xD4014C1D, 0x110D39A2},
12785 {0xBFCCE39C, 0xF63B04CE, 0x80F14E5C, 0xAAC7D6BA, 0x0A481BBC, 0x80A1F879, 0x3C072B16, 0x50369BFC} } } } ;
12787 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2985 a000");
12788 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2986 a001");
12789 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2987 a010");
12790 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 2988 a011");
12791 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 2989 a100");
12792 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 2990 a101");
12793 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 2991 a110");
12794 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 2992 a111");
12795 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 2993 a200");
12796 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 2994 a201");
12797 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 2995 a210");
12798 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 2996 a211");
12801 static const fp12_t var_a = { { { {0x83930C68, 0xEA571727, 0x700768D4, 0x10751E42, 0xF90128AE, 0x43B7F5A4, 0x69822183, 0x53CC23D8},
12802 {0x0E83C218, 0xA5D6796F, 0x8B8B5D0D, 0x30939271, 0xA918962A, 0x16BB0E00, 0x1E909124, 0x3458D0B2} } ,
12803 { {0xE5F49C6F, 0x02FEC2D0, 0x844B25E7, 0x5CB97649, 0xD150B956, 0xF539DFCD, 0x81A3DA0C, 0x018E07C6},
12804 {0xF7F50C99, 0x080BC2A1, 0x776EC1E4, 0xA061CA91, 0x8120A85D, 0xFD611309, 0xF3D03CD6, 0xAF95BF3D} } } ,
12805 { { {0xAE761C4A, 0xFCC79A25, 0xAA96D0B8, 0xF9849505, 0xCC45F46D, 0x3FE6640F, 0x6AF015AD, 0x81BE60E6},
12806 {0x250B85B1, 0xEA56F1FE, 0x0C3915D0, 0x62E004A9, 0x5095E071, 0x59DB286A, 0x70A09AEE, 0x29AC235E} } ,
12807 { {0xF28F9D2B, 0x1F4065F4, 0xB0E2E434, 0xC79C1873, 0xB0401F6D, 0xDC239D73, 0x2210100B, 0xA506210E},
12808 {0xD5D85E3E, 0xB1A03794, 0x07517A17, 0xC57419FB, 0xCAB76DC3, 0xF4ECC8EC, 0x31253891, 0x7A7DAEDD} } } ,
12809 { { {0x07A74247, 0xF514B453, 0xA336732C, 0xE8BF8C87, 0x811C1CF1, 0xC3BADB16, 0xE46221A1, 0x7CE5A910},
12810 {0xD6D541F8, 0x08B2F204, 0x994AC381, 0xCF0DA0D6, 0x98349077, 0xF2E4DE8C, 0x554C79B8, 0xA6BE742E} } ,
12811 { {0x8261181C, 0x48A9F597, 0xCF76C0E8, 0xBCB720B0, 0x857F3DB1, 0x2E63CACE, 0x30D21EAC, 0x59C06E50},
12812 {0x5CE53094, 0xD91DC5E0, 0xAF66BF1D, 0x02DFB8B7, 0x9F562D67, 0xACE8F346, 0xF7D2E5DA, 0x1ECDF8A0} } } } ;
12813 static const fp12_t var_expected = { { { {0xFDB88F40, 0xDA565AB5, 0x321A06BB, 0x5DC008E2, 0x0F22F173, 0x8BF21A69, 0xEB5F4556, 0x2A5FFBF3},
12814 {0x489799DA, 0x7CFEEA44, 0x916C7010, 0xCDBF8C44, 0xF4DD20C6, 0x97A6A4EE, 0x37D99690, 0x1F70E72B} } ,
12815 { {0x4BA14DC4, 0x75D1546F, 0x5D8F34AB, 0xB1A80FE0, 0x73A8B384, 0x532B26DB, 0x73D3B17E, 0x891EF725},
12816 {0xE0FCEB12, 0x38AA34FA, 0x9CB3F457, 0x463C7565, 0x527E4C9F, 0x9856677A, 0x560A45AD, 0x14F2E5BD} } } ,
12817 { { {0xE5D34797, 0x87F3CE34, 0x49525ACA, 0xE84DD0C3, 0x6BD511A4, 0x865A716F, 0xD904C21F, 0x6D5B5E4B},
12818 {0x81CDA268, 0x8667B63C, 0x36FBBA33, 0x0855C810, 0x18C5A32B, 0x3F74FEF2, 0xC8831655, 0x4151A878} } ,
12819 { {0x84D03147, 0x1CEB1524, 0x7CADE427, 0xDFB54240, 0x6D7AFA87, 0x59BFB36A, 0x4CED6A5B, 0x010AF799},
12820 {0x67741EE7, 0xA8B6E29C, 0x3363CCA9, 0xD03F44CE, 0xC91895F4, 0xDA22F4C6, 0xD590B376, 0x2E3B891A} } } ,
12821 { { {0x231B6B71, 0xF28D92AC, 0x21A80126, 0xD8EEF367, 0xC36B9E50, 0x6336C2C0, 0x1359A494, 0xB361AD2D},
12822 {0xEA7546AE, 0x5B073DA8, 0xDE5CFEF0, 0x10A83271, 0x2ADC1653, 0xA80A0BF1, 0xEB767696, 0x9E18F0F2} } ,
12823 { {0x032E11AD, 0x9FEBCE4C, 0xF115C1C1, 0x8EE1B357, 0x3D25D07E, 0x2FDBBA09, 0xFC027E02, 0x12119923},
12824 {0xA8FA185D, 0x6DBE6D0F, 0xA0F390C3, 0x3ACCB8F9, 0x0369B4BE, 0xFB105681, 0x5B1A0FF2, 0x0D87B972} } } } ;
12826 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 2997 a000");
12827 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 2998 a001");
12828 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 2999 a010");
12829 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3000 a011");
12830 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3001 a100");
12831 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3002 a101");
12832 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3003 a110");
12833 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3004 a111");
12834 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3005 a200");
12835 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3006 a201");
12836 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3007 a210");
12837 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3008 a211");
12840 static const fp12_t var_a = { { { {0xD5C7EF52, 0x20B5807F, 0xEDBD1899, 0xD1559002, 0xEC488661, 0x9AF5689C, 0x8081B2CB, 0x11DE9C3A},
12841 {0xA47AD916, 0x4AE1C436, 0x1DEA71E2, 0x4563C8CF, 0xAC6FE877, 0xB529309E, 0xF4F24C8F, 0x06AF835B} } ,
12842 { {0x3C73A599, 0xC4805F58, 0x487FED7F, 0x42DEFB05, 0x784C1855, 0xB3DA7B38, 0x933AB18E, 0xA5DE1B6A},
12843 {0x5F370003, 0xC5370AFA, 0x531345FF, 0x99239091, 0x23A01278, 0xE2EB19CA, 0xECBA9933, 0x50CFC4B7} } } ,
12844 { { {0x83F559AF, 0xC2300107, 0x9B3B1EDF, 0xE350E205, 0xDDE8F881, 0x857B7803, 0xA4E582C5, 0x3DE84F7E},
12845 {0xBF3B71CB, 0xF42A793F, 0x53E04D92, 0x19C75F9C, 0x03273655, 0x571F68FC, 0x38DE8DB1, 0xB80D122A} } ,
12846 { {0xC9C22AAA, 0xDD516B77, 0x8447F9DA, 0x6288794C, 0xB19ACAE9, 0x347117F9, 0x332EB4EB, 0x12E99361},
12847 {0x5B54A955, 0xC0CD2CB1, 0xDF3F8119, 0x587D0BA5, 0x841DC743, 0x68CB8969, 0x381CFAC6, 0x6A36E785} } } ,
12848 { { {0xBBE7019B, 0x2372D44B, 0x13A52048, 0x263BC05F, 0x7C09528E, 0x4975570C, 0x3B7E9F95, 0x887AC2C0},
12849 {0xA8985DC8, 0x51101C36, 0x24FDA10B, 0x19C63017, 0xCB3D6F52, 0xAF1F9D35, 0x4797A212, 0x17BFF14B} } ,
12850 { {0xD141E6A2, 0xDAEBB087, 0xEAEE420A, 0x23D2EDE7, 0x5711F054, 0x771126F9, 0xF92531EF, 0x28CB84A2},
12851 {0x5CE7BBE2, 0x113F6E93, 0x90082006, 0x5B9340C4, 0x3C157FC6, 0x0364FFB9, 0x03C3BCDE, 0xAFEB5B37} } } } ;
12852 static const fp12_t var_expected = { { { {0x4B95A0D6, 0xA07CB6EA, 0x09855E36, 0x9BFD81A7, 0xDF46D53D, 0x562CAF63, 0x0668F42D, 0x15589DBF},
12853 {0xE56BE6E2, 0x37586F7F, 0xA7FFB69D, 0xAF83CDEA, 0x0CBA651E, 0xC5F1D311, 0x8414C5E0, 0x22FF22C5} } ,
12854 { {0x8B662814, 0x5AACF952, 0x453DB26E, 0x9FD8AD7D, 0x6A1F08E8, 0x0CFB0067, 0x746EAE1F, 0x8F6C2F6C},
12855 {0x9AFDBCB6, 0x0160A4D3, 0x19D82FAF, 0x6467E1BB, 0x00799271, 0xB4F329C0, 0xCA883F0E, 0x877694DA} } } ,
12856 { { {0x9A04FC52, 0xC508F7DE, 0x57117FF6, 0x2596E0AC, 0x0BF21BAF, 0xA0512C76, 0xC332E565, 0x2A0680F2},
12857 {0x7ED482DF, 0x6A7EA185, 0x49754FC8, 0x64A582AC, 0xC92B0488, 0xAAA0DCB2, 0xC829B6AF, 0x8E5ACA2B} } ,
12858 { {0x9538DE7E, 0x781E3C00, 0x171EBB3A, 0x44F562B3, 0x1CABB2F9, 0xCC97FD71, 0xA29035E5, 0x4D63D828},
12859 {0x945A7051, 0xD81D0840, 0xAC12F563, 0xF59F4917, 0x476381C8, 0x8B4B0175, 0x6E72AE55, 0x53BFA52D} } } ,
12860 { { {0x53FCEBE4, 0x7050A0C9, 0xE4B1CFBE, 0x70A7FFF9, 0x2F0E0F0D, 0xCF142ECF, 0x8BFA6E88, 0x3F185DB1},
12861 {0xDA454121, 0xE487C0A2, 0x8A05EAB2, 0x5FF4E1B1, 0xC73C5CE7, 0xB7EAB5CB, 0xCC0390E5, 0x6F61E4BA} } ,
12862 { {0xED5FB652, 0xD9180D6E, 0x0C798DB0, 0x39183FD7, 0xEB83F234, 0x578D9D2C, 0xA20178D8, 0x01A9E4A3},
12863 {0x9567C4C1, 0x17C92770, 0x2CB87EC2, 0xE0D77A66, 0x04A99220, 0x16EFC7FC, 0x4D1537E4, 0x25BE1DF8} } } } ;
12865 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3009 a000");
12866 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3010 a001");
12867 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3011 a010");
12868 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3012 a011");
12869 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3013 a100");
12870 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3014 a101");
12871 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3015 a110");
12872 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3016 a111");
12873 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3017 a200");
12874 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3018 a201");
12875 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3019 a210");
12876 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3020 a211");
12879 static const fp12_t var_a = { { { {0x60F13C7F, 0x8DCFB33F, 0x15D6E265, 0x7B1E05A4, 0x48A7715F, 0xB84F865D, 0xAB8FCCF4, 0x054C55E8},
12880 {0x6B362B55, 0xA8924A26, 0xCE47ACB3, 0x615940C4, 0x7E5449CC, 0x80884350, 0x4934E6B0, 0x64DE9C4B} } ,
12881 { {0xFCD57797, 0x036289F9, 0xE26875DF, 0x8E7B533C, 0x930B0FC3, 0x46AA2543, 0xCC2E2886, 0x6ED4E062},
12882 {0x0AE3BF0A, 0x00C0ABF0, 0xCD6560BF, 0xAA1EEF48, 0x741FF234, 0x7CB5EC07, 0x36716F05, 0xA7A76C36} } } ,
12883 { { {0x19B28EA7, 0x47BE02D8, 0x096AD416, 0xEBCC7B2F, 0x6A374B9D, 0x9C3B7BD0, 0xDB3145E9, 0x3C9DCD95},
12884 {0xAE0164F8, 0x418837C2, 0xB8A27A21, 0xF88B4EC4, 0x455DB286, 0x92DBEC7F, 0x27C1FAB2, 0x2856DC56} } ,
12885 { {0xF258EB15, 0xA00B0109, 0xD47C01C4, 0xABE86D59, 0x8E980217, 0x672E5BD6, 0x95E96921, 0x6DB8E0B0},
12886 {0xAA827EAB, 0xD65990D4, 0x2A2BCE0B, 0x39EAE263, 0x0026062F, 0x9DE38AF1, 0x78DD928A, 0x1EF2F438} } } ,
12887 { { {0x53163813, 0x99D3455C, 0xFFC505EA, 0xA3E0801B, 0xB2A7CFE1, 0xB32CF898, 0x364C1EF3, 0x2A3DD6B6},
12888 {0xB82F5950, 0x669D5D4C, 0x76CC24EC, 0xD47AB87E, 0xF39BFADD, 0xB1BDDAA9, 0x873E6226, 0x31E089E0} } ,
12889 { {0x5A98C2AF, 0xF983C98C, 0x29C69754, 0x8121EB5F, 0x6E7B6456, 0xA494A44A, 0x3B8B71ED, 0xAD8E05AA},
12890 {0xA9F7216D, 0xDAA6EEC7, 0xB6EB7A6A, 0x371C0AC1, 0xB0ED9B66, 0x28B65D9F, 0x313025BF, 0x1476169B} } } } ;
12891 static const fp12_t var_expected = { { { {0x441688BF, 0x7C6904B4, 0x7D4C4111, 0xAB6047CF, 0xF4913206, 0x555FABE7, 0x4A7AD308, 0x9116E731},
12892 {0x7E7A2FB1, 0x70698538, 0xA86E7472, 0xC302FF08, 0x351FE791, 0xC0EEFA6B, 0x858E2F75, 0x345E473D} } ,
12893 { {0xE1864439, 0xEE9AF170, 0x3C5B0C29, 0x194728B7, 0xA306A88A, 0x70BBB27E, 0x1BF892A3, 0x73DDAD6C},
12894 {0x61BE2F1C, 0x3BDBB374, 0xC993FC46, 0x0D455305, 0x72C10E09, 0xEFC159C7, 0xFB931FBA, 0x28912123} } } ,
12895 { { {0xA8DCFFE6, 0x29535FC9, 0x6CD18E38, 0x109EA00C, 0xE5E0054C, 0xF91F3B31, 0xC5EEFD84, 0x44B1EB06},
12896 {0x91B299DB, 0x1D87E491, 0x8E961AD4, 0xB274F426, 0x1C1D7291, 0xB9ACF15A, 0x89D43F1F, 0x1400FA69} } ,
12897 { {0x23FF68D5, 0xF87FBA17, 0x6AF704ED, 0x1089C92E, 0x388E8CC2, 0x53AFE991, 0x453798E9, 0x426EAA9E},
12898 {0xE855C992, 0x19D1F0B9, 0x4FA20432, 0x65632D43, 0x365F0913, 0x0660B21C, 0xA869F5AA, 0x063A816B} } } ,
12899 { { {0x763B19B7, 0x75CAADFF, 0xFE3F82B5, 0xC5A65DD0, 0x3E050CD0, 0x7D50055C, 0xBFAEAD40, 0x2ADEC5C2},
12900 {0x0A8589D6, 0xA571ED6D, 0xC4A11BA5, 0x8F856358, 0x2871191E, 0xBC276A52, 0x86B0947A, 0x6FE7CD01} } ,
12901 { {0x138FA968, 0x53E099FA, 0x91CDA70D, 0x2FBC20D0, 0x17D28D9E, 0xBDCA53BE, 0x57463A1D, 0x8F47F82A},
12902 {0x85E16DF2, 0xE7206DCF, 0x8443169E, 0xE4B73D5A, 0xA95C38DC, 0x26A85FFB, 0xB10AA436, 0x4CDDC2B0} } } } ;
12904 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3021 a000");
12905 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3022 a001");
12906 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3023 a010");
12907 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3024 a011");
12908 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3025 a100");
12909 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3026 a101");
12910 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3027 a110");
12911 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3028 a111");
12912 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3029 a200");
12913 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3030 a201");
12914 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3031 a210");
12915 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3032 a211");
12918 static const fp12_t var_a = { { { {0xB6A5E6E7, 0xCB0C6C0F, 0x6129A577, 0xAC73F4B6, 0x48D5AF37, 0xC35EE6D4, 0xA11D2A50, 0x57350572},
12919 {0x5717F2A1, 0x5AFADD3F, 0xEDB66380, 0x35AFBB88, 0xAE11B05B, 0x99DB5E32, 0x133E65DF, 0x346D6D92} } ,
12920 { {0xDE55FFCF, 0x56AA2B26, 0x48B4A241, 0x18D2851F, 0x5B2BF792, 0xC3D74AC5, 0xA6DC3EFF, 0xB5D21A5B},
12921 {0xB0907087, 0x522741D5, 0xDD985566, 0xABD675F3, 0xABAA91FB, 0xE4B877AD, 0x4A676F57, 0x0D9573BA} } } ,
12922 { { {0xC4571443, 0x26E0B68E, 0x184A1902, 0xD40E3046, 0x58A9BC87, 0xA3EB4BEE, 0x461D75E0, 0x1CB5BE53},
12923 {0x0C7F6C7C, 0x69F7D843, 0x08D910F4, 0xEB6995BB, 0xA0A56514, 0x1E20D130, 0xF3A913C9, 0x8C55C8EF} } ,
12924 { {0x24472D5E, 0xFFA1F951, 0x9A8AC0F4, 0x7A4A276E, 0x7FD30FD1, 0x8EF6D3BE, 0xBE3A30F6, 0x0D6438C9},
12925 {0xA1B920FC, 0x8941DC05, 0x5C8CEEB0, 0x7841BCBA, 0x7200630F, 0xA03B8C0F, 0x2A561FAE, 0x1F715D53} } } ,
12926 { { {0x4A1E6228, 0xF09F0641, 0x0A7BD5FA, 0x5D47B512, 0x0612AA41, 0x0F34E240, 0xCC0F676C, 0x30CD4E63},
12927 {0xE34E302A, 0xDB687952, 0x04DD1A08, 0x115827F1, 0x46FC3FFD, 0x047EBD37, 0x4DFD77BB, 0x7A284EA1} } ,
12928 { {0xD5156CAE, 0x3DD280DA, 0x85603D7B, 0xAC7E09B8, 0x0053006B, 0xCCF3D419, 0x6C96DC92, 0x3E86C4A3},
12929 {0x87D422C6, 0xC7ECD1D7, 0x6EDA8484, 0xB8DABBE7, 0x816D89ED, 0x2232CF92, 0xF941AE68, 0x8C4A3B83} } } } ;
12930 static const fp12_t var_expected = { { { {0x2746F021, 0xECA82CED, 0x89D3F665, 0x87D66CCF, 0xD8A6BE3C, 0xB311EB3E, 0x0672BC25, 0x7375519F},
12931 {0x41F5C205, 0x82E0B20E, 0x8B68BF70, 0xC6DF2F07, 0x1A1BE326, 0xA3F0018D, 0xD12452A7, 0x4C9CB154} } ,
12932 { {0x8C614042, 0x30CE6EB6, 0xF7B01FAC, 0x3143D063, 0x725168AD, 0xB8D4744A, 0x2D156E54, 0x9C518894},
12933 {0xC3BD3678, 0x86063337, 0x93801D82, 0x93C622E5, 0xBC12B366, 0xD92785A5, 0x46C569EB, 0xB52A0747} } } ,
12934 { { {0x58CA7B63, 0xFE4F1B18, 0xE4EA38D9, 0x150EE398, 0xE3C5D78C, 0x54EEA64F, 0x1A738B0A, 0x0B728FB4},
12935 {0xD7055D71, 0xAF5C07A8, 0xE9D3EA85, 0xB44A314E, 0x046463EA, 0xBA32896A, 0x4A2F71E9, 0x1A6A167D} } ,
12936 { {0x1B241676, 0x832035EA, 0xCB97A1B7, 0xAD04E002, 0xEB3B5181, 0x95EFDDFF, 0x311EB08B, 0x0B9EF1DD},
12937 {0x12AF355D, 0x5EE3E919, 0x5EA6D20D, 0x6E44009B, 0x83933889, 0xF60C27E9, 0x663CEDA6, 0x3D63C982} } } ,
12938 { { {0xB8DC62BB, 0xB87E0E39, 0x45EB9C77, 0xF9434845, 0xE5D518DB, 0x4D78F8B1, 0x8522A8D4, 0x19099F03},
12939 {0x6B9C110C, 0x05DCA1AF, 0x7C6C0A13, 0x38529BCB, 0xC6944106, 0x9F0DCB44, 0x01BB5E07, 0x22AC6D83} } ,
12940 { {0xC4230B67, 0xAD431F4E, 0x46E2C627, 0xAB0CC08A, 0xA5CE249E, 0xF62E037C, 0x612008C5, 0x43829F4D},
12941 {0x1969E13D, 0xD3FEB804, 0xE90C85DC, 0x11685F58, 0xAAFE1F03, 0x6FF5290D, 0x938F22DC, 0x9A4CC5B8} } } } ;
12943 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3033 a000");
12944 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3034 a001");
12945 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3035 a010");
12946 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3036 a011");
12947 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3037 a100");
12948 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3038 a101");
12949 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3039 a110");
12950 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3040 a111");
12951 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3041 a200");
12952 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3042 a201");
12953 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3043 a210");
12954 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3044 a211");
12957 static const fp12_t var_a = { { { {0xF25F4D13, 0x71126EEB, 0x9E807DF2, 0x4F26C39B, 0x79082016, 0xCC7F24BE, 0x1BED5131, 0x1BB0D395},
12958 {0x82B79436, 0xF6F8F92A, 0x47496228, 0xAE3878EF, 0xC80B6E0A, 0x140BA883, 0x0BA8E4C1, 0x8744CB71} } ,
12959 { {0x363344A3, 0x57F7F179, 0x9EA9ADEE, 0xA5F52CA7, 0xB35AF7BC, 0x4A76669E, 0x57561199, 0x16CCD65D},
12960 {0xA85FE666, 0x540771C4, 0xA8FB68A6, 0x61219CBE, 0xACE073C8, 0x3654390F, 0x60452E98, 0x211DAF74} } } ,
12961 { { {0x3BEEBA0A, 0xF47AAEA5, 0xC085D525, 0x781EF775, 0xDE90A545, 0xB2F4A376, 0x5BE9D798, 0x36BCBF59},
12962 {0x925DDE43, 0x0416E033, 0x3BF8D2B9, 0xCBEE4231, 0x4EFEDC65, 0x1461FBDE, 0x142E6AAB, 0x3AEC855D} } ,
12963 { {0x17B6BABF, 0x93CD0401, 0xCC8CC5CB, 0xA61ED7CD, 0xBCD81B89, 0xC1A8C950, 0x27EEF8A1, 0x4A7F557A},
12964 {0xD1FEE105, 0x74EBB7EE, 0xF09BED59, 0xB4003EA0, 0x17026C5A, 0x955DC4B2, 0x060C8D30, 0x951B922C} } } ,
12965 { { {0xF79A50B6, 0xBFF678A7, 0x545CA0FD, 0x19B50035, 0x59B45F04, 0x7B00946C, 0x3684F893, 0x372CF401},
12966 {0xBB590973, 0x4CF2AD6B, 0x48189E46, 0x6F81D8A6, 0x0032624E, 0xCD9D9ACB, 0x51277147, 0x1C4600E9} } ,
12967 { {0xF89E47EE, 0x3DBB8606, 0xF63518E7, 0x7EA6FB90, 0x472194C4, 0x087A943F, 0x05B05BEF, 0x35D1C0A8},
12968 {0x85BFC958, 0x742319AB, 0x30EC704A, 0x7F1BDB80, 0xEE65DDCB, 0x164EE177, 0x139A1407, 0x41E0FF84} } } } ;
12969 static const fp12_t var_expected = { { { {0x403A72BD, 0xEF5EA09D, 0x50B9B2B3, 0x43E4A9AB, 0x0759E897, 0x1EA9D0A2, 0x3F03A1C9, 0x720ABDF1},
12970 {0x23C67E69, 0x7F532A33, 0x053F26F5, 0xC92EF3EC, 0x5EC33259, 0xFD841D3E, 0x6CB60B4D, 0x00BAB1C8} } ,
12971 { {0x232B6C48, 0xA9C294AE, 0x3FAFB924, 0xE5B78266, 0xAE2D57A8, 0xC1578CD0, 0x5C0E6F4C, 0x082B49F3},
12972 {0x1A0EFF64, 0xF6AB776A, 0x1F3EECFE, 0x40444F53, 0x7A473BE7, 0x7C3FEABF, 0xB837BB1F, 0x3287DECE} } } ,
12973 { { {0x4D2B90E1, 0x6C9C0E97, 0xBDBBB5A1, 0x3B83A8F3, 0xC3B45CA2, 0x94D903AF, 0x57ED1DE8, 0x8092DBEB},
12974 {0xA9F41A57, 0x9A84FB0C, 0x6CB510FE, 0xB2212210, 0x6F9B944C, 0x1A295B7C, 0x4342EE7D, 0x925C3AEC} } ,
12975 { {0x8E9F170B, 0xA61DCCFB, 0x66DA2075, 0x2C79BB1F, 0x448B0090, 0x743DA335, 0x63F43BF8, 0xA14BF322},
12976 {0x08FE79F3, 0x2CE746ED, 0x19315105, 0x82FAFF00, 0xB4891F4E, 0x19B4C93A, 0xE44B54DB, 0x2287158E} } } ,
12977 { { {0xE26E7669, 0xEFBD2CEA, 0x64AC71C1, 0x66E8F2D9, 0x55990423, 0x4543A985, 0x9875A551, 0x802FEA32},
12978 {0x41685741, 0x77CE7E04, 0x740CF3BC, 0xA2CD70EC, 0x0EE55E10, 0x34BCC62C, 0xFD672CA3, 0x15D11954} } ,
12979 { {0xCD43B416, 0x4252B10A, 0xFC77A562, 0x4DEBA3C5, 0x3CBAED75, 0x07729ED0, 0xC989EF0E, 0x585A7A59},
12980 {0x96151CE8, 0x4E3B0E8D, 0x4686B11D, 0xDD1D8E25, 0xF6533AE6, 0xBA41846B, 0xB016DAF8, 0x37359295} } } } ;
12982 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3045 a000");
12983 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3046 a001");
12984 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3047 a010");
12985 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3048 a011");
12986 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3049 a100");
12987 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3050 a101");
12988 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3051 a110");
12989 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3052 a111");
12990 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3053 a200");
12991 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3054 a201");
12992 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3055 a210");
12993 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3056 a211");
12996 static const fp12_t var_a = { { { {0xCBA23897, 0x181B0CCA, 0xC341BE9D, 0x3CD92C17, 0x1188276F, 0xEEF3E6EA, 0x9174B8CB, 0xA761A6DE},
12997 {0xA5389378, 0x1584949A, 0xD42B744F, 0xA31B0290, 0x0539E5D3, 0x086373DD, 0xA93F54F7, 0xB45CBA00} } ,
12998 { {0xE593F3B4, 0x9A26B0C2, 0x5B844C30, 0x472217ED, 0xD0C552FC, 0xE25C291A, 0x18FB1279, 0x18AA6BAB},
12999 {0xCED4EC84, 0x9AB51A7B, 0xA350C7E3, 0xDD802A45, 0xAC5962E5, 0x7C292684, 0xB0841E97, 0x673CCF11} } } ,
13000 { { {0x9BE3CBDD, 0x4BE32E86, 0xCC57FDBC, 0xC0FFBD5B, 0x8810FE3B, 0xDC63F2AC, 0xD6C64D9F, 0x9AF88ADB},
13001 {0xF7FA44DE, 0xA9852545, 0x4909BF41, 0x6E0CE3EE, 0x87D989F0, 0x8CD60FC6, 0x0437FA14, 0x8B1EF4E1} } ,
13002 { {0x8402581E, 0xF4CA6473, 0x63B33913, 0x09BAF47A, 0x7E29CF22, 0x1768B63E, 0x48A496FB, 0x7C41620E},
13003 {0x54B97564, 0x2D7ED193, 0xB3099DE8, 0xD851618E, 0x7A7DBC3B, 0x8F17921E, 0xC455E176, 0x91D0B8F5} } } ,
13004 { { {0x73B02FB9, 0x9D5B54E8, 0xACFB7A9D, 0xC373E529, 0x38ADA28D, 0x0A0994B6, 0x2C79CB7A, 0x512F698B},
13005 {0x5B15FDF1, 0x4F7505E0, 0x0FDBDB12, 0xD9C6DA13, 0xAC0DDA7E, 0x20A22891, 0x4BE16FAE, 0x295E6F8C} } ,
13006 { {0x1B20A9F7, 0x92B92593, 0xA05A6180, 0xBB27CFD6, 0x27816F60, 0x74560838, 0x3DF5D7CD, 0x2F1E6C4F},
13007 {0xBF5BE955, 0x771D9E14, 0xC8AB0E97, 0x75D341A3, 0x80A508BA, 0x17C4FBA0, 0x37AB6656, 0x4521380A} } } } ;
13008 static const fp12_t var_expected = { { { {0x7A2E2346, 0xC42E448A, 0x0E773E89, 0xD7AE8427, 0xA7E32FB9, 0x2CBA0DA0, 0xDF2F78A8, 0x2E532CF1},
13009 {0x6D548993, 0x53F8E688, 0xFD4F2014, 0xD56F4ABE, 0x8C55629F, 0x6D137EE4, 0x987CF600, 0x0881C607} } ,
13010 { {0x486429E7, 0x0E4AAE82, 0x8E0BE631, 0xE6068D41, 0xA4BC5344, 0x35EB5019, 0xD13C7F37, 0x2E31AC1D},
13011 {0xFFC4B190, 0xCC89B772, 0xF8678AFD, 0x64A28FBB, 0xEBCF7723, 0x875B359D, 0xA87BF677, 0x66C3BC9F} } } ,
13012 { { {0xC24F255A, 0xAF70FC9A, 0x4B4B40A0, 0xAE036A99, 0x9A4FA506, 0xB82C7E75, 0xC6538635, 0xB62E01A5},
13013 {0x54C7BAED, 0x81B48A77, 0x0E13F6F7, 0x76D0A985, 0x94FF61C3, 0x99BDAB54, 0x80E0453A, 0x760872CB} } ,
13014 { {0x8D9CF2B1, 0x21EC7FEC, 0x722878B6, 0xA2475ABF, 0x542D718E, 0x60D62859, 0xA6C840D6, 0x2929448E},
13015 {0x68C1BED7, 0xE345662D, 0xA89F0731, 0xD87C62C1, 0x6F9825C5, 0x68755DE9, 0x1B955009, 0x6F0EE606} } } ,
13016 { { {0xF7AC9F94, 0x17E8DAB6, 0xDC8F586C, 0x61C31A30, 0xA342EA8D, 0x4BF461E7, 0x382E421C, 0x8E97055F},
13017 {0x0CC7C2B7, 0x06CE3FCC, 0xA52BC521, 0xB9FF2E20, 0x2744982F, 0xE58E7561, 0x75B03CE5, 0x9F0675EC} } ,
13018 { {0xF2C8012E, 0x02A312CD, 0x07B1598B, 0xF80B6C68, 0x1D09F6BD, 0x939DFAA1, 0x174DB967, 0x59E6EB18},
13019 {0x84749DBE, 0x50FB6E8F, 0x431C41DE, 0x39C1C804, 0x3F60769C, 0x0CB0627F, 0x27A02472, 0x80802E79} } } } ;
13021 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3057 a000");
13022 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3058 a001");
13023 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3059 a010");
13024 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3060 a011");
13025 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3061 a100");
13026 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3062 a101");
13027 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3063 a110");
13028 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3064 a111");
13029 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3065 a200");
13030 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3066 a201");
13031 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3067 a210");
13032 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3068 a211");
13035 static const fp12_t var_a = { { { {0xF92409BF, 0x58E5E5E1, 0xC9E61A0C, 0x4B13B63B, 0x4A8F591C, 0x3F4011FD, 0x7BFE09F3, 0x5593254E},
13036 {0x777079E1, 0x4F959DC4, 0x8C1F5500, 0xECE166C2, 0x9C03F08C, 0x8EF33692, 0x65268216, 0x15D2313D} } ,
13037 { {0x189B9548, 0xBD112AB8, 0x244CE6D5, 0x88002842, 0x995C1AB8, 0xB705CDB9, 0x612987CE, 0x2C698B35},
13038 {0xB71E71DE, 0xBFF75E8C, 0x491F63EB, 0xBF6E7D91, 0xE6D96813, 0xDD5E23EE, 0xF136A5EA, 0x0B97CD8E} } } ,
13039 { { {0xD6503C68, 0xC3253F34, 0x8DA661C7, 0x606072AB, 0xE69B5E28, 0x426AC538, 0xAC5DDD62, 0x2D16E2A7},
13040 {0x923BECE8, 0xF2FD43B5, 0x56313DAE, 0x9B0658CE, 0x2D3B16D7, 0xA21BAA18, 0xF9E37CA1, 0x1E00A8AF} } ,
13041 { {0xBF910D08, 0xBA6C1AE4, 0x81CACF48, 0x6743D737, 0xA9586611, 0xAD3B3FB6, 0x59B2CEAD, 0x41723F40},
13042 {0xE3D82439, 0x4D35A2FF, 0x9EA0C5C7, 0xBBB016A8, 0xD356AE51, 0xA79BC458, 0xDBBE9A6D, 0x6C7E40A1} } } ,
13043 { { {0xB237767F, 0x2606204B, 0x609C6E24, 0x0B812E98, 0x346CCF73, 0xDDEB73DC, 0xA6316F94, 0x620D80BF},
13044 {0x18A39AB0, 0x7E55159A, 0x7C26E5CC, 0x15386875, 0x2F0F192B, 0x1912EAE8, 0x72653003, 0x3F90E435} } ,
13045 { {0x1C6B5B49, 0xD283AA5B, 0xF7D5D11E, 0x73BD93A0, 0xD28AB00C, 0x1A7CC1F0, 0x4ED46F6D, 0xB212AC97},
13046 {0x8AA81FB8, 0x6AD44E3E, 0x5B492039, 0x61391729, 0x1DA9794C, 0x43524C10, 0x9BFD8A0A, 0x35F4433C} } } } ;
13047 static const fp12_t var_expected = { { { {0xD2D3A17D, 0x612C66FB, 0x57F50A52, 0xD82297E2, 0x88041C7B, 0x5F076944, 0x6A755EFB, 0x4E059D38},
13048 {0x101D3DC4, 0x92E3FD97, 0x8646D066, 0xAF964F4D, 0x4E2A1B94, 0xD6FA2554, 0x3BAD35B4, 0x1668AC60} } ,
13049 { {0xD6DB6164, 0x1B5B29B7, 0x6D94DDE8, 0x3A71F100, 0x5209AA52, 0xF1779E8D, 0xB4A72570, 0xB6109A6B},
13050 {0x8E8E22EA, 0xCBC592A7, 0x8C4ECD77, 0x21CFAB9A, 0x97A3625C, 0x17E307D0, 0x3003D4B5, 0x4CCF8703} } } ,
13051 { { {0xAAA344EE, 0xD8470211, 0xD39CE17C, 0x6C7727A3, 0xFD4C71A9, 0x5A99171F, 0xDE436E5B, 0x8D2CEA86},
13052 {0x381818AD, 0x32A22BE0, 0x36D43DEF, 0x4A9ABCAC, 0x25522502, 0x56E03DEA, 0xE4F14E65, 0x4042BC21} } ,
13053 { {0xE6CF93A3, 0x2BD13924, 0x08666C98, 0x65B4C330, 0x06D34BFC, 0xE5552E82, 0x2BC60C58, 0xA27D0F2B},
13054 {0x6C18CC45, 0x3F75BD8D, 0xD25E0AF0, 0x81D3F2B4, 0x3F658AC2, 0x403A39CD, 0xB1AB2AF5, 0x19313791} } } ,
13055 { { {0xDDE95ABE, 0xC5B36822, 0x69BA2387, 0x9DD5FD12, 0x4694C644, 0x6FBCC80B, 0x6CB90A66, 0x725B0405},
13056 {0xD444FE3C, 0xF56ECDC1, 0xF6E83DC9, 0x31B7E628, 0xAC0E6576, 0xFCD4AA7D, 0x414EC68E, 0x5F9FE3E6} } ,
13057 { {0x812E57DB, 0x8242A770, 0x82FD04F9, 0x39DB4AFD, 0xB46BAB20, 0xFF6561CD, 0x9BA18D3E, 0x7B5BAF19},
13058 {0x07627A33, 0xE8FB4128, 0xF4FB9675, 0x7ADCEA7C, 0x6ECE28CE, 0x80451262, 0x8A00A4FF, 0x2D626DFE} } } } ;
13060 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3069 a000");
13061 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3070 a001");
13062 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3071 a010");
13063 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3072 a011");
13064 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3073 a100");
13065 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3074 a101");
13066 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3075 a110");
13067 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3076 a111");
13068 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3077 a200");
13069 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3078 a201");
13070 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3079 a210");
13071 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3080 a211");
13074 static const fp12_t var_a = { { { {0x34D1B69C, 0xC8B31E38, 0xA8FDF5B8, 0x543F72C3, 0x5C4D9579, 0xD72D9A1D, 0x51A9981F, 0x7B322246},
13075 {0xB0E89CF1, 0x3B2AF540, 0x6779BEE5, 0x6179BB2B, 0xC649BF46, 0xBD902029, 0xB6D14892, 0x01E5417C} } ,
13076 { {0x110324A6, 0x508AE3E0, 0x42DF7D68, 0x8EA5B3F9, 0x9615DF3C, 0xCE32E29B, 0xA909553D, 0x904F7606},
13077 {0x7AD1D3B5, 0x5B4F83E3, 0x65623350, 0xF0104E1E, 0xE61E9678, 0x6B5EB882, 0xDD3E61D4, 0x1E48CA8E} } } ,
13078 { { {0x0609DB2D, 0xF39F194F, 0xCFD33A8A, 0x4209DBA7, 0x85404F61, 0xF89CC18D, 0x95873CFD, 0x01A3AE47},
13079 {0x406DA83B, 0x73F23F56, 0xD5088BAF, 0x62CDC124, 0x7624F49E, 0x5F13C112, 0x2D21DE2C, 0x771B2E32} } ,
13080 { {0xA9AAAA20, 0x7AC14C83, 0x9F91EA8B, 0xD20D581C, 0x6F76FC2A, 0x8EEE5C74, 0x91BE938E, 0x20CC8582},
13081 {0x350141DB, 0x6C506EEF, 0xA7BF9429, 0x38FDF88D, 0x5BE640C0, 0xF4DF0D65, 0xC4263B6C, 0x7E372435} } } ,
13082 { { {0xCEBE268C, 0xEE7FA9E3, 0x3DFC0841, 0xDEF0BD88, 0xD8FA3B30, 0x08AAD1C4, 0x5B23A1CF, 0x7CE05064},
13083 {0x6E5DAEE3, 0x6EC3A465, 0x30F81F22, 0x1F7FCD77, 0x66D118DA, 0xC75C967D, 0xBF9F8315, 0x2A5F6032} } ,
13084 { {0x294ED5A8, 0x99D22D21, 0xA27CD608, 0x34893255, 0x3319F50A, 0x25821A8A, 0xAFB4F959, 0x2E67EAFD},
13085 {0xC50A5273, 0xE2FDD9C0, 0x5D642478, 0x532CDFA9, 0xF8EE3593, 0xA3FA0690, 0x7BEA116E, 0x9AB2656F} } } } ;
13086 static const fp12_t var_expected = { { { {0x0B209E23, 0xB62E5FDF, 0x205BAF47, 0x91656892, 0xD9797B01, 0x6ED6B7E1, 0x843CD605, 0x1C71599B},
13087 {0xF4F6BA84, 0xA15EBA13, 0x2B566AC7, 0x8E360ACA, 0x2009E747, 0x8DF00C6C, 0xFCFA3B4C, 0x088C009E} } ,
13088 { {0x374635C6, 0x77CCB8E2, 0x763B25DC, 0x2D9F5F78, 0xCC297921, 0x8AAC6FA2, 0x8C02A03C, 0x3C831FD5},
13089 {0x7693CAA9, 0x14106ACD, 0x66891274, 0xDA5228D5, 0x34092A8B, 0x5F94BBFF, 0xA6F60E7A, 0xB4D3C127} } } ,
13090 { { {0xA987281F, 0x19E29A34, 0x29A7D5A3, 0x0B817702, 0x3191D86F, 0xE969B30D, 0x01C3E62F, 0x2B92B811},
13091 {0x62B21EE0, 0xA727DBF1, 0x9545EBDB, 0x1E981BF5, 0x96785ECE, 0x9A8063A3, 0x33987B2A, 0x6CD68903} } ,
13092 { {0x450E221E, 0xB9E22C58, 0x84DEC586, 0x290EF84F, 0x5C043638, 0x16F4637A, 0xC906BD76, 0x14E833D3},
13093 {0xC8B7811E, 0x364756F8, 0xE8187F52, 0xFE45F67D, 0x707223D8, 0x14E96216, 0xF369A3CD, 0x026E61C2} } } ,
13094 { { {0x7BA486F5, 0x578B144E, 0xD6857315, 0xE9F9A24C, 0x7C7291A0, 0x0FB51F0C, 0x8AC1CEEC, 0x9B817A82},
13095 {0x460133A7, 0x0083D1DE, 0x9CDAFC26, 0x93064916, 0xA8EB0B33, 0xA9394474, 0xB3833972, 0xB09CA505} } ,
13096 { {0xD3E105FE, 0x89403B57, 0x73FDC266, 0x1BF397DF, 0x42BE6680, 0xD3591599, 0xB6DD32B6, 0x9DD39996},
13097 {0x3804AA98, 0xCB635CBD, 0xE97F3636, 0xC463459E, 0x9569AA29, 0x6B536B34, 0xE6335835, 0x3483206C} } } } ;
13099 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3081 a000");
13100 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3082 a001");
13101 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3083 a010");
13102 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3084 a011");
13103 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3085 a100");
13104 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3086 a101");
13105 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3087 a110");
13106 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3088 a111");
13107 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3089 a200");
13108 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3090 a201");
13109 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3091 a210");
13110 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3092 a211");
13113 static const fp12_t var_a = { { { {0x35C6CE9E, 0x014D93A7, 0x5828AFE2, 0x2FACC9FA, 0x7DE523B7, 0xCFC9619C, 0x8A67CA5F, 0x73D0FBF2},
13114 {0xA7B3A5AC, 0x7355D7CF, 0x87AA9699, 0xC721F65A, 0x667B2ED1, 0xB3724F77, 0xD4ECE101, 0x16E59AB8} } ,
13115 { {0x61837413, 0xF262B770, 0x30E35D0D, 0xF692AF22, 0x03AB3B34, 0x4E442E78, 0xAABE0F9D, 0x70B698B8},
13116 {0x6EDBE878, 0x076627F7, 0x1AB889F7, 0x36CDA9BE, 0x91961F4A, 0x4395FA18, 0xAA94B064, 0x3E65F777} } } ,
13117 { { {0xE3E6828A, 0x74443A2A, 0x8ADDF88E, 0x3E95A865, 0x9C1D43BD, 0x15750B7C, 0x0BD3D3CF, 0x6FBCEB8C},
13118 {0x31554C16, 0xC9579099, 0x70752F2D, 0x4F369553, 0x49DA4EE2, 0xF0BE44EE, 0x165AFFB1, 0x088F5A4D} } ,
13119 { {0xD1C339BA, 0xD0C79B50, 0x340DBAE1, 0xE7E35F12, 0x0E39D0CD, 0xDE4F0C38, 0xAA875A3E, 0x41373520},
13120 {0x028A62D2, 0x2013BB27, 0xC6592A1C, 0x247B5304, 0x49F87623, 0x8F9E18DE, 0xF7C0F53C, 0x203291BC} } } ,
13121 { { {0x1EB0C352, 0x90F88848, 0x65FD497C, 0xFF98F65D, 0x0991AA32, 0xA6C85FCB, 0x84596DD9, 0x3D3D89C0},
13122 {0x15FAF5E8, 0xB81BF1D0, 0x24EEE803, 0xD1858E46, 0x8D9E87B7, 0x42EFD73F, 0xAA9130F5, 0x4344AA55} } ,
13123 { {0x2206A159, 0x7B63D127, 0x167D965B, 0x0E0C2758, 0x7B2E83DD, 0x9EE39ABD, 0x97ACF16E, 0x2809AF37},
13124 {0x0091D755, 0x79BFCB7B, 0x4A6729B9, 0xE988C74A, 0x4D15D585, 0x5D43E05C, 0x8C635440, 0x9B634545} } } } ;
13125 static const fp12_t var_expected = { { { {0x32D42E8F, 0x404FB71E, 0xCEEBBB04, 0xE0FDE26B, 0x7FD657FC, 0x25A11E25, 0x08120AFE, 0x86CCD425},
13126 {0x768B3286, 0x12BF96DA, 0xA9A101DB, 0x6698015B, 0x7F3ADA19, 0xEFC4CA18, 0x6303D549, 0x0DD84B5E} } ,
13127 { {0x3B1049E3, 0xDC71BFC7, 0xCE12C306, 0x437D845D, 0x9EFCB51D, 0xFC4AB20D, 0x286FC3E7, 0xA23B73CE},
13128 {0x84C18E12, 0xDB1656DB, 0xA51E4E85, 0xB74485E9, 0x7B0726F6, 0x5E08F719, 0xBDF8460E, 0x9D0E16A5} } } ,
13129 { { {0xC3D7DF11, 0x8530BE1F, 0x397B0A69, 0x39D63EBF, 0x38A50330, 0x0CDD65C2, 0xA9D337B8, 0x4E43821F},
13130 {0xA7C3FFF1, 0x0769D77F, 0x1B5596C6, 0xD4FB1FB8, 0xD65BB41D, 0xA532FF46, 0xFC8A16A2, 0x1BF269E4} } ,
13131 { {0x3843F06E, 0x4EBC2E31, 0x854A6E9F, 0x33F76CFE, 0xFB609B45, 0x12A067FF, 0xD430BE15, 0x8E8A7612},
13132 {0x343F7797, 0xB7573174, 0xC61ED114, 0xB897F666, 0xDCD48DC3, 0x947A2F63, 0x3BE15F64, 0x37333085} } } ,
13133 { { {0x48F7FEFD, 0x8D669F15, 0x60D9B5ED, 0xB94F47C2, 0x632F62FD, 0xBA622D7F, 0x30010A73, 0xA80BF292},
13134 {0x5028A453, 0x4D45F070, 0xFFB585B2, 0x2574C0FA, 0x8CF8043C, 0x43D676BF, 0x33818DE4, 0x23219984} } ,
13135 { {0x18FEA822, 0xE0A602D9, 0x22DA31EC, 0xD66F61D1, 0xB4EF9853, 0x0EA9613F, 0xDB6656A9, 0x714EFC54},
13136 {0x647DC086, 0x58220B68, 0x5DD6D1AF, 0x3853A163, 0x346C18DD, 0x760D021B, 0xE10BD2A5, 0x64B75E81} } } } ;
13138 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3093 a000");
13139 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3094 a001");
13140 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3095 a010");
13141 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3096 a011");
13142 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3097 a100");
13143 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3098 a101");
13144 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3099 a110");
13145 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3100 a111");
13146 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3101 a200");
13147 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3102 a201");
13148 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3103 a210");
13149 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3104 a211");
13152 static const fp12_t var_a = { { { {0xB356712B, 0x9BFB0FE1, 0xD11CF1A1, 0xB48C3FBC, 0xE76ED6E0, 0x3F6507F9, 0x9FFF86B6, 0x94A206B7},
13153 {0xD71921C3, 0x8CFAF9B0, 0x901F7833, 0x1CB623B9, 0x5C22CA1E, 0x7DB4DC5B, 0xBAD07F42, 0x20852FCF} } ,
13154 { {0xC08DC13A, 0x3ABBFAB0, 0xE77CAAD1, 0x9A60B148, 0x1971D5C6, 0x4E01A7B3, 0xDA9D7D68, 0x23D99E16},
13155 {0x11683B2B, 0x58B36DFC, 0x0CBDFCCD, 0x90A359D9, 0xC5CA6BD8, 0x755870DC, 0x50E2ABAC, 0x36675A42} } } ,
13156 { { {0xC4CD16A4, 0xDF9A951F, 0xE25D9179, 0x19723C21, 0x1063B580, 0xB74F1C5D, 0x44832BB1, 0x13100CA8},
13157 {0xA5D37F22, 0x879A2936, 0x6DAF207F, 0x850B415C, 0x2F28FD46, 0x59E71DB4, 0x2D44C1DC, 0x103FC101} } ,
13158 { {0x53358852, 0x53BA39A1, 0x0E35BAFF, 0x92BCE5B0, 0x11D43AA9, 0xB3F249C1, 0x5A1DA125, 0xB78ED152},
13159 {0x037FA635, 0x04C5C4A1, 0xF5F5263B, 0x58D2278A, 0xD5CCB496, 0x8F559ED7, 0xEC145DF1, 0xA8C88C1A} } } ,
13160 { { {0x7F5B87A3, 0xA1DF8DDD, 0x51752AF8, 0x81778ACA, 0xFAE79C77, 0xC490E513, 0x5A30CA8E, 0x2BAF8B66},
13161 {0x028ADEF1, 0xF6DCA3AD, 0xA650B5CE, 0xDB75ECF0, 0x3270A62E, 0xAB3EECEF, 0x2B52224E, 0x6CB976B8} } ,
13162 { {0x5C4C8C80, 0x12C38DB1, 0x773E2704, 0xC6645B47, 0x8F34FA58, 0xA4DF5571, 0x3F29F789, 0x4037AB48},
13163 {0x58AFCAEE, 0xC7FA5CA5, 0xED2B16DE, 0x10D466A1, 0xA9BB411F, 0x84F6BEFC, 0x872BB111, 0x4B81B964} } } } ;
13164 static const fp12_t var_expected = { { { {0x8AC152E3, 0x4D74CCC9, 0xD2CA6874, 0xE3CEF62E, 0x9DA8B04A, 0x9D62B232, 0xF00F316F, 0xA75AD2BC},
13165 {0x1CA2AB2F, 0x45F4C1B1, 0x324BABBD, 0x97E3E82D, 0x5802A9E9, 0xBC8A9C63, 0xFD77ADB5, 0x6D4C6748} } ,
13166 { {0x6046E09D, 0x9D5DFD58, 0x73BE5568, 0x4D3058A4, 0x8CB8EAE3, 0x2700D3D9, 0x6D4EBEB4, 0x11ECCF0B},
13167 {0xB9CA37E3, 0x2BD0FBD6, 0xF09AEE0A, 0xD1DA833C, 0x0CD67AC6, 0xB85C66A4, 0x4880C3EA, 0x783D7C82} } } ,
13168 { { {0xE2668B52, 0xEFCD4A8F, 0xF12EC8BC, 0x0CB91E10, 0x8831DAC0, 0xDBA78E2E, 0x224195D8, 0x09880654},
13169 {0x52E9BF91, 0xC3CD149B, 0x36D7903F, 0x4285A0AE, 0x17947EA3, 0x2CF38EDA, 0x96A260EE, 0x081FE080} } ,
13170 { {0xA99AC429, 0xA9DD1CD0, 0x071ADD7F, 0xC95E72D8, 0x88EA1D54, 0xD9F924E0, 0x2D0ED092, 0x5BC768A9},
13171 {0x32D5ED68, 0x01DA2729, 0xE53682C1, 0xB5F1EA15, 0x94D79F25, 0x455AFDA1, 0x96199D0D, 0xB16E156E} } } ,
13172 { { {0x70C3DE1F, 0xD0670BC7, 0x92F6851F, 0x4A449BB5, 0xA7651316, 0xDFF8A0BF, 0x4D27D35B, 0x72E19514},
13173 {0x325B89C6, 0xFAE596AF, 0xBD644A8A, 0xF743CCC8, 0x432997F1, 0xD34FA4AD, 0x35B87F3B, 0x93668ABD} } ,
13174 { {0xAE264640, 0x0961C6D8, 0xBB9F1382, 0x63322DA3, 0xC79A7D2C, 0xD26FAAB8, 0x1F94FBC4, 0x201BD5A4},
13175 {0xAC57E577, 0x63FD2E52, 0xF6958B6F, 0x886A3350, 0x54DDA08F, 0xC27B5F7E, 0x4395D888, 0x25C0DCB2} } } } ;
13177 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3105 a000");
13178 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3106 a001");
13179 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3107 a010");
13180 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3108 a011");
13181 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3109 a100");
13182 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3110 a101");
13183 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3111 a110");
13184 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3112 a111");
13185 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3113 a200");
13186 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3114 a201");
13187 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3115 a210");
13188 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3116 a211");
13191 static const fp12_t var_a = { { { {0x670950C0, 0x2D8E86E4, 0x0AA5FFBD, 0xBBF737FD, 0xD2F4231A, 0x3E95BFD4, 0x090CA666, 0x3682F116},
13192 {0xF8C0356C, 0x1F23D155, 0x77E96BB6, 0x384D968A, 0xE07BF715, 0x35799EB8, 0xDDF138B6, 0x776E3F85} } ,
13193 { {0x0D492846, 0xBC042E33, 0xDB4B2F2E, 0x89C134BE, 0x0B5BFA16, 0xD897C873, 0x722A86C0, 0x2ED55AF2},
13194 {0x19F84635, 0xE7D6BF02, 0x32B09854, 0xD4D38657, 0xBCF0C898, 0x16FB5D2B, 0x49E78224, 0x60BD569D} } } ,
13195 { { {0x85828969, 0xC86A7B53, 0x4AE22A7E, 0xE435CBCE, 0x14C2F887, 0xE64D66C1, 0x792CA653, 0x753E7B0C},
13196 {0x2F456AF9, 0x49A35E28, 0x493CBA35, 0xA5FC99D0, 0x631D4B84, 0xC1785A10, 0x2A0F51DF, 0xB8A88963} } ,
13197 { {0x84336AA2, 0x9B7B65B7, 0x51254925, 0x984F2C5C, 0x5DAA1823, 0x27EE38C3, 0xDA25B491, 0x21298E6F},
13198 {0xEF9FECEF, 0xAEB1F411, 0x2AAF397E, 0xAC0E3461, 0x38181E51, 0x0D477D89, 0x1BFE1004, 0x70799A3D} } } ,
13199 { { {0x833A58E9, 0xBC8E9B8D, 0x787E397D, 0x0108884D, 0xE75819FB, 0x864F7910, 0x921C63CD, 0x71E99E66},
13200 {0x4E574CDB, 0xBE577A8E, 0x835F6F44, 0x2A13CDA2, 0xE15AD8E5, 0x15A302D8, 0xFAA9E21D, 0xB896A3F3} } ,
13201 { {0xF26A6F86, 0xF5DB2305, 0x9125976A, 0x47BC77C9, 0xFC4F2C2E, 0x49B96595, 0x5FAAE220, 0x88FD6334},
13202 {0x82613DC1, 0x63A73C4C, 0x3FA9DA0B, 0x9FE5650E, 0x431266FA, 0x32420414, 0xE439F307, 0x02965BAB} } } } ;
13203 static const fp12_t var_expected = { { { {0x3384A860, 0x96C74372, 0x8552FFDE, 0x5DFB9BFE, 0x697A118D, 0x1F4ADFEA, 0x04865333, 0x1B41788B},
13204 {0xFC601AB6, 0x0F91E8AA, 0x3BF4B5DB, 0x9C26CB45, 0x703DFB8A, 0x1ABCCF5C, 0xEEF89C5B, 0x3BB71FC2} } ,
13205 { {0x86A49423, 0x5E021719, 0x6DA59797, 0x44E09A5F, 0x85ADFD0B, 0x6C4BE439, 0x39154360, 0x176AAD79},
13206 {0xBE123D68, 0xF362A459, 0x03943BCD, 0xF3F2997C, 0x8869A926, 0x892DDCCB, 0xC5032F26, 0x8D687AAF} } } ,
13207 { { {0x73D75F02, 0xE3AC8282, 0x8FAD04E2, 0x7BA3BC37, 0x3452C11E, 0x70D6E196, 0x5CA5C13E, 0x97A90CE7},
13208 {0xC8B8CFCA, 0x2448F3EC, 0x8EDA4CBE, 0xDC872338, 0xDB7FEA9C, 0x5E6C5B3D, 0xB5171704, 0xB95E1412} } ,
13209 { {0xC219B551, 0xCDBDB2DB, 0x2892A492, 0xCC27962E, 0xAED50C11, 0x93F71C61, 0xED12DA48, 0x1094C737},
13210 {0xA8E610C5, 0xD6D03EE1, 0xFF938C62, 0x5F8FF080, 0x45FD5403, 0x8453ECFA, 0xAE0E7616, 0x95469C7F} } } ,
13211 { { {0x72B346C2, 0x5DBE929F, 0x267B0C62, 0x0A0D1A77, 0x1D9D51D8, 0x40D7EABE, 0x691D9FFB, 0x95FE9E94},
13212 {0xD841C0BB, 0xDEA3021F, 0xABEBA745, 0x1E92BD21, 0x1A9EB14D, 0x0881AFA2, 0x1D645F23, 0xB955215B} } ,
13213 { {0xF93537C3, 0x7AED9182, 0xC892CBB5, 0x23DE3BE4, 0xFE279617, 0x24DCB2CA, 0x2FD57110, 0x447EB19A},
13214 {0xF246B92E, 0x314AE2FE, 0x8A10DCA9, 0xD97B88D7, 0xCB7A7857, 0x16D1303F, 0x122C6798, 0x5E54FD37} } } } ;
13216 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3117 a000");
13217 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3118 a001");
13218 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3119 a010");
13219 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3120 a011");
13220 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3121 a100");
13221 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3122 a101");
13222 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3123 a110");
13223 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3124 a111");
13224 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3125 a200");
13225 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3126 a201");
13226 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3127 a210");
13227 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3128 a211");
13230 static const fp12_t var_a = { { { {0x0799AB17, 0x4F574473, 0xFD9E05BE, 0x1DE8BD6B, 0x7476478F, 0xE5322A4D, 0x3DFB5CAB, 0xB1EC2BA7},
13231 {0x9D7F2D51, 0xC70FFAF3, 0xB9460E76, 0xBB31B494, 0x2F8C529C, 0x00816AB0, 0xF6B74F34, 0x4536DEB9} } ,
13232 { {0x76DF1D30, 0x14AD514D, 0xB3BC6A43, 0x51CF27F0, 0xC219DBA8, 0x16D44731, 0xE9E78783, 0x03DB7C9C},
13233 {0x7A6BB50C, 0x4E9844E0, 0xD9726DAD, 0xB6DDC022, 0x06F3C04F, 0x4BD8D133, 0x8C78342B, 0x9FD7532F} } } ,
13234 { { {0x59CD9363, 0xCC76E9D9, 0x6AC5D125, 0x2BE2BD21, 0x90A9685C, 0xCF343251, 0x225C790B, 0x03022EAC},
13235 {0xE86BAF8B, 0xA61AC43E, 0xD0146571, 0x9965C6C5, 0x71C6C4AD, 0x3AA3BB10, 0xC4BBCAFA, 0x14BC6AF6} } ,
13236 { {0x42D876B8, 0x3E2A5C6B, 0x71EDB044, 0x0B7D10C5, 0x249C9CB4, 0x461DA407, 0x6294C5E8, 0x0354EEF4},
13237 {0x1C33E0CE, 0xB839CD96, 0x89BCCF5D, 0xE58E4BE5, 0x55206AA1, 0x261971D8, 0xBC8C901E, 0x15D2C272} } } ,
13238 { { {0x45ACD08C, 0x769F3848, 0xA9269B4E, 0x6CEED84C, 0x5DBE210F, 0xFF15F2D3, 0xE7E3A9E2, 0x1F968AA2},
13239 {0xB2338435, 0xA9F1132F, 0xB2770CD7, 0x94738C68, 0xD30459AD, 0x99D86143, 0x8F965706, 0x80C4E59E} } ,
13240 { {0x752D6288, 0xBE619257, 0xDFCF7F47, 0x30D51F15, 0xFE0C80F1, 0xB37720A1, 0xAF068B9A, 0x28BA53DC},
13241 {0x3857ACFF, 0xE6C08E5B, 0x396ADD3C, 0x6EF93153, 0x53BD13BF, 0x7C18FE87, 0x1ADADAE4, 0x1950CB4F} } } } ;
13242 static const fp12_t var_expected = { { { {0x34E2EFD9, 0xA722E712, 0x690AF282, 0x187D3506, 0x642C68A2, 0x7049435C, 0xBF0D1C6A, 0xB5FFE534},
13243 {0x7FD5B0F6, 0xE2FF4252, 0xC6DEF6DE, 0xE721B09A, 0xC1B76E28, 0x7DF0E38D, 0x1B6B15AE, 0x7FA53EBE} } ,
13244 { {0xBB6F8E98, 0x8A56A8A6, 0x59DE3521, 0x28E793F8, 0xE10CEDD4, 0x8B6A2398, 0x74F3C3C1, 0x01EDBE4E},
13245 {0x3D35DA86, 0xA74C2270, 0x6CB936D6, 0xDB6EE011, 0x8379E027, 0xA5EC6899, 0xC63C1A15, 0x4FEBA997} } } ,
13246 { { {0x5DFCE3FF, 0x65B2B9C5, 0x1F9ED836, 0x9F7A34E1, 0x7245F908, 0x654A475E, 0x313DAA9A, 0x5E8AE6B7},
13247 {0x254BF213, 0x5284A6F8, 0x5246225C, 0x563BB9B3, 0xE2D4A731, 0x9B020BBD, 0x826D5391, 0x676804DC} } ,
13248 { {0xA16C3B5C, 0x1F152E35, 0xB8F6D822, 0x05BE8862, 0x924E4E5A, 0x230ED203, 0x314A62F4, 0x01AA777A},
13249 {0x0E19F067, 0xDC1CE6CB, 0xC4DE67AE, 0xF2C725F2, 0x2A903550, 0x130CB8EC, 0x5E46480F, 0x0AE96139} } } ,
13250 { { {0x22D66846, 0x3B4F9C24, 0x54934DA7, 0xB6776C26, 0xAEDF1087, 0x7F8AF969, 0x73F1D4F1, 0x0FCB4551},
13251 {0x8A2FDC68, 0x546FCE70, 0xC377760F, 0x53C29C84, 0x937371B1, 0xCA9C5ED7, 0x67DA9997, 0x9D6C4230} } ,
13252 { {0xBA96B144, 0xDF30C92B, 0xEFE7BFA3, 0x986A8F8A, 0xFF064078, 0x59BB9050, 0x578345CD, 0x145D29EE},
13253 {0x4D41F0CD, 0xF2D78C06, 0x06F15E41, 0x41056EFA, 0x53CFCEBA, 0xBBBCAD79, 0xAD7CDB86, 0x69B23508} } } } ;
13255 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3129 a000");
13256 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3130 a001");
13257 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3131 a010");
13258 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3132 a011");
13259 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3133 a100");
13260 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3134 a101");
13261 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3135 a110");
13262 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3136 a111");
13263 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3137 a200");
13264 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3138 a201");
13265 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3139 a210");
13266 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3140 a211");
13269 static const fp12_t var_a = { { { {0x4DF451D2, 0x9A2D28FB, 0xA0FC62B7, 0xB03C499D, 0x07E75D9B, 0x4B5B2840, 0xB60FAD5D, 0x5D034C7A},
13270 {0xA2E80DAE, 0x17A00F99, 0xC9D47DA3, 0xB47A98CF, 0x7D1D5A7A, 0xE796E60C, 0x3C982218, 0x100EB1D3} } ,
13271 { {0xDBE2C265, 0xD92B22F3, 0xE4969AB7, 0x02029EA0, 0x7085B92B, 0x156A7A77, 0x7A004B66, 0x2751225D},
13272 {0x4EDAA158, 0x238D076F, 0xCFE479A7, 0x20DB64B2, 0x2ED32DDC, 0x252E9215, 0xD01C7F1F, 0x05847E92} } } ,
13273 { { {0x1ADD96B2, 0x7F8F4325, 0xB9BCFA3B, 0xFFD7DF69, 0xB8B111A4, 0x7AAD8391, 0x764E24FF, 0x4542BC36},
13274 {0x8891287C, 0x35BE74B6, 0xF94D48A9, 0x39F467ED, 0x91C1627A, 0xDCFA7DB7, 0x757F1A87, 0x7B79B500} } ,
13275 { {0x206772A5, 0xD6D4ABF3, 0xE9E13A3B, 0x88A2969F, 0xA42F95E3, 0x355FB885, 0xA97A41FD, 0x898474AF},
13276 {0x69E83F14, 0xB67D11E4, 0x8AC8FABD, 0x155ABE1E, 0x6028F3BF, 0xE2B5FB2B, 0x06A23421, 0x1CD754A3} } } ,
13277 { { {0x7C1738C4, 0x6A4018A0, 0xDA17FE93, 0x99A1AB56, 0x92032544, 0x48D9EF02, 0xD000F382, 0x8EEEE149},
13278 {0xE5A41E79, 0x4E1472E6, 0x2D8A79B8, 0xF31030C7, 0x3E88A4CE, 0x4F5F5A18, 0x6169CDF9, 0x1A4F8D3E} } ,
13279 { {0x25CA87D5, 0x0115BD2D, 0xAB34692B, 0xA5D19D00, 0x1B1F8094, 0xE6056160, 0xA7C3288B, 0x61FCAA80},
13280 {0xCFC80776, 0xE857D914, 0xFC15A9E1, 0x429D55D6, 0xBEF2D83A, 0x81CFA112, 0x638CEF87, 0x2C6DB560} } } } ;
13281 static const fp12_t var_expected = { { { {0xA6FA28E9, 0xCD16947D, 0xD07E315B, 0xD81E24CE, 0x03F3AECD, 0xA5AD9420, 0x5B07D6AE, 0x2E81A63D},
13282 {0xD17406D7, 0x8BD007CC, 0xE4EA3ED1, 0x5A3D4C67, 0x3E8EAD3D, 0x73CB7306, 0x9E4C110C, 0x080758E9} } ,
13283 { {0x9F077B80, 0x6C0CD652, 0xDC873CFF, 0x0A8A25A0, 0x62342170, 0x88656B71, 0xDD0F93C7, 0x70B2608F},
13284 {0xA76D50AC, 0x91C683B7, 0x67F23CD3, 0x106DB259, 0x976996EE, 0x9297490A, 0x680E3F8F, 0x02C23F49} } } ,
13285 { { {0x8D6ECB59, 0xBFC7A192, 0xDCDE7D1D, 0x7FEBEFB4, 0xDC5888D2, 0xBD56C1C8, 0x3B27127F, 0x22A15E1B},
13286 {0x4448943E, 0x9ADF3A5B, 0xFCA6A454, 0x1CFA33F6, 0xC8E0B13D, 0xEE7D3EDB, 0x3ABF8D43, 0x3DBCDA80} } ,
13287 { {0x4149D3A0, 0x6AE19AD2, 0x5F2C8CC1, 0x4DDA21A0, 0x7C090FCC, 0x18600A78, 0xF4CC8F13, 0xA1CC09B8},
13288 {0x34F41F8A, 0xDB3E88F2, 0x45647D5E, 0x8AAD5F0F, 0xB01479DF, 0xF15AFD95, 0x83511A10, 0x0E6BAA51} } } ,
13289 { { {0x3E0B9C62, 0xB5200C50, 0x6D0BFF49, 0x4CD0D5AB, 0x490192A2, 0x246CF781, 0xE80079C1, 0x477770A4},
13290 {0x23E8298A, 0xA6817E4C, 0x01012C7F, 0x0310EEB4, 0xC9359742, 0x255FDB41, 0x50C45511, 0x6A319600} } ,
13291 { {0x43FB5E38, 0x0002236F, 0xBFD62439, 0xDC71A4D0, 0xB7810524, 0x70B2DEE5, 0x73F1025A, 0x8E0824A1},
13292 {0x67E403BB, 0xF42BEC8A, 0x7E0AD4F0, 0x214EAAEB, 0x5F796C1D, 0xC0E7D089, 0x31C677C3, 0x1636DAB0} } } } ;
13294 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3141 a000");
13295 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3142 a001");
13296 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3143 a010");
13297 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3144 a011");
13298 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3145 a100");
13299 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3146 a101");
13300 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3147 a110");
13301 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3148 a111");
13302 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3149 a200");
13303 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3150 a201");
13304 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3151 a210");
13305 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3152 a211");
13308 static const fp12_t var_a = { { { {0xF13D9C26, 0xA66BD87A, 0xECC3FA58, 0x4EB8844E, 0xC32D84A3, 0x896FB2F8, 0xEB5FD106, 0x928B7490},
13309 {0xC2BA7C2D, 0xA9E6BCF0, 0xA16388AC, 0xFC6D82ED, 0xFFC57EDF, 0x0327DAA9, 0x28009C92, 0x300E7D9A} } ,
13310 { {0x92642C86, 0xA1C2EA78, 0x93D6F025, 0x6073ABB2, 0xFBE38A96, 0xEDCFB9D0, 0x58FC84BC, 0x38EBEB2C},
13311 {0xEBB7D0E5, 0xFF71BE33, 0x3789DD22, 0xD62642CB, 0x1842E580, 0xC13E6086, 0x4F70472D, 0x308D5412} } } ,
13312 { { {0x85908B04, 0x7A382658, 0x2C2A1BD4, 0x382371E2, 0xC5BA6CD6, 0x01854E87, 0xEFB54970, 0x92538B94},
13313 {0xC8B3D642, 0x8F4F9193, 0xBE903678, 0x5DBACD23, 0xFC20F2A1, 0xC0D74B1B, 0xB3E3067D, 0x45051A0F} } ,
13314 { {0xD4DDAB72, 0xFCD6C293, 0xB2D2D948, 0xE9343D2A, 0x1585DA2A, 0x0CF79999, 0x29187996, 0x09132111},
13315 {0x67130863, 0x4408D8EE, 0xA3424E4F, 0xD9749CCC, 0x9599B112, 0x698BD542, 0xB2B74493, 0xB134551B} } } ,
13316 { { {0xE016B50B, 0x2E24D985, 0x0310C8A9, 0x607CE537, 0xC107A647, 0x78D20DB2, 0xC4C1C022, 0x17D008E1},
13317 {0x3DB890AA, 0x473F64D0, 0x15A3CA38, 0x0BB84044, 0x0990CC46, 0x531B8024, 0xA9A848A2, 0x26530CCD} } ,
13318 { {0x9474A38A, 0x5BB196B8, 0x70186997, 0x453FBFA1, 0x91FCE432, 0x0AF3CADE, 0xFE5F3AA0, 0x5D6C828A},
13319 {0xC324C760, 0x004D9D5A, 0x2B4EFD01, 0x18FA337C, 0x64028095, 0x4EA10EBE, 0xB5829E89, 0x080DF66C} } } } ;
13320 static const fp12_t var_expected = { { { {0x789ECE13, 0x5335EC3D, 0x7661FD2C, 0xA75C4227, 0x6196C251, 0x44B7D97C, 0x75AFE883, 0x4945BA48},
13321 {0x12735864, 0xD46AA351, 0x3AEDB3F9, 0x87BF97C7, 0xA9D4044A, 0x7F441B8A, 0x340FBC5D, 0x75110E2E} } ,
13322 { {0x49321643, 0xD0E1753C, 0x49EB7812, 0x3039D5D9, 0x7DF1C54B, 0x76E7DCE8, 0x2C7E425E, 0x1C75F596},
13323 {0xA6F202C0, 0xFF3023F2, 0x0600DE34, 0xF49BF7B6, 0xB612B79A, 0x5E4F5E78, 0x47C791AB, 0x7550796A} } } ,
13324 { { {0x42C84582, 0x3D1C132C, 0x16150DEA, 0x1C11B8F1, 0xE2DD366B, 0x00C2A743, 0x77DAA4B8, 0x4929C5CA},
13325 {0xE459EB21, 0x47A7C8C9, 0xDF481B3C, 0xAEDD6691, 0xFE107950, 0xE06BA58D, 0xD9F1833E, 0x22828D07} } ,
13326 { {0xEA6ED5B9, 0x7E6B6149, 0x59696CA4, 0x749A1E95, 0x8AC2ED15, 0x067BCCCC, 0x948C3CCB, 0x04899088},
13327 {0xE49F9E7F, 0x217BB14F, 0xBBDD16CB, 0xF64324B6, 0xF4BE1D63, 0x327618D6, 0xF96B105E, 0xB5A3F9EE} } } ,
13328 { { {0xA12174D3, 0x1689B19B, 0xEBC453F8, 0x39C748EB, 0x0A7517FE, 0xBA19350F, 0x02704E25, 0x68F1D3D2},
13329 {0x1EDC4855, 0x239FB268, 0x0AD1E51C, 0x05DC2022, 0x04C86623, 0x298DC012, 0xD4D42451, 0x13298666} } ,
13330 { {0x4A3A51C5, 0xADD8CB5C, 0xB80C34CB, 0x229FDFD0, 0x48FE7219, 0x0579E56F, 0x7F2F9D50, 0x2EB64145},
13331 {0x619263B0, 0x8026CEAD, 0x15A77E80, 0x8C7D19BE, 0x3201404A, 0xA750875F, 0x5AC14F44, 0x0406FB36} } } } ;
13333 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3153 a000");
13334 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3154 a001");
13335 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3155 a010");
13336 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3156 a011");
13337 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3157 a100");
13338 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3158 a101");
13339 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3159 a110");
13340 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3160 a111");
13341 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3161 a200");
13342 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3162 a201");
13343 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3163 a210");
13344 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3164 a211");
13347 static const fp12_t var_a = { { { {0xA9CC6C14, 0x0AF0F8DE, 0xD90E81B3, 0xCD011434, 0xDE25F526, 0xB614AEC4, 0x53D6ACDF, 0xA8EEBAC7},
13348 {0xEE15B3F9, 0x17224770, 0x8F63A2D0, 0x469108E0, 0x49CB7FCC, 0x769F2924, 0xB2743CFE, 0x8A49EC5A} } ,
13349 { {0xB4081635, 0x06176DC4, 0x8B7B9A3F, 0x5841B886, 0xEE2DE5B6, 0xB683DA0A, 0x4072E024, 0x48309815},
13350 {0x30DD2BA6, 0x78C3757E, 0x87569E1D, 0xEBC3AE18, 0xF8F1510A, 0x29903963, 0x3FE06DA9, 0xA63000A8} } } ,
13351 { { {0x287500A0, 0x57B2A56C, 0x401CF750, 0x7583E25E, 0xF2F77CA9, 0x87AC56E5, 0x43BC1309, 0x13ED3F0C},
13352 {0xFD586BBE, 0x4CA5ACB0, 0x40A2DDB8, 0xCA1BCDED, 0x95886924, 0x02F57739, 0xB7A682BC, 0x10942F14} } ,
13353 { {0x3FEF75E8, 0x45DEA545, 0x410BF386, 0x3DC04257, 0xAA5BEC6F, 0xD68BBA1E, 0x18DF9036, 0x0B3653F2},
13354 {0xCE459002, 0xF934DB0B, 0xCF953F4F, 0x0A7AD1E0, 0x2DF8727F, 0xD1EB4CC8, 0x37F96268, 0x2AF9BD0F} } } ,
13355 { { {0x29794B87, 0x5B813BCB, 0x1EE163E7, 0x99BDE802, 0x1F9E5942, 0xA87EB8C1, 0x3C493114, 0x10BC9907},
13356 {0x98E0F3C5, 0x28AE2FB9, 0xE245A12A, 0xECDDAC62, 0x65C80211, 0xAF340EF6, 0x9FAB004B, 0x29603875} } ,
13357 { {0xDD45DF1A, 0x6032C427, 0xF93281FE, 0xFBD37F83, 0xEB9829F6, 0x3192210C, 0x6DABE7B6, 0x2EA59613},
13358 {0xCD361834, 0xC5AA2496, 0xBD5CF576, 0xCB74A8CA, 0x7AEFCA41, 0xFECBDFD3, 0x89049C33, 0x064A233E} } } } ;
13359 static const fp12_t var_expected = { { { {0x54E6360A, 0x85787C6F, 0x6C8740D9, 0x66808A1A, 0x6F12FA93, 0xDB0A5762, 0xA9EB566F, 0x54775D63},
13360 {0x2820F44A, 0x8B086891, 0xB1EDC10B, 0xACD15AC0, 0xCED704C0, 0xB8FFC2C7, 0x79498C93, 0xA22EC58E} } ,
13361 { {0x0B1A2568, 0x0282FBBB, 0xAFF9BCC3, 0xB5A9B293, 0x210837B5, 0xD8F21B3B, 0xC048DE26, 0x81221B6B},
13362 {0x186E95D3, 0xBC61BABF, 0x43AB4F0E, 0x75E1D70C, 0xFC78A885, 0x94C81CB1, 0x1FF036D4, 0x53180054} } } ,
13363 { { {0x143A8050, 0x2BD952B6, 0x200E7BA8, 0xBAC1F12F, 0xF97BBE54, 0xC3D62B72, 0x21DE0984, 0x09F69F86},
13364 {0x7EAC35DF, 0x2652D658, 0xA0516EDC, 0x650DE6F6, 0xCAC43492, 0x017ABB9C, 0x5BD3415E, 0x084A178A} } ,
13365 { {0x9FF7BAF4, 0x22EF52A2, 0xA085F9C3, 0x9EE0212B, 0x552DF637, 0x6B45DD0F, 0x0C6FC81B, 0x059B29F9},
13366 {0xE722C801, 0xFC9A6D85, 0x67CA9FA7, 0x853D68F0, 0x16FC393F, 0x68F5A664, 0x9BFCB134, 0x157CDE87} } } ,
13367 { { {0x45D2C011, 0x2D37E2BE, 0x79ACA197, 0xD667CA51, 0x39C0717B, 0xD1EF8A96, 0xBE34069E, 0x65681BE4},
13368 {0x7D869430, 0x93CE5CB5, 0xDB5EC038, 0x7FF7AC81, 0xDCD545E3, 0x554A35B0, 0xEFE4EE3A, 0x71B9EB9B} } ,
13369 { {0xEEA2EF8D, 0x30196213, 0xFC9940FF, 0x7DE9BFC1, 0x75CC14FB, 0x18C91086, 0xB6D5F3DB, 0x1752CB09},
13370 {0x669B0C1A, 0x62D5124B, 0x5EAE7ABB, 0xE5BA5465, 0xBD77E520, 0xFF65EFE9, 0x44824E19, 0x0325119F} } } } ;
13372 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3165 a000");
13373 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3166 a001");
13374 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3167 a010");
13375 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3168 a011");
13376 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3169 a100");
13377 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3170 a101");
13378 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3171 a110");
13379 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3172 a111");
13380 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3173 a200");
13381 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3174 a201");
13382 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3175 a210");
13383 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3176 a211");
13386 static const fp12_t var_a = { { { {0xCCFEF903, 0x602ED7A6, 0x8993E9F7, 0xF492AD3B, 0x3EBB9DCE, 0xEFD36888, 0x27125C14, 0x3D25EF0B},
13387 {0x424F40DF, 0xF85D3084, 0x6041489F, 0x7B040010, 0xE58D04AA, 0x525535AC, 0x92299506, 0x2E35CF21} } ,
13388 { {0x361E5687, 0xA082EA38, 0x1B32355E, 0x9B3865B1, 0xDAACDCF2, 0x8F21B979, 0x2770AD20, 0x3B09D885},
13389 {0xAECCECF0, 0x2968ADCB, 0x3A08866F, 0xFDB2CA1D, 0x0BB56E3F, 0x842CD253, 0x5972E32C, 0x9259D12D} } } ,
13390 { { {0x44832604, 0xAB46DDCC, 0x3DFCA4ED, 0xDA165ECE, 0xC7BC50DA, 0x15F9976E, 0xEB3545B5, 0x0BF8466F},
13391 {0x0569108E, 0x02567390, 0xF7BA2CA8, 0x9128A96B, 0x919973A7, 0xAD555C55, 0xB95727CF, 0x62CDB0B8} } ,
13392 { {0xF17DD0A4, 0x4B82CCDE, 0x101C5BDE, 0x254EDF17, 0x9F12C09A, 0xB8C8EFEC, 0x2F5AB19D, 0xB851213C},
13393 {0x7C45C420, 0x6B30EAB7, 0x8328B467, 0xBA9F2A38, 0x5BE33771, 0x270D576C, 0xD0433523, 0x10951A37} } } ,
13394 { { {0xAE15A5CE, 0x8923CDED, 0x4CF9B05B, 0x0876AD86, 0x92AABB36, 0xF43DA738, 0x706E8FE8, 0x19C42C7D},
13395 {0x893AB0B7, 0x8D0C22BB, 0x0DB589FD, 0x37F59566, 0x90FD1D32, 0x8A57E1F3, 0xFB61F471, 0x4CB33906} } ,
13396 { {0xB75E406A, 0xAA28A12C, 0x3FD814D6, 0xA018F312, 0x61F972A5, 0x741ACB44, 0x6C2AA311, 0x2DD21286},
13397 {0xE0272750, 0xD29BEE6D, 0x012AA0B3, 0x0BB816A1, 0x9466BD09, 0xAF9138C2, 0xD66E9192, 0x093933BC} } } } ;
13398 static const fp12_t var_expected = { { { {0x179596CF, 0x2F8EB0AC, 0x2F05E49F, 0x03D22CEE, 0xC94F13C2, 0xF599E279, 0xB3989C1E, 0x7B9CC6E6},
13399 {0xD23DBABD, 0x7BA5DD1A, 0x9A5C93F3, 0xC70AD658, 0x1CB7C72F, 0xA6DAC90C, 0xE9243897, 0x7424B6F1} } ,
13400 { {0xCC254591, 0xCFB8B9F4, 0xF7D50A52, 0xD7250928, 0x9747B353, 0xC5410AF2, 0xB3C7C4A4, 0x7A8EBBA3},
13401 {0xD7667678, 0x94B456E5, 0x9D044337, 0xFED9650E, 0x85DAB71F, 0x42166929, 0xACB97196, 0x492CE896} } } ,
13402 { { {0x22419302, 0xD5A36EE6, 0x1EFE5276, 0x6D0B2F67, 0x63DE286D, 0x8AFCCBB7, 0xF59AA2DA, 0x05FC2337},
13403 {0x02B48847, 0x012B39C8, 0xFBDD1654, 0xC89454B5, 0xC8CCB9D3, 0xD6AAAE2A, 0x5CAB93E7, 0x3166D85C} } ,
13404 { {0x78BEE852, 0x25C1666F, 0x880E2DEF, 0x12A76F8B, 0x4F89604D, 0xDC6477F6, 0x17AD58CE, 0x5C28909E},
13405 {0xBE22E210, 0xB598755B, 0x41945A33, 0xDD4F951C, 0x2DF19BB8, 0x9386ABB6, 0xE8219A91, 0x084A8D1B} } } ,
13406 { { {0xD70AD2E7, 0xC491E6F6, 0x267CD82D, 0x043B56C3, 0x49555D9B, 0x7A1ED39C, 0xB83747F4, 0x0CE2163E},
13407 {0x75B372A9, 0x45FD5636, 0x7116B4A2, 0xA583A103, 0x726FD373, 0x42DC1F2F, 0x9DC0684D, 0x83636BE4} } ,
13408 { {0x5BAF2035, 0x55145096, 0x1FEC0A6B, 0xD00C7989, 0x30FCB952, 0xBA0D65A2, 0x36155188, 0x16E90943},
13409 {0xF01393A8, 0xE94DF736, 0x80955059, 0x85DC0B50, 0x4A335E84, 0x57C89C61, 0x6B3748C9, 0x049C99DE} } } } ;
13411 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3177 a000");
13412 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3178 a001");
13413 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3179 a010");
13414 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3180 a011");
13415 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3181 a100");
13416 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3182 a101");
13417 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3183 a110");
13418 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3184 a111");
13419 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3185 a200");
13420 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3186 a201");
13421 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3187 a210");
13422 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3188 a211");
13425 static const fp12_t var_a = { { { {0xD8EC97EB, 0x3DEBC779, 0xA1833355, 0xBEFB9081, 0xC279633D, 0x4499DA53, 0x5EE514C0, 0x1D0A79CF},
13426 {0x7544F71F, 0xE3BB0604, 0x0C86935B, 0x75394EA0, 0x0B004E52, 0xAF00FF29, 0x408805D8, 0x7555C6CF} } ,
13427 { {0x30AE9DDF, 0x06B114DA, 0x1022D41E, 0x1440E070, 0x4A44E341, 0x8BADB905, 0xC635ED99, 0x2342E5AE},
13428 {0x7F6EEE33, 0xA80628DD, 0x1BCD60AC, 0xF79C48B9, 0xDC5E8782, 0xE461461A, 0x54FDF0AD, 0x046610A8} } } ,
13429 { { {0x6CB0EA00, 0x113B9F48, 0x9E00A7DE, 0x07621FC0, 0x812195A5, 0xCFE31393, 0x9FF69804, 0xA076A117},
13430 {0x737B12F8, 0x4B623EE1, 0x5CD8B1BD, 0x52E8D512, 0x2A1BF485, 0xE67A5E96, 0x701ECA61, 0x65067565} } ,
13431 { {0x044EF0FB, 0xA69A3A9B, 0xEC88D4BC, 0x8A1043F8, 0x808AB787, 0xC51C65F6, 0x26658E02, 0x21BD6B45},
13432 {0x04888D7E, 0x34918F75, 0x3A26BD2D, 0x87134723, 0x5C20B910, 0x8EA967FE, 0x310D60D5, 0x8A20AAF4} } } ,
13433 { { {0x4CA519E1, 0x4D16D183, 0x06BAA9EF, 0xC0E2E81A, 0x4D92D9CF, 0x66388005, 0x985912B4, 0xB6ECD836},
13434 {0x29484E9A, 0x0DC2EA53, 0x63AAB9BE, 0xD6188F57, 0x15FDD0B3, 0xF673A9E1, 0x748CB117, 0xA3FCE73C} } ,
13435 { {0xDB135A50, 0xD1A87F59, 0x3970954C, 0x0A7A36A7, 0x2C17B9E5, 0xEA06848D, 0x7335F4AF, 0xB0C2158D},
13436 {0x16575C22, 0xBE1FDCCC, 0xC49DE678, 0xC204C804, 0x3C33BBB6, 0x7518AD53, 0x56D01721, 0x22513D7A} } } } ;
13437 static const fp12_t var_expected = { { { {0x9D8C6643, 0x1E6D2895, 0x3AFD894E, 0x69069E91, 0x8B2DF679, 0x9FFD1B5F, 0xCF81F874, 0x6B8F0C48},
13438 {0xEBB895DD, 0x7154C7DA, 0x707F3951, 0xC4257DA0, 0x2F716C03, 0xD530ADCA, 0xC0537100, 0x97B4B2C8} } ,
13439 { {0xC96D693D, 0x82CFCF45, 0x724D59B2, 0x13A94688, 0x4F13B67B, 0x43870AB8, 0x832A64E1, 0x6EAB4238},
13440 {0x70CD9167, 0xD37A5947, 0xF8229FF9, 0x0556FAAC, 0x1820889C, 0x6FE0D143, 0x4A8E666B, 0x5F3CD7B5} } } ,
13441 { { {0x36587500, 0x089DCFA4, 0x4F0053EF, 0x83B10FE0, 0xC090CAD2, 0x67F189C9, 0xCFFB4C02, 0x503B508B},
13442 {0xB9BD897C, 0xA5B11F70, 0x2E6C58DE, 0xA9746A89, 0x150DFA42, 0xF33D2F4B, 0xB80F6530, 0x32833AB2} } ,
13443 { {0x333D92CB, 0xD2C46226, 0xE0805A01, 0x4E90F84C, 0xEA36A09E, 0xE03E6130, 0xB3423515, 0x6DE88503},
13444 {0x824446BF, 0x9A48C7BA, 0x9D135E96, 0x4389A391, 0x2E105C88, 0xC754B3FF, 0x1886B06A, 0x4510557A} } } ,
13445 { { {0x5768A73E, 0x2602AD9A, 0x6D99449B, 0x69FA4A5D, 0x50BAB1C2, 0xB0CC6E38, 0x6C3BF76E, 0xB8803B7C},
13446 {0x94A4274D, 0x06E17529, 0xB1D55CDF, 0xEB0C47AB, 0x8AFEE859, 0xFB39D4F0, 0x3A46588B, 0x51FE739E} } ,
13447 { {0xED89AD28, 0x68D43FAC, 0x9CB84AA6, 0x853D1B53, 0x960BDCF2, 0xF5034246, 0xB99AFA57, 0x58610AC6},
13448 {0x0B2BAE11, 0x5F0FEE66, 0x624EF33C, 0x61026402, 0x9E19DDDB, 0xBA8C56A9, 0x2B680B90, 0x11289EBD} } } } ;
13450 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3189 a000");
13451 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3190 a001");
13452 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3191 a010");
13453 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3192 a011");
13454 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3193 a100");
13455 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3194 a101");
13456 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3195 a110");
13457 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3196 a111");
13458 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3197 a200");
13459 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3198 a201");
13460 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3199 a210");
13461 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3200 a211");
13464 static const fp12_t var_a = { { { {0x8386BB14, 0x3A91AB77, 0x14355A95, 0x0892F0B0, 0xA3128C33, 0xCCD8B79A, 0x73B342EC, 0xA1F2ACB6},
13465 {0x4087E0F2, 0x7161E43D, 0x8B4E279E, 0x0A061C05, 0xF4879FFB, 0xA61D1CFD, 0x334EC52F, 0xB8520715} } ,
13466 { {0x5CC92000, 0xD1E29BCD, 0x620F54B5, 0x9B10762B, 0x76E93D0D, 0xC30EACB0, 0x95B7D47D, 0x5836F197},
13467 {0x5C32E180, 0x8E5AB4C4, 0x24F032FC, 0xB17D12A1, 0xA353E572, 0x62E26261, 0xAA8C9881, 0x55C48D87} } } ,
13468 { { {0x57AB06E1, 0x20270E16, 0x5BDBF2D4, 0xD203F288, 0x57D9166C, 0xCD494220, 0xD700CA62, 0x2D496C9F},
13469 {0x6089B215, 0xBF8A6C78, 0x3B6B586A, 0xF60E41A6, 0xEED13EE3, 0xC02D1712, 0x96F34268, 0x2B07C322} } ,
13470 { {0x302CB885, 0xED9384FA, 0xCC7185A0, 0x460C8013, 0x86B492DA, 0x16DB2344, 0x75900813, 0xA05FAC89},
13471 {0x7FE41A07, 0xECADE0B1, 0xBF2DD67F, 0x5BAF60CC, 0xBB71280B, 0x1BBF22C9, 0x159CC3F4, 0xAB2A28C3} } } ,
13472 { { {0x96109906, 0x444F123B, 0xC3C9009F, 0x60B81013, 0x8C5A1751, 0x249412EE, 0x6C4BA859, 0x1368630E},
13473 {0x30132B81, 0x3F4CDF2B, 0xDCFAC5CF, 0xA1B6C6C9, 0x2D25DC60, 0x0BDEB1A2, 0x842036B7, 0x85FCD4C6} } ,
13474 { {0xFFEDCBC4, 0x6D4B5E09, 0xE1765036, 0x1249B738, 0x83DF64BA, 0xAC16B50B, 0xF9F8642A, 0x11EA9783},
13475 {0x27ACCAB6, 0x204A7D04, 0xFFBA9C37, 0xC9EE41B8, 0xAAB1B8F5, 0x69EAE5EF, 0x7F6CF54F, 0xAB18A4D5} } } } ;
13476 static const fp12_t var_expected = { { { {0xC1C35D8A, 0x9D48D5BB, 0x0A1AAD4A, 0x84497858, 0x51894619, 0x666C5BCD, 0x39D9A176, 0x50F9565B},
13477 {0xA043F079, 0x38B0F21E, 0xC5A713CF, 0x85030E02, 0xFA43CFFD, 0xD30E8E7E, 0x99A76297, 0x5C29038A} } ,
13478 { {0xAE649000, 0xE8F14DE6, 0xB107AA5A, 0xCD883B15, 0x3B749E86, 0xE1875658, 0xCADBEA3E, 0x2C1B78CB},
13479 {0x2E1970C0, 0x472D5A62, 0x9278197E, 0x58BE8950, 0xD1A9F2B9, 0xB1713130, 0xD5464C40, 0x2AE246C3} } } ,
13480 { { {0xDCEB9DBE, 0x8F8ACBE3, 0x9829E90D, 0xF28ACF94, 0xD5DDD010, 0xE454CF45, 0x0B8FD345, 0x73AE85B1},
13481 {0xE15AF358, 0xDF3C7B14, 0x87F19BD8, 0x848FF723, 0x2159E44C, 0xDDC6B9BF, 0x6B890F48, 0x728DB0F2} } ,
13482 { {0xC92C7690, 0xF6410755, 0x5074B273, 0xAC8F165A, 0xED4B8E47, 0x091DBFD7, 0xDAD7721E, 0xAD39A5A5},
13483 {0x71082751, 0x75CE3531, 0xC9D2DAE3, 0x376086B6, 0x87A9D8E0, 0x8B8FBF9A, 0xAADDD00E, 0xB29EE3C2} } } ,
13484 { { {0xCB084C83, 0xA227891D, 0xE1E4804F, 0xB05C0809, 0x462D0BA8, 0x924A0977, 0x3625D42C, 0x09B43187},
13485 {0x491FB00E, 0x1F1DB46E, 0x58B9528B, 0xDA6439B5, 0xC084330A, 0x039F8706, 0x621F8970, 0xA00839C4} } ,
13486 { {0xFFF6E5E2, 0x36A5AF04, 0x70BB281B, 0x0924DB9C, 0xC1EFB25D, 0x560B5A85, 0xFCFC3215, 0x08F54BC1},
13487 {0x13D6655B, 0x90253E82, 0x7FDD4E1B, 0xE4F720DC, 0xD558DC7A, 0xB4F572F7, 0xBFB67AA7, 0x558C526A} } } } ;
13489 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3201 a000");
13490 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3202 a001");
13491 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3203 a010");
13492 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3204 a011");
13493 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3205 a100");
13494 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3206 a101");
13495 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3207 a110");
13496 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3208 a111");
13497 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3209 a200");
13498 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3210 a201");
13499 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3211 a210");
13500 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3212 a211");
13503 static const fp12_t var_a = { { { {0xC19CEE59, 0xF130247A, 0x3422A3D9, 0x8067B718, 0x7070E572, 0xA7843D6E, 0x5A7BFE39, 0xABAE278C},
13504 {0x5A5DF88D, 0x397865E8, 0xD44B3E0D, 0x14A45BAB, 0xD7FF1C42, 0x4FEC4B5B, 0xE58C12CF, 0x4DF9824C} } ,
13505 { {0x71B449E9, 0x99DC6E06, 0x08D2079F, 0x084785E2, 0x96852C0C, 0x4E707E5C, 0x0CBE9550, 0x32E5A8B9},
13506 {0x9A0F8981, 0x7334A340, 0x75D8C5F2, 0xF0A44FF7, 0x45892E28, 0x19C3BAED, 0x916042F6, 0x23F3479A} } } ,
13507 { { {0xE4DBFE88, 0x6EEFCDEA, 0xEBB93FF9, 0x4DB5FC32, 0x7D32E002, 0x196CE718, 0xCA850115, 0x38335000},
13508 {0x8414DA8B, 0xF5A4A6FF, 0x8E001F8D, 0x56A276F5, 0x15144970, 0x549A1F15, 0xA1044EF8, 0x0CA86031} } ,
13509 { {0x2E196B93, 0xB95E0FFF, 0xAA0AA4C9, 0x302A7C22, 0xE8759601, 0xC29AC51F, 0x9340F796, 0x8CC47A30},
13510 {0x448DE499, 0x2D03BCEA, 0x37823B93, 0xFD8E4402, 0x5C495394, 0xEA4F4801, 0xB24D05EF, 0x113DC2E6} } } ,
13511 { { {0xA521BD55, 0x03047D2F, 0x51C21FF7, 0xD1D7E34F, 0xDC89A6D5, 0x423FC8B6, 0xA3D507F5, 0x415BDC26},
13512 {0x57596B0B, 0xBC2C7B9F, 0x6F0F8FA3, 0x70A0381C, 0x0F487491, 0xE2ADD389, 0xA167FABF, 0x4A971176} } ,
13513 { {0xDDA9BFD0, 0x152D9E00, 0x2D7C3DF7, 0x91BA78E9, 0x9F33EE7A, 0xD24CC9A6, 0x787570BB, 0xA65F51A4},
13514 {0x6A966D1B, 0x9243878F, 0xD2A11024, 0xE65C4C45, 0xC2CF9A22, 0xA7F4B5D1, 0x8ABBCB7E, 0x4125BBFC} } } } ;
13515 static const fp12_t var_expected = { { { {0x11E4917A, 0x780F5716, 0x844D4190, 0xC9BCB1DC, 0xE229B793, 0x51724CEC, 0x4D4D6D31, 0xB2E0E327},
13516 {0xDE451694, 0x1C3377CC, 0x54618EAA, 0x93DB0426, 0x95F0D2FB, 0x25A653E3, 0x92D5777C, 0x84069087} } ,
13517 { {0xE9F03F42, 0x4C657BDB, 0x6EA4F373, 0x8DAC9941, 0xF533DAE0, 0xA4E86D63, 0xA66EB8BC, 0x767CA3BD},
13518 {0xFE1DDF0E, 0xB9119678, 0x2528529C, 0x01DAFE4C, 0x4CB5DBEF, 0x8A920BAC, 0x68BF8F8F, 0x6F03732E} } } ,
13519 { { {0x726DFF44, 0xB777E6F5, 0x75DC9FFC, 0x26DAFE19, 0x3E997001, 0x8CB6738C, 0x6542808A, 0x1C19A800},
13520 {0x73208793, 0x7A499858, 0x313BFF6A, 0xB4DA11CB, 0x347B6992, 0xA7FD3DC0, 0xF0919590, 0x635DFF79} } ,
13521 { {0x4822D017, 0x5C264CD8, 0xBF414208, 0x219E1461, 0x9E2C0FDB, 0xDEFD90C5, 0x69AFE9DF, 0xA36C0C79},
13522 {0xD35D0C9A, 0x15F9234D, 0x85FD0D6D, 0x084FF851, 0x5815EEA5, 0x72D7D236, 0x7935F10C, 0x65A8B0D4} } } ,
13523 { { {0x83A6F8F8, 0x00F98370, 0x131CFF9F, 0x7274C7F8, 0x18361845, 0x1ED01291, 0x71F9F20F, 0x7DB7BD74},
13524 {0x5CC2CFD3, 0x5D8D82A8, 0xA1C3B775, 0x41D8F25E, 0x31957F23, 0x6F0717FA, 0x70C36B74, 0x8255581C} } ,
13525 { {0x6ED4DFE8, 0x8A96CF00, 0x96BE1EFB, 0x48DD3C74, 0x4F99F73D, 0xE92664D3, 0x3C3AB85D, 0x532FA8D2},
13526 {0x666150DB, 0xC89908A0, 0x538C77B5, 0xFCB6FC73, 0x8B5911EB, 0xD1AA891E, 0x656D53D3, 0x7D9CAD5F} } } } ;
13528 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3213 a000");
13529 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3214 a001");
13530 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3215 a010");
13531 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3216 a011");
13532 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3217 a100");
13533 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3218 a101");
13534 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3219 a110");
13535 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3220 a111");
13536 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3221 a200");
13537 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3222 a201");
13538 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3223 a210");
13539 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3224 a211");
13542 static const fp12_t var_a = { { { {0xADB5D780, 0xF82B7DC6, 0xCD4049F6, 0x12A9ABF4, 0xB5138BE3, 0xEAF6D938, 0xCE69BFD8, 0x4EF054FE},
13543 {0x7BC0ECD4, 0xD42D9E2D, 0xE1C2B8F1, 0x6AB14ED1, 0xECB5A886, 0xC1700D38, 0xCCA95FFB, 0x8E390B78} } ,
13544 { {0x28E83662, 0xF5E67078, 0xFB55868B, 0x3464C455, 0xE3F58760, 0x454193CF, 0xA2E54C45, 0x09F21A19},
13545 {0xB636D0BF, 0xEE366130, 0xB3E8B49F, 0xB1F51FD7, 0xA20FE5E0, 0x1B012F3F, 0x026BDFDE, 0x3BCF8868} } } ,
13546 { { {0x41A70D0B, 0x9679E099, 0xF29699DF, 0x0595C3B7, 0xDB3EF51B, 0xDF2F4E49, 0xF2B6AB91, 0x2F0BAF99},
13547 {0x97520E0C, 0x868A5F64, 0x4BB903EE, 0x4B0CD410, 0xD5AB1047, 0xB9B002F9, 0x0AD395A0, 0x61E556D4} } ,
13548 { {0xB5492ACF, 0xA16FC674, 0x7C9B44A2, 0x203737BA, 0xDEA72AF9, 0xE236CAFA, 0xF9AD1617, 0x3D1B7293},
13549 {0x301E287A, 0x88CD7EFA, 0x15DAB3F0, 0x7D726282, 0x73163C06, 0x05A2F485, 0x414C6A7A, 0x42587613} } } ,
13550 { { {0x31ABBD26, 0x22FFA2D3, 0xA7D91CAC, 0xECF3CE77, 0x74B7F7B0, 0xD80AAE77, 0xB73ECC4C, 0x977BE9EA},
13551 {0x558CB900, 0x1BE955B0, 0x15E54E11, 0x1B0C3447, 0xF3AB2098, 0x93BF0BC7, 0x44FF1EF4, 0x4AD553D3} } ,
13552 { {0xCB0C332A, 0x63002E94, 0x42ACEDA2, 0x4AD5AD3D, 0x6305F008, 0x789026E7, 0x266094CC, 0x0FCB00B8},
13553 {0xBCEA6BB0, 0xA8F4FB9E, 0xB7E1F0CF, 0x28DE53A1, 0xB978412F, 0x3A6CFE1E, 0xAF06120E, 0x6983881E} } } } ;
13554 static const fp12_t var_expected = { { { {0x56DAEBC0, 0x7C15BEE3, 0x66A024FB, 0x8954D5FA, 0x5A89C5F1, 0x757B6C9C, 0x6734DFEC, 0x27782A7F},
13555 {0xBDE0766A, 0xEA16CF16, 0xF0E15C78, 0x3558A768, 0x765AD443, 0xE0B8069C, 0x6654AFFD, 0x471C85BC} } ,
13556 { {0x14741B31, 0xFAF3383C, 0xFDAAC345, 0x1A32622A, 0xF1FAC3B0, 0xA2A0C9E7, 0xD172A622, 0x04F90D0C},
13557 {0x0C3182AD, 0x76927571, 0x443049F3, 0xE283663C, 0x7AF937CA, 0x8B30C5D5, 0x21455E03, 0x7AF19395} } } ,
13558 { { {0x51E9A0D3, 0x4AB43525, 0x63873C93, 0x0C53B82C, 0x9790BF68, 0x6D47D55A, 0x196AC3DD, 0x748FA72E},
13559 {0x4BA90706, 0x43452FB2, 0x25DC81F7, 0xA5866A08, 0xEAD58823, 0x5CD8017C, 0x0569CAD0, 0x30F2AB6A} } ,
13560 { {0x0BBAAFB5, 0xD02F2813, 0xA88991F4, 0x19A4722D, 0x1944DA57, 0x6ECB93B3, 0x1CE5F920, 0x7B9788AB},
13561 {0x180F143D, 0x4466BF7D, 0x0AED59F8, 0x3EB93141, 0xB98B1E03, 0x02D17A42, 0xA0A6353D, 0x212C3B09} } } ,
13562 { { {0x98D5DE93, 0x117FD169, 0xD3EC8E56, 0x7679E73B, 0xBA5BFBD8, 0x6C05573B, 0x5B9F6626, 0x4BBDF4F5},
13563 {0x2AC65C80, 0x8DF4AAD8, 0x8AF2A708, 0x0D861A23, 0xF9D5904C, 0x49DF85E3, 0xA27F8F7A, 0x256AA9E9} } ,
13564 { {0x65861995, 0x3180174A, 0xA15676D1, 0x256AD69E, 0xB182F804, 0x3C481373, 0x13304A66, 0x07E5805C},
13565 {0x5E7535D8, 0xD47A7DCF, 0xDBF0F867, 0x946F29D0, 0x5CBC2097, 0x1D367F0F, 0x57830907, 0x34C1C40F} } } } ;
13567 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3225 a000");
13568 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3226 a001");
13569 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3227 a010");
13570 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3228 a011");
13571 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3229 a100");
13572 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3230 a101");
13573 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3231 a110");
13574 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3232 a111");
13575 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3233 a200");
13576 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3234 a201");
13577 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3235 a210");
13578 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3236 a211");
13581 static const fp12_t var_a = { { { {0x9B333203, 0xE88A3049, 0x01AA6DC6, 0x8243D801, 0x56AD57D6, 0xB20C3431, 0x054281C2, 0x29E4B84D},
13582 {0xF932A691, 0xDAC4869D, 0xD4144AE2, 0xD11D5F6F, 0x188A376D, 0x1A12D8CA, 0x213FA562, 0x1813DB1B} } ,
13583 { {0x37113946, 0x7DCE2F05, 0x349B7842, 0xF5CC87F7, 0x940B6028, 0xBF3417E2, 0xD09EEF82, 0x36A49D23},
13584 {0x0407C73C, 0x9837B708, 0x00AFBA76, 0xBC888E83, 0x9BC6989A, 0x8136DA59, 0x35946952, 0x3921DBD3} } } ,
13585 { { {0xB0093A68, 0x2DA3E6FB, 0xBB3FC7A3, 0x1C3612FC, 0xFA168119, 0x22BE87C5, 0xC58BCB41, 0x53F15B39},
13586 {0x522D2EDF, 0x0A19CAAE, 0x6B4A124F, 0xAB1A0E0E, 0x68D77965, 0x0825D317, 0x4934E1A4, 0x80DF1779} } ,
13587 { {0x7D267320, 0x3EBFD170, 0x3B8027A3, 0xEEE310DB, 0xA0177804, 0x8ECEEDFE, 0x20E5F530, 0x0B371705},
13588 {0xD5D612FF, 0x9BB30DB3, 0xD7B06320, 0x7A1D1A9A, 0x3D6E15AE, 0x937F1AB4, 0x7A60E296, 0x6824825A} } } ,
13589 { { {0xF2B3A3AE, 0x3A8F7B7B, 0xBF59E793, 0x89A35F84, 0x8C6E613F, 0xFD0BA658, 0x1EA1C026, 0x6F22CB1B},
13590 {0x80A4CE78, 0xF61B8FDE, 0xF194C7BD, 0x688234BA, 0xBD290F4E, 0x3A52B472, 0xA5B9BE2A, 0x23CE7D8F} } ,
13591 { {0x4391459C, 0xEBC56D07, 0xBFAED37B, 0x3DBAAF48, 0xAEE5EE01, 0xAD2BFA16, 0xFCA0AF7C, 0x17B2CD51},
13592 {0xB0274CC5, 0xFEAF3C28, 0x25D5292B, 0x30FFB649, 0xCABD8C0B, 0x470429FF, 0xA62F2AD9, 0x4FE73323} } } } ;
13593 static const fp12_t var_expected = { { { {0x7EAFB34F, 0xF3BC5CFD, 0xEB112686, 0xCAAAC250, 0x5547F0C5, 0xD6B6484E, 0xA2B0AEF5, 0x71FC2B87},
13594 {0xADAF6D96, 0xECD98827, 0x54461514, 0x72178608, 0xB6366091, 0x8AB99A9A, 0xB0AF40C5, 0x6913BCEE} } ,
13595 { {0x9B889CA3, 0x3EE71782, 0x9A4DBC21, 0x7AE643FB, 0x4A05B014, 0x5F9A0BF1, 0xE84F77C1, 0x1B524E91},
13596 {0x0203E39E, 0x4C1BDB84, 0x8057DD3B, 0x5E444741, 0xCDE34C4D, 0x409B6D2C, 0x9ACA34A9, 0x1C90EDE9} } } ,
13597 { { {0xD8049D34, 0x96D1F37D, 0x5D9FE3D1, 0x8E1B097E, 0xFD0B408C, 0x915F43E2, 0xE2C5E5A0, 0x29F8AD9C},
13598 {0xDA2CB1BD, 0x04842A2F, 0x9FE0F8CB, 0x5F15DD57, 0x5E5D018D, 0x81C317C1, 0xC4A9DEE6, 0x9D795B1D} } ,
13599 { {0x3E933990, 0x9F5FE8B8, 0x9DC013D1, 0x7771886D, 0x500BBC02, 0x476776FF, 0x9072FA98, 0x059B8B82},
13600 {0x9C0123CD, 0xCD50CBB2, 0xD6142133, 0xC697639D, 0xC8A84FB1, 0xC76FBB8F, 0x5D3FDF5F, 0x911C108E} } } ,
13601 { { {0xF959D1D7, 0x9D47BDBD, 0x5FACF3C9, 0xC4D1AFC2, 0x4637309F, 0x7E85D32C, 0x8F50E013, 0x3791658D},
13602 {0x4052673C, 0xFB0DC7EF, 0x78CA63DE, 0x34411A5D, 0x5E9487A7, 0x1D295A39, 0xD2DCDF15, 0x11E73EC7} } ,
13603 { {0xA1C8A2CE, 0xF5E2B683, 0x5FD769BD, 0x9EDD57A4, 0x5772F700, 0x5695FD0B, 0xFE5057BE, 0x0BD966A8},
13604 {0x0929C0B0, 0x7ECEE2ED, 0xFD268439, 0x2208B174, 0x8F500AE0, 0x21324335, 0xF3270381, 0x84FD68F2} } } } ;
13606 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3237 a000");
13607 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3238 a001");
13608 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3239 a010");
13609 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3240 a011");
13610 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3241 a100");
13611 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3242 a101");
13612 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3243 a110");
13613 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3244 a111");
13614 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3245 a200");
13615 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3246 a201");
13616 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3247 a210");
13617 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3248 a211");
13620 static const fp12_t var_a = { { { {0x0931D0EE, 0x58A3C9BA, 0x74F6C381, 0xD03DAE64, 0x3488B414, 0x0C06CF68, 0xF7F97E03, 0x0699718B},
13621 {0xB3980FF5, 0xE13FA362, 0x2216E9F4, 0x59850616, 0x8E5960F1, 0x627F841C, 0x1CB8DC01, 0x70FCD2C4} } ,
13622 { {0x58105117, 0xCBE399A1, 0xA8B56706, 0x24CA0732, 0xE28B9904, 0xD5415754, 0x0E2E3A16, 0x0FE7B4CB},
13623 {0xA0ECE6A6, 0x07F4EC18, 0x2841A160, 0xF9FC02EE, 0xC0C4E228, 0x6089F4DA, 0xE256DE79, 0x31FBC17C} } } ,
13624 { { {0x61D00D0B, 0xCE56BCE0, 0xECD6A12D, 0x207FF0E7, 0xC1B56029, 0x0E847B40, 0xBCDCA63C, 0x14051114},
13625 {0x0A15FBFA, 0x194445C0, 0x12849293, 0x3DEE09DD, 0xB266A448, 0x5E0F655C, 0x9632659E, 0x08C705BE} } ,
13626 { {0x3E4C9D55, 0x27CA4B8A, 0xDF288735, 0x72C50E51, 0x678606DB, 0xDDC47EC7, 0x7DC6E417, 0x4E8FBE58},
13627 {0x4D6013B5, 0xFE1BB81C, 0x47F5157C, 0xDEF7795A, 0x45E302F1, 0xA6F634E6, 0x152059A1, 0x95C03F19} } } ,
13628 { { {0xA1764704, 0xE386992E, 0x8FA09597, 0x80610AC0, 0x5D2E3EB7, 0xCA9B3D4C, 0x51EB4DE0, 0x204DC21E},
13629 {0xB7033A45, 0xE11F763E, 0x7AABAE0A, 0x6634C934, 0xA293A335, 0xE1ECE8A5, 0xFB396914, 0x5B10DF9F} } ,
13630 { {0xFF92B63F, 0x482624D6, 0x9F4FB971, 0x414AE784, 0xBB8E408D, 0x88F0B645, 0x72B1A363, 0x161B1375},
13631 {0x5F313C3B, 0x2B88E316, 0xEB45243F, 0xE7F48472, 0x82AD13BD, 0xE1B7D9DD, 0x27E9A72E, 0x047CE3E5} } } } ;
13632 static const fp12_t var_expected = { { { {0x0498E877, 0xAC51E4DD, 0x3A7B61C0, 0x681ED732, 0x1A445A0A, 0x860367B4, 0xFBFCBF01, 0x034CB8C5},
13633 {0x0AE22248, 0xF017168A, 0x7B47649D, 0x364B595B, 0xF11DF553, 0x2EEFF043, 0x2E6BDC15, 0x958838C3} } ,
13634 { {0x5D1E42D9, 0xE56911A9, 0xBE96A326, 0x9BEDD9E9, 0x1B37115C, 0xE850D9E0, 0xA7268B1F, 0x64FDA9C6},
13635 {0x50767353, 0x03FA760C, 0x1420D0B0, 0x7CFE0177, 0x60627114, 0xB044FA6D, 0x712B6F3C, 0x18FDE0BE} } } ,
13636 { { {0xE1FE20D3, 0x66A2A348, 0x60A7403A, 0x19C8CEC4, 0x0ACBF4EF, 0x84F26BD6, 0x7E7DC132, 0x670C57EB},
13637 {0x050AFDFD, 0x8CA222E0, 0x89424949, 0x1EF704EE, 0x59335224, 0x2F07B2AE, 0x4B1932CF, 0x046382DF} } ,
13638 { {0xD03C68F8, 0x135C6A9D, 0x59D0333E, 0x42EB5D79, 0x5DB44848, 0x6C926D99, 0x5EF2E020, 0x8451AE8D},
13639 {0xD7C62428, 0xFE8520E6, 0x8E367A61, 0x790492FD, 0xCCE2C653, 0x512B48A8, 0xAA9F9AE5, 0xA7E9EEED} } } ,
13640 { { {0x50BB2382, 0xF1C34C97, 0x47D04ACB, 0xC0308560, 0x2E971F5B, 0x654D9EA6, 0x28F5A6F0, 0x1026E10F},
13641 {0x0C97B770, 0xF006FFF8, 0xA791C6A8, 0x3CA33AEA, 0x7B3B1675, 0xEEA6A288, 0x1DAC229E, 0x8A923F31} } ,
13642 { {0x30DF756D, 0x238A5744, 0xB9E3CC5C, 0x2A2E4A12, 0x87B86521, 0x42288958, 0xD9683FC6, 0x6817591B},
13643 {0xE0AEB86B, 0x153BB663, 0xDFDE81C3, 0x7D831889, 0x6B47CEB9, 0xEE8C1B24, 0xB40441AB, 0x5F484153} } } } ;
13645 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3249 a000");
13646 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3250 a001");
13647 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3251 a010");
13648 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3252 a011");
13649 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3253 a100");
13650 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3254 a101");
13651 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3255 a110");
13652 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3256 a111");
13653 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3257 a200");
13654 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3258 a201");
13655 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3259 a210");
13656 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3260 a211");
13659 static const fp12_t var_a = { { { {0xAEA79834, 0xE0767348, 0x1CDD7D0A, 0xD35E73E8, 0x86220108, 0x11AB128C, 0x1F194F55, 0x3F9881CE},
13660 {0xD8598B89, 0x851D0CF6, 0x72E839DF, 0x9069E471, 0x36454DF7, 0xC684DFF7, 0x33F9B90A, 0x07FFD415} } ,
13661 { {0xE1CE78BA, 0x760D2982, 0x7E55ABAD, 0x8676F9DC, 0xB04E025F, 0xA342BA62, 0x948CC0E7, 0x343659A4},
13662 {0x7D8250D1, 0xD55C92EB, 0x7ADB72A4, 0x1B1DDCFA, 0x9FEB2036, 0xDABC1B43, 0x0024A592, 0x0656486A} } } ,
13663 { { {0x925FD7AD, 0x0E7B4C11, 0xCF51558E, 0x34CB39A5, 0xB918D0B2, 0xA8328351, 0x4E4CF68B, 0xB2ABC112},
13664 {0x9EE3E059, 0x49BB0354, 0xB3AD736D, 0x1050C411, 0xE5267618, 0xC3CBB1E5, 0x28A93F1E, 0x803FB429} } ,
13665 { {0xB18B5812, 0xF590F74B, 0x5F19E611, 0x84542265, 0x6BA95ACB, 0xE8C0B3C3, 0x8B06E2C2, 0x5E3F72AB},
13666 {0x51EA0D5B, 0x4682F7B5, 0x5EB26CF7, 0x83BDE8C3, 0xC399C553, 0x57798F72, 0x89561240, 0x225BB0F0} } } ,
13667 { { {0xF5614EAA, 0xB43C61F3, 0x1020B361, 0xAA8CF054, 0x1E6A0A2F, 0x565783B3, 0xC7DFE8F3, 0x029D76CB},
13668 {0x8BAF0B77, 0x78B91CCF, 0x297A003C, 0xB55058D7, 0xDDE7F2CE, 0xAE948051, 0x00BCB727, 0x1CD223A3} } ,
13669 { {0x901824E5, 0x1383BE92, 0x5B07AEB8, 0xF41466FF, 0xC40C296F, 0x30CF1921, 0x40876626, 0x356EA707},
13670 {0x1F4715D9, 0xC7B5FE4E, 0x2AA31C09, 0x14357B0D, 0xC5064C42, 0x2684DA40, 0x68FBD607, 0x2667A835} } } } ;
13671 static const fp12_t var_expected = { { { {0x5753CC1A, 0x703B39A4, 0x0E6EBE85, 0x69AF39F4, 0x43110084, 0x88D58946, 0x0F8CA7AA, 0x1FCC40E7},
13672 {0x1D42E012, 0x4205CB54, 0x23B00C93, 0x51BDC889, 0x4513EBD6, 0xE0F29E31, 0xBA0C4A99, 0x6109B96B} } ,
13673 { {0x70E73C5D, 0xBB0694C1, 0x3F2AD5D6, 0xC33B7CEE, 0x5827012F, 0xD1A15D31, 0x4A466073, 0x1A1B2CD2},
13674 {0x6FD742B6, 0xEA258E4E, 0xA7A9A8F5, 0x9717C4CD, 0x79E6D4F5, 0xEB0E3BD7, 0x2021C0DD, 0x6034F396} } } ,
13675 { { {0x7A460624, 0x86B4EAE1, 0x51E49A6A, 0xA3EE7323, 0x867DAD33, 0x51C96FDE, 0x4735E95A, 0xB65FAFEA},
13676 {0x00880A7A, 0x2454C683, 0x4412A95A, 0x91B13859, 0x9C847FE6, 0xDF960728, 0xB4640DA3, 0x9D29A975} } ,
13677 { {0xD8C5AC09, 0xFAC87BA5, 0xAF8CF308, 0xC22A1132, 0xB5D4AD65, 0x746059E1, 0xC5837161, 0x2F1FB955},
13678 {0x5A0B20FB, 0x22B8C0B3, 0x1995261F, 0x4B67CAB2, 0x0BBE2784, 0xA96CF5EF, 0x64BA7734, 0x6E37A7D9} } } ,
13679 { { {0xFAB0A755, 0xDA1E30F9, 0x081059B0, 0xD546782A, 0x8F350517, 0xAB2BC1D9, 0xE3EFF479, 0x014EBB65},
13680 {0x76EDA009, 0xBBD3D340, 0xFEF8EFC1, 0xE43102BB, 0x98E53E41, 0x54FA6E5E, 0xA06DC9A8, 0x6B72E132} } ,
13681 { {0xF9222CC0, 0x89392421, 0x17BFC6FF, 0x839309D0, 0x8BF75992, 0x9617BAC6, 0xC0532127, 0x77C122E4},
13682 {0xC0B9A53A, 0x635243FF, 0xFF8D7DA8, 0x93A393D6, 0x0C746AFB, 0x10F29B56, 0xD48D5918, 0x703DA37B} } } } ;
13684 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3261 a000");
13685 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3262 a001");
13686 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3263 a010");
13687 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3264 a011");
13688 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3265 a100");
13689 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3266 a101");
13690 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3267 a110");
13691 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3268 a111");
13692 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3269 a200");
13693 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3270 a201");
13694 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3271 a210");
13695 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3272 a211");
13698 static const fp12_t var_a = { { { {0x7F667B13, 0x19A924BC, 0x483DA3DA, 0x3D2DFE5E, 0xDC23BB30, 0xE3412133, 0x72C25BF3, 0xB7E53523},
13699 {0xA8EDCE8D, 0x595479FA, 0x0E00BE26, 0x99406852, 0x98F4ADA1, 0x4ABAB830, 0xE234BAFC, 0x1FEE28A0} } ,
13700 { {0xAF172B1C, 0x136E4FAF, 0x291E95E1, 0x2D1936C8, 0x32A5A0E6, 0x33D9E486, 0x9A042E54, 0x2900F9CC},
13701 {0x54700A2F, 0x9C45A1C7, 0xEF4160B2, 0xFB3DDC60, 0x70577FF1, 0x061C3721, 0x08FF86D6, 0x0F78C1A8} } } ,
13702 { { {0xD71899FA, 0x87F1B168, 0xDE72A085, 0xF7DA3EFA, 0x1D07830C, 0x171FD784, 0x35776D6A, 0x5863B80F},
13703 {0x9F16A06E, 0x349E9E31, 0xCCCD9F40, 0xC50615F5, 0x3F0B2014, 0x5F3AD259, 0xB90B0C78, 0x109AD71B} } ,
13704 { {0x8DE92A83, 0x4098F65E, 0xB5E9DC9B, 0xFCED6E5F, 0xE2299452, 0xC6AD01C2, 0xC12D8947, 0x9306D8ED},
13705 {0x9858CFE1, 0x0E6670AF, 0x14874E2E, 0x408ED7AC, 0xF029A4DE, 0xBD3DB876, 0x4F233517, 0x6546C127} } } ,
13706 { { {0xA618291E, 0x458B3E13, 0x3A5E8E49, 0xDD67A6EC, 0x07898258, 0xBA1FDD6A, 0xFA1480EB, 0x6D575C3B},
13707 {0x1617A695, 0x516DB0B4, 0xCAC5C803, 0x41AE6706, 0xFA1D0470, 0xB5963F01, 0x6A4C14CC, 0x78C0B187} } ,
13708 { {0x3794A16F, 0xE1475B89, 0x3BA98AE8, 0x7C08EABB, 0x508BD6DE, 0xAB9F111A, 0xDDC28979, 0xB649F4DB},
13709 {0xCE0DD8CA, 0x6731BD4E, 0x5ACFE7CF, 0xC7E113CA, 0xC4812287, 0x1FAE5B6F, 0xA5FF8C77, 0x3B45DA4A} } } } ;
13710 static const fp12_t var_expected = { { { {0xF0C957D7, 0x8C4BD736, 0x8E5AC190, 0xA81FD57F, 0x98032272, 0x6F50BECF, 0xD9709C0E, 0xB8FC69F2},
13711 {0x058D0194, 0xAC2181D6, 0x713C4EB6, 0x56290A79, 0xF66B9BAB, 0xA30D8A4D, 0x9129CB92, 0x6D00E3B1} } ,
13712 { {0xD78B958E, 0x89B727D7, 0x148F4AF0, 0x168C9B64, 0x1952D073, 0x19ECF243, 0x4D02172A, 0x14807CE6},
13713 {0x5B4E1F65, 0xCD9A15BC, 0xE1DC9FFC, 0x8727C480, 0x621D04D3, 0x80BE49C6, 0x248F317F, 0x64C63035} } } ,
13714 { { {0x6B8C4CFD, 0xC3F8D8B4, 0x6F395042, 0x7BED1F7D, 0x0E83C186, 0x0B8FEBC2, 0x9ABBB6B5, 0x2C31DC07},
13715 {0xCF8B5037, 0x1A4F4F18, 0xE666CFA0, 0x62830AFA, 0x9F85900A, 0x2F9D692C, 0xDC85863C, 0x084D6B8D} } ,
13716 { {0xF80AAF8F, 0x1FC3C007, 0x4530DDF1, 0x07FF8D80, 0x1B060F04, 0x6106AF17, 0x00A632B8, 0xA68D3BD8},
13717 {0x7D42823E, 0x86AA7D30, 0x747F96BA, 0xA9D04226, 0x22061749, 0x5C4F0A71, 0xC7A108A0, 0x8FAD2FF4} } } ,
13718 { { {0xD30C148F, 0xA2C59F09, 0x1D2F4724, 0x6EB3D376, 0x03C4C12C, 0xDD0FEEB5, 0xFD0A4075, 0x36ABAE1D},
13719 {0xBC21ED98, 0x282E1D32, 0xCF9ED3A5, 0xAA6009D3, 0xA6FFC712, 0xD87B4DB6, 0xD535787A, 0x996A2824} } ,
13720 { {0x4CE06B05, 0xF01AF29D, 0x0810B517, 0xC78D4BAE, 0xD2373049, 0x537FB6C2, 0x0EF0B2D1, 0xB82EC9CF},
13721 {0x6706EC65, 0xB398DEA7, 0x2D67F3E7, 0xE3F089E5, 0xE2409143, 0x8FD72DB7, 0x52FFC63B, 0x1DA2ED25} } } } ;
13723 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3273 a000");
13724 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3274 a001");
13725 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3275 a010");
13726 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3276 a011");
13727 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3277 a100");
13728 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3278 a101");
13729 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3279 a110");
13730 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3280 a111");
13731 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3281 a200");
13732 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3282 a201");
13733 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3283 a210");
13734 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3284 a211");
13737 static const fp12_t var_a = { { { {0x94F97DFC, 0x9B2F8C81, 0xC570B310, 0xFA49E2C3, 0xC3D2434A, 0x94787B20, 0xA8469328, 0x7F67A7D7},
13738 {0x54234EA9, 0xF96C9A22, 0x9BA6E618, 0x005486EC, 0x9D6FF781, 0x1975A311, 0x9EF79A58, 0x251BCAEA} } ,
13739 { {0x54E5CD81, 0x3E18C0DC, 0x24F88333, 0xB6703EAD, 0xA48CEEDD, 0xACA57317, 0xD7F88F8C, 0x1AE12737},
13740 {0xA06B3FA5, 0xEF63F7A2, 0x26BA5329, 0x95392E6A, 0x1360574E, 0xF2748D7D, 0xF37E5864, 0x19F56FFF} } } ,
13741 { { {0x494345F3, 0xD1DB5AD4, 0xE6EFB276, 0x539BFB06, 0x79C1A451, 0x6D625CD6, 0x274B9E15, 0x169DC8D8},
13742 {0xC568EAAE, 0x73D9E4A5, 0x52EAE525, 0x33704AB2, 0xF821CBB9, 0x491ED3CD, 0xBF7FCEA1, 0x12870251} } ,
13743 { {0x8B9EEE55, 0x9FE87EEE, 0xD745E8BA, 0xB2D28F5A, 0x06A50BA9, 0x90BA7124, 0x969800E2, 0x464817AF},
13744 {0xDA424BB6, 0xEC4A68D0, 0x61A67449, 0xEDEDC777, 0x03A0C85F, 0xF13D9600, 0xDFF979A0, 0xB7F8F1AC} } } ,
13745 { { {0x6D7111EC, 0x2FD1DAD7, 0x05F586FB, 0xF319F9E0, 0x50E6C070, 0x0D1ADEBF, 0x60F5E93F, 0xB9651A1A},
13746 {0xAE043E56, 0x06E73501, 0x81F7F3FC, 0xCD6514E4, 0xDEDE7299, 0x124342F1, 0x720DBF83, 0x0E8413B8} } ,
13747 { {0x234917CC, 0x4DEE70DA, 0xE95DAB2D, 0x646D0438, 0x4B1CE611, 0x237CB628, 0xC3E04253, 0x084A9489},
13748 {0xFFD3D6D2, 0xA75D8BA0, 0xF371D098, 0x9E14D309, 0xBE02F616, 0xF2F86DAC, 0x93274858, 0x6D5A9003} } } } ;
13749 static const fp12_t var_expected = { { { {0xCA7CBEFE, 0x4D97C640, 0xE2B85988, 0x7D24F161, 0x61E921A5, 0x4A3C3D90, 0xD4234994, 0x3FB3D3EB},
13750 {0xDB27C1A2, 0xFC2D91E9, 0xB80F62AF, 0x09B319C6, 0x78A9409B, 0x8A6AFFBE, 0x6F8B3B40, 0x6F97B4D6} } ,
13751 { {0xDB89010E, 0x1E83A546, 0xFCB8313D, 0x64C0F5A6, 0x7C37BC49, 0xD402E7C1, 0x0C0BB5DA, 0x6A7A62FD},
13752 {0x014BBA20, 0x772940AA, 0x7D991938, 0xD4256D85, 0x33A17081, 0xF6EA74F4, 0x19CE9A46, 0x6A048761} } } ,
13753 { { {0xD5B7BD47, 0xE864F242, 0xDDB3C8DE, 0x3356D3D3, 0xE6D21703, 0x34615CA0, 0x33B53D1F, 0x6858B3CD},
13754 {0xE2B47557, 0xB9ECF252, 0x29757292, 0x99B82559, 0xFC10E5DC, 0xA48F69E6, 0xDFBFE750, 0x09438128} } ,
13755 { {0xF6E59178, 0xCF6B844F, 0xD5DEE400, 0x62F21DFD, 0xAD43CAAF, 0xC60D66C7, 0xEB5B6E85, 0x802DDB38},
13756 {0x6D2125DB, 0xF6253468, 0xB0D33A24, 0xF6F6E3BB, 0x01D0642F, 0x789ECB00, 0x6FFCBCD0, 0x5BFC78D6} } } ,
13757 { { {0xB6B888F6, 0x97E8ED6B, 0x02FAC37D, 0x798CFCF0, 0xA8736038, 0x868D6F5F, 0x307AF49F, 0x5CB28D0D},
13758 {0xD7021F2B, 0x03739A80, 0x40FBF9FE, 0xE6B28A72, 0xEF6F394C, 0x8921A178, 0x3906DFC1, 0x074209DC} } ,
13759 { {0x11A48BE6, 0xA6F7386D, 0x74AED596, 0xB236821C, 0x258E7308, 0x91BE5B14, 0xE1F02129, 0x04254A44},
13760 {0x7FE9EB69, 0x53AEC5D0, 0xF9B8E84C, 0x4F0A6984, 0x5F017B0B, 0x797C36D6, 0xC993A42C, 0x36AD4801} } } } ;
13762 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3285 a000");
13763 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3286 a001");
13764 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3287 a010");
13765 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3288 a011");
13766 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3289 a100");
13767 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3290 a101");
13768 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3291 a110");
13769 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3292 a111");
13770 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3293 a200");
13771 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3294 a201");
13772 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3295 a210");
13773 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3296 a211");
13776 static const fp12_t var_a = { { { {0x46C7AE7A, 0xFFA594C4, 0xB6F59AF4, 0xCD15D523, 0x1EA4521B, 0x418007C6, 0xFA8D8EB1, 0x377F0628},
13777 {0x1BDD4BAC, 0xFB67A66F, 0x6678167C, 0xEAE10E64, 0xCC48E0C8, 0x38D25DA4, 0xE11B3B7C, 0x5AA169CE} } ,
13778 { {0xEA134440, 0x8D5A926C, 0x3CBF6C38, 0x0E6843FF, 0x937BDA8C, 0x2010EDF3, 0x041DE7D4, 0x1768BB61},
13779 {0x1981B0D6, 0x6993A3AF, 0x1A32FBDD, 0xC32BB79C, 0xC10666FD, 0xB899695A, 0x374C41D2, 0x7E5BAA06} } } ,
13780 { { {0xA12DB72B, 0x84F08CC4, 0xDE1A23AC, 0x22CB7B88, 0x059B4914, 0xC3F9AC4F, 0x9E6A1AFF, 0x465A9E88},
13781 {0xEECC20D7, 0x9A2BD156, 0xBD0303CD, 0x6B81AF95, 0x42947B6A, 0x8B2250E1, 0x73DC2131, 0x0B16CC2F} } ,
13782 { {0xFFEB1BDC, 0xAC200812, 0xEA755769, 0x6B163246, 0xBACA670E, 0x61FA9AD1, 0x43590B00, 0x12F820E6},
13783 {0xD0F4D970, 0x78B83B34, 0x3DD7F87F, 0x63C451BA, 0x347C9EC2, 0x0A387F80, 0xB1A1D8CF, 0x710CFAF8} } } ,
13784 { { {0x017708C8, 0x0AF15241, 0x69925B5E, 0xC2ADB47D, 0x32D15BE5, 0x68AF1CD0, 0x72BF52A5, 0x3F55F0F6},
13785 {0x32A4D238, 0x2C8EB5E8, 0xC5EB9955, 0x6B38A78E, 0xBCCC8822, 0xCF2DC2BA, 0x50F2240D, 0x6238D981} } ,
13786 { {0x941113F9, 0xECE72139, 0xAB20B48B, 0xD0F82ABA, 0x37D8A8C1, 0x9DC65B47, 0x68271BBD, 0x6B552004},
13787 {0x6920D2E5, 0x1F6F58BF, 0xF02DF60F, 0x7381591E, 0xEB84CEDD, 0xB70F5831, 0xAB56904F, 0x154DD5DF} } } } ;
13788 static const bigint_t var_b = {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
13789 static const fp12_t var_expected = { { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13790 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
13791 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13792 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
13793 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13794 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
13795 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13796 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
13797 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13798 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
13799 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
13800 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
13802 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3297 a000");
13803 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3298 a001");
13804 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3299 a010");
13805 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3300 a011");
13806 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3301 a100");
13807 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3302 a101");
13808 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3303 a110");
13809 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3304 a111");
13810 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3305 a200");
13811 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3306 a201");
13812 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3307 a210");
13813 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3308 a211");
13816 static const fp12_t var_a = { { { {0x701B6245, 0xD9E7D59D, 0x913D3D45, 0xC81D7DFD, 0x218A4842, 0xF54D164A, 0xA0CD26CD, 0x6481B6CF},
13817 {0x2D4F460E, 0xF8D2BCD8, 0x11E6C1C1, 0xE0FB63F1, 0x0D6DA0AA, 0xD1B19BA7, 0x20D714EF, 0x2E1AAD3E} } ,
13818 { {0x2A88611F, 0x991941B5, 0x69EB4A7A, 0x0BBC0A22, 0x36FBB384, 0xA863490F, 0x99D9C38A, 0x7AB4956D},
13819 {0xB31EE940, 0xA2D55B75, 0x1736609A, 0x35721CD7, 0x09002A52, 0x7760302C, 0xCC2A6030, 0x1F348B16} } } ,
13820 { { {0x965AE5AB, 0x376A25B9, 0xC0591A82, 0x3B0D4EF1, 0xFADA1506, 0x30264A99, 0x104CBD5F, 0x3E40C270},
13821 {0xADDF3267, 0x45BDA6F2, 0x86DFDEBD, 0x0C2DFCC6, 0x5BB1140A, 0x4B70C0A2, 0x8C91A8F5, 0x24045E5F} } ,
13822 { {0xCAF44B15, 0xFB1AAE9F, 0x62B57769, 0x38F5B604, 0x33C4E74B, 0x4644C658, 0x00CF43F4, 0x81FCAB8B},
13823 {0xCF4241CE, 0x4C4C4AAE, 0xCAFD046E, 0x654B7CB4, 0x68CFA747, 0x264DF099, 0xFD1759DC, 0x302BD08F} } } ,
13824 { { {0x1A68D42B, 0x6E516D35, 0x5DF87735, 0x24126AD3, 0xE58C832E, 0xE38C08D1, 0xA885AA44, 0x55571C17},
13825 {0x33D1E197, 0x5D3AD867, 0x0F445168, 0xBBE457F5, 0xD0B5B8E1, 0x136F0645, 0xBC867483, 0x9FA687F4} } ,
13826 { {0x1DC52808, 0x58A7DDF1, 0xFDB94688, 0x5FCCE3ED, 0x5596A82A, 0x3F7F8116, 0x85DCF7DF, 0x0965C870},
13827 {0xEBB636B1, 0x636711A5, 0xC3A1E080, 0x56766AE1, 0x7E1FBB96, 0x7980ACB0, 0x2522AA2E, 0xB7255210} } } } ;
13828 static const bigint_t var_b = {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
13829 static const fp12_t var_expected = { { { {0x701B6245, 0xD9E7D59D, 0x913D3D45, 0xC81D7DFD, 0x218A4842, 0xF54D164A, 0xA0CD26CD, 0x6481B6CF},
13830 {0x2D4F460E, 0xF8D2BCD8, 0x11E6C1C1, 0xE0FB63F1, 0x0D6DA0AA, 0xD1B19BA7, 0x20D714EF, 0x2E1AAD3E} } ,
13831 { {0x2A88611F, 0x991941B5, 0x69EB4A7A, 0x0BBC0A22, 0x36FBB384, 0xA863490F, 0x99D9C38A, 0x7AB4956D},
13832 {0xB31EE940, 0xA2D55B75, 0x1736609A, 0x35721CD7, 0x09002A52, 0x7760302C, 0xCC2A6030, 0x1F348B16} } } ,
13833 { { {0x965AE5AB, 0x376A25B9, 0xC0591A82, 0x3B0D4EF1, 0xFADA1506, 0x30264A99, 0x104CBD5F, 0x3E40C270},
13834 {0xADDF3267, 0x45BDA6F2, 0x86DFDEBD, 0x0C2DFCC6, 0x5BB1140A, 0x4B70C0A2, 0x8C91A8F5, 0x24045E5F} } ,
13835 { {0xCAF44B15, 0xFB1AAE9F, 0x62B57769, 0x38F5B604, 0x33C4E74B, 0x4644C658, 0x00CF43F4, 0x81FCAB8B},
13836 {0xCF4241CE, 0x4C4C4AAE, 0xCAFD046E, 0x654B7CB4, 0x68CFA747, 0x264DF099, 0xFD1759DC, 0x302BD08F} } } ,
13837 { { {0x1A68D42B, 0x6E516D35, 0x5DF87735, 0x24126AD3, 0xE58C832E, 0xE38C08D1, 0xA885AA44, 0x55571C17},
13838 {0x33D1E197, 0x5D3AD867, 0x0F445168, 0xBBE457F5, 0xD0B5B8E1, 0x136F0645, 0xBC867483, 0x9FA687F4} } ,
13839 { {0x1DC52808, 0x58A7DDF1, 0xFDB94688, 0x5FCCE3ED, 0x5596A82A, 0x3F7F8116, 0x85DCF7DF, 0x0965C870},
13840 {0xEBB636B1, 0x636711A5, 0xC3A1E080, 0x56766AE1, 0x7E1FBB96, 0x7980ACB0, 0x2522AA2E, 0xB7255210} } } } ;
13842 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3309 a000");
13843 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3310 a001");
13844 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3311 a010");
13845 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3312 a011");
13846 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3313 a100");
13847 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3314 a101");
13848 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3315 a110");
13849 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3316 a111");
13850 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3317 a200");
13851 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3318 a201");
13852 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3319 a210");
13853 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3320 a211");
13856 static const fp12_t var_a = { { { {0xA66B1CA5, 0xC4BA672F, 0xD0FE0755, 0x8A667FA8, 0x091DF55E, 0xD4DA9340, 0x52594A2C, 0x30F08662},
13857 {0x6997CDDD, 0x88C8E677, 0x143E8BAA, 0xF7971EA7, 0x9574E3F9, 0xF0570708, 0x96894BB4, 0x27D4A4A6} } ,
13858 { {0xCA5A9EA5, 0xFABDEBAF, 0xA308CE8F, 0x870DE2B5, 0xC588531A, 0x5B2FA527, 0x0E6B11CE, 0x9A892A03},
13859 {0x89E78B46, 0x31FDA4CA, 0xEC51C95C, 0xD8012B02, 0x781AF348, 0x45834433, 0x6C8CCA24, 0x0F6AA872} } } ,
13860 { { {0xE080DFBB, 0x8307CF96, 0x8226A306, 0x76E84972, 0x8FBC5B20, 0xCD6C7208, 0xF5391A8F, 0x5898FFC1},
13861 {0x1BA370B6, 0x0B774AA5, 0x7AB64A39, 0x010E9EB5, 0xCEC599DA, 0x9D78B273, 0xC4DFD328, 0x7181D170} } ,
13862 { {0x18DF78CB, 0x29B40390, 0xE70CC889, 0xA617153F, 0x57841E53, 0x67134C7A, 0x45589439, 0x01564FCB},
13863 {0xB562FCB0, 0xFD5F1E36, 0x806DB9B7, 0x0569257D, 0xD1AB870C, 0x4EE676BB, 0xFB2613CB, 0x79756BF2} } } ,
13864 { { {0x71B7FEF9, 0xF2DCCFA7, 0xDAFC4200, 0xF019359B, 0x9F50205E, 0x95A3C0C0, 0x7A2E1362, 0x54414149},
13865 {0x6A9BFAE2, 0x3290AD45, 0x579E1974, 0x94BFE8DE, 0x537F5623, 0xF502434B, 0x2D088994, 0x1DF75653} } ,
13866 { {0x74F4848C, 0x2AEC797B, 0xD96D8B3E, 0xE91FC495, 0xDBCCA9AE, 0x220DC497, 0x9173A1BA, 0x3A547039},
13867 {0x15FF7CA0, 0x0FB83C6E, 0xE9303174, 0xE638E511, 0xB30F577C, 0x5C5D20CD, 0xB8B78630, 0x7E945B17} } } } ;
13868 static const bigint_t var_b = {0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
13869 static const fp12_t var_expected = { { { {0x5458866C, 0xDD5646E6, 0x9D15C500, 0x5C7D9C84, 0xC0FA857F, 0x562D104A, 0x2532C9F3, 0x44B875A6},
13870 {0xBED0DA04, 0x7E09A289, 0xA13B71CB, 0x830A5BB8, 0x6E2F82BE, 0xBC0B81BE, 0x9C4CE0C2, 0x626C6937} } ,
13871 { {0xBCD0300D, 0xD9B92ED3, 0xC0000E12, 0x7C7E14B6, 0x4EC45748, 0xF4012A1B, 0x1C0DFD5C, 0x7E92EF29},
13872 {0xE0127A80, 0x3704E090, 0x9D1A7FEA, 0x60E00342, 0xC6848973, 0xF2560EE7, 0x3AA40B80, 0x8623252B} } } ,
13873 { { {0x2AAF6AD0, 0x7F3640D5, 0xFEBB6A4D, 0x18A4AF28, 0xCA3FBE10, 0x25FD44FA, 0xE87EEE6B, 0x4C789984},
13874 {0x36A8EA52, 0x5D92E95A, 0x82614F7F, 0x9EA40EFE, 0xC5DA6A09, 0x296B987C, 0xCB79ED6A, 0x0F60B0D5} } ,
13875 { {0x54597799, 0x31A05ED9, 0x10EF8F70, 0x8FBE515C, 0x0653107C, 0x7344A0D9, 0x6E45497E, 0x9676DF4B},
13876 {0xD6D5019D, 0x634C2504, 0x9C260B3C, 0x3C2D0EBD, 0x8F79F01D, 0x61FCB017, 0xB5B28093, 0x03EE9DAD} } } ,
13877 { { {0xBB9A45FC, 0x9630E10A, 0x52483B68, 0xFE6A0FED, 0xBA93D827, 0x757E4507, 0x19C16C90, 0x5EF15FC1},
13878 {0x32C6A6A9, 0x20BD6FF4, 0xACFF47FB, 0x9AB147C4, 0x5EB6DE02, 0xE29EA989, 0x43C6F7B5, 0x4BBB9DC5} } ,
13879 { {0x2F24BE7E, 0xB2A2DCE0, 0x25253551, 0x222DFA99, 0xCD07310A, 0x0D99FC3D, 0x8173FACE, 0xB914AF12},
13880 {0x53A826B8, 0xAE5AB531, 0x1029BFE1, 0x23E748B0, 0xD4040AF8, 0xB6634588, 0xE186632C, 0xA320D233} } } } ;
13882 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3321 a000");
13883 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3322 a001");
13884 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3323 a010");
13885 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3324 a011");
13886 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3325 a100");
13887 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3326 a101");
13888 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3327 a110");
13889 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3328 a111");
13890 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3329 a200");
13891 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3330 a201");
13892 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3331 a210");
13893 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3332 a211");
13896 static const fp12_t var_a = { { { {0x0113A47D, 0x58247B05, 0x41E3FB6C, 0xFF20FEDA, 0x61720DA0, 0xF4E382B0, 0xC8D10300, 0xAD40466F},
13897 {0x860638A7, 0x419AAE10, 0x66F99A5B, 0x04D2DB46, 0x9BC143FB, 0xACAC3BE7, 0xBA8F3B1D, 0x9D03BBFD} } ,
13898 { {0x23AC5FF2, 0x484582FC, 0x0E3E48A3, 0x46D03773, 0x25B32EEA, 0x56E63AD0, 0x9BC22705, 0x153AC674},
13899 {0x5207BB29, 0xAFF12063, 0x8F2CCFB5, 0x8222290D, 0x44B61840, 0x3820AB58, 0x8D18C964, 0xA6F74179} } } ,
13900 { { {0xD55F9819, 0x001BAF43, 0x48981890, 0x98B5A873, 0xA88BAFCC, 0xB6369AAA, 0x87340E9E, 0x303C2B73},
13901 {0xF0A03EA3, 0x8356873F, 0x91DDB6CF, 0x2212DD3C, 0xD4AF5A18, 0x990F8F2B, 0x913CC545, 0x49CE3942} } ,
13902 { {0xCC38561C, 0xCACE4A04, 0xEBE00051, 0xC4808754, 0x5C1E118C, 0xCEC5F7E9, 0x49FE2F75, 0x17331177},
13903 {0x143A66EF, 0x25BD7F36, 0xD8440A93, 0xE2FA4435, 0xAE430795, 0xA8EA2044, 0x623739E2, 0x78B3328A} } } ,
13904 { { {0xBD0BD2A5, 0x2E02363B, 0xD8896C96, 0xFD7B82AB, 0x9A47F0E3, 0x9628E9FF, 0x60744EF0, 0x948CCC39},
13905 {0xB4508083, 0x3F06A25B, 0x13906439, 0x06B92CEC, 0x782A7093, 0x7FC92916, 0xDC6518D4, 0x63B15350} } ,
13906 { {0x7AE965BE, 0xF7C7E8CC, 0xB2FBFEAA, 0x7F46BBB8, 0xFE8B49DC, 0x4E3E37EE, 0xC692B16C, 0x85E09041},
13907 {0x03CA7AB8, 0xB98ED304, 0x2EB2EB2B, 0x0EBB838F, 0x17908A73, 0x75FC3CE5, 0x1E160B0D, 0x7DC0CEA9} } } } ;
13908 static const bigint_t var_b = {0x3974F544, 0x2DBFDE17, 0xDA309D45, 0xFD4F02D6, 0x61B19D62, 0x6A0A0038, 0x798D9B0F, 0x3378112D};
13909 static const fp12_t var_expected = { { { {0xCA8CF4C9, 0xDAA484BE, 0x8001048D, 0x84956286, 0x4DA8B8A1, 0xAFA32858, 0x5075452E, 0x5C52A52A},
13910 {0xB11F7BD1, 0xF3345A26, 0x5E9EFAD8, 0xE0DD7435, 0xA60441F6, 0x7FAFCF24, 0x2E1C2F25, 0x0303BA54} } ,
13911 { {0xDCB48C38, 0x57129DD6, 0xFDCF3B64, 0xA97C51B8, 0x02C8EE24, 0x333FD33D, 0xEBD1AEF3, 0x0C04CBC7},
13912 {0x0D625D56, 0xB8A8B8E3, 0xFF15C65B, 0xF82C8805, 0x9E3783A1, 0x7F2F58BB, 0x24639A2D, 0x0D882734} } } ,
13913 { { {0x115FA737, 0x41546F88, 0x468CFF9D, 0x46EF1AEC, 0xAAD29BFE, 0x9CDF9947, 0xB47B5A12, 0x30AB28B6},
13914 {0x5ED23413, 0x6B99FFC4, 0xD08A7B22, 0xCB1091BD, 0x3ABE4C36, 0x27A0E211, 0xCE0A63F9, 0x1C87620A} } ,
13915 { {0x15F425BF, 0xC44B2831, 0xF8C2F857, 0x3DE5620E, 0xA223FAC5, 0x99FB7D87, 0x6391196C, 0x3879E5C8},
13916 {0x1811C640, 0x193ECC91, 0x55FBBC7F, 0xD2795109, 0x2188A2A8, 0xA83EB2DC, 0xC32A19E6, 0x634750AE} } } ,
13917 { { {0xA91FE5DA, 0x1379F661, 0xA4B51D8E, 0x106F2DA8, 0x7104E4D6, 0xA3CBD1E1, 0xCD7F7E36, 0x71D29366},
13918 {0x38379778, 0x6952EA23, 0x0BBB28F2, 0x3CDD0A08, 0x28306263, 0x9057E800, 0x8EFF6706, 0x6912BF36} } ,
13919 { {0xFC5F06A4, 0x6F96420D, 0x96958171, 0xD7EA7856, 0xBC6009E8, 0xA9B4E30C, 0xC41A20FB, 0x3EEEEE60},
13920 {0xCD5DE921, 0x5D08EF51, 0x7DD10B03, 0x660A891E, 0x07A87B15, 0x3CFBBD4E, 0x07C6AE28, 0x6B7D1B69} } } } ;
13922 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3333 a000");
13923 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3334 a001");
13924 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3335 a010");
13925 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3336 a011");
13926 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3337 a100");
13927 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3338 a101");
13928 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3339 a110");
13929 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3340 a111");
13930 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3341 a200");
13931 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3342 a201");
13932 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3343 a210");
13933 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3344 a211");
13936 static const fp12_t var_a = { { { {0x78428BBA, 0xBDBF9E45, 0x57338C5C, 0xBB11661A, 0xB063B240, 0x269CB6C8, 0x83578D7E, 0x74D7784F},
13937 {0x10827F80, 0x19ED2C42, 0x1DAAD91F, 0x59A0421B, 0x8986A792, 0xA4BF86A8, 0x77220603, 0x710F8FAB} } ,
13938 { {0xC75D8BF3, 0xB49E8E2F, 0xF900C9A5, 0x0D80897E, 0xA8A7E1D1, 0x68197EEC, 0xA9CA6147, 0x3CFB8501},
13939 {0x5498E856, 0x443B48E6, 0x89B5CCB9, 0xB2F92C63, 0x7A15B77D, 0xF5B014BE, 0xFD887AD9, 0x4EF8A438} } } ,
13940 { { {0xE5160905, 0x455D8E20, 0xC23D1FFE, 0x478B0E43, 0xA3C15BA6, 0x56CD8CC7, 0x6C715863, 0x044F6992},
13941 {0x9A3BC53A, 0x7707C757, 0x6B3E2208, 0x6CE81AED, 0x7AF37693, 0x96E1C114, 0x8641E2C1, 0x1D2B1BFD} } ,
13942 { {0x07100BA7, 0x5CE94CA8, 0x9F11FE8B, 0xE88AB5B9, 0x88CACC83, 0x48893841, 0xEB7E691A, 0x3E24D9A9},
13943 {0xB63F5860, 0xBBB3A6DB, 0x4F9D3B01, 0x25D3D57D, 0x0D91A506, 0x00958154, 0xD1E52B91, 0x6E565CC8} } } ,
13944 { { {0xA3E28800, 0x207DA4CD, 0xBE7952E7, 0xB2B8772B, 0x7BDEDC1A, 0xD72642FE, 0x822724AC, 0x9A0AF790},
13945 {0xBE17C56E, 0x593615BD, 0x036865F6, 0xC00A4280, 0xF989C212, 0xEBDE72FB, 0xDAF8C3BE, 0x12EF8F93} } ,
13946 { {0x6D6F974E, 0xFA2E06BD, 0x8A18A715, 0xA640849D, 0xE16C3737, 0xDC17A84E, 0xCD7071F4, 0x0AE09B98},
13947 {0x07267622, 0xDAA9BE67, 0x934121E6, 0x5EDAEDE6, 0x42F5AF47, 0x5133759D, 0xDFB6E1B0, 0x1A40583F} } } } ;
13948 static const bigint_t var_b = {0x5A2E49EF, 0x9481E928, 0xB205D80D, 0x0551A10F, 0x5E880640, 0x71F63C75, 0xAA01AB06, 0xBFE0C7EA};
13949 static const fp12_t var_expected = { { { {0x38806479, 0x23E81B76, 0x0597EC05, 0xEC79DDAA, 0x6F105BF3, 0x3D4EA8DA, 0xD7FF1CEF, 0x99F6786A},
13950 {0x0DD855DB, 0x0D7F038F, 0x327304D9, 0x94EED076, 0x1843AEF0, 0x5AC7E008, 0xE49D08C5, 0x20A41607} } ,
13951 { {0x243E3AFB, 0x661ABA96, 0xD8243D6C, 0x7F77100A, 0xA3C53DC5, 0xB82E834C, 0xB22D12A0, 0x12BE9F79},
13952 {0xB9187303, 0xA43C004C, 0x0C4D681B, 0x77220E8F, 0x26DE0CC5, 0x06C5EFC1, 0xE0AE0E8D, 0x5983AF96} } } ,
13953 { { {0x1144AB07, 0x3B632DB9, 0x5F88576F, 0xCBDF61BD, 0xA8293A93, 0xE36F009D, 0x9F83B923, 0xB266C5DA},
13954 {0x2C7EB3FF, 0xFDA18FAF, 0x6CB47897, 0x0A670FAC, 0x219915A4, 0xAFF3CFB4, 0x6A43D154, 0x721B0264} } ,
13955 { {0x6B22842D, 0x7711F149, 0xBBB3A574, 0x05DE8C72, 0x5705EDE2, 0xF85B2FED, 0x650ED9B4, 0x872F74BB},
13956 {0xA8F5D7BC, 0x814E9897, 0x21E20FAE, 0x561E53A3, 0x13C551D3, 0xBFE1ADBD, 0x31956033, 0x648A9500} } } ,
13957 { { {0xB6196CC8, 0xB01E6101, 0x715F0469, 0xC67D92E5, 0xEB443075, 0x73A1D1B6, 0x3294B675, 0x3DA45412},
13958 {0xB9B3F518, 0xE5394AD6, 0x679233EA, 0xD1052A74, 0xDC2719B3, 0x2BC77A35, 0x1990C41B, 0xADF9BED5} } ,
13959 { {0x4EEE81EF, 0x48BB4856, 0x9A46790E, 0x3C6D9F3C, 0x34AD2F37, 0xBEA36ED7, 0x1F35760E, 0x4B46485F},
13960 {0xDB95E4A4, 0xD02DCD70, 0xACF9A7E7, 0x7E00C70F, 0x30C47B78, 0xA2D3A239, 0x026CBD9E, 0x017B5677} } } } ;
13962 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3345 a000");
13963 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3346 a001");
13964 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3347 a010");
13965 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3348 a011");
13966 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3349 a100");
13967 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3350 a101");
13968 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3351 a110");
13969 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3352 a111");
13970 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3353 a200");
13971 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3354 a201");
13972 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3355 a210");
13973 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3356 a211");
13976 static const fp12_t var_a = { { { {0xC2E082FA, 0x08EF153E, 0x7932A3ED, 0x4B85D82E, 0xD9D2BD8B, 0x6F95A406, 0x1CC6CBCC, 0x1D6695BB},
13977 {0x9F7E4225, 0xD7F33FE5, 0x219E5AD0, 0x502AF154, 0xD936E20D, 0xEE140242, 0x36F205FC, 0x29B736D8} } ,
13978 { {0x8CCE4D89, 0xEAF3CD05, 0xEA57C62F, 0x519F7888, 0xECE55AB3, 0xB5ABE7DD, 0xCE843D1D, 0x21B2E752},
13979 {0x4FC9CC8E, 0xECA262D5, 0x31DC3A1A, 0x351D6F47, 0x21DEA9A6, 0xF0ACE9CD, 0x8D7C7549, 0x40777931} } } ,
13980 { { {0x14D65285, 0xCBB37C51, 0xDDE44BF7, 0x3BB0F33D, 0xECB25705, 0xE20A25D5, 0xB2190746, 0x3C3DA039},
13981 {0x46B4DC5C, 0x39803F10, 0xCD7EE32F, 0xEDF4D85B, 0x99040D54, 0x455487B9, 0x0E690A78, 0x2216E987} } ,
13982 { {0x156258CA, 0x3168AAD1, 0x3749DC11, 0x3F9E8F45, 0x30400492, 0xE8A5BAD5, 0x46E5F682, 0x386025DE},
13983 {0xEF807A1D, 0x6CA6EC41, 0x4EB39275, 0x6F413AA7, 0x94DCE955, 0x1662BE83, 0x9486E4B9, 0x1A96DA83} } } ,
13984 { { {0xFAACA9A9, 0xE9847282, 0xC53272B9, 0x8551B732, 0x0518634B, 0x102331B3, 0x469721B6, 0x3A48346A},
13985 {0x09FB3EC2, 0x6AE03BF4, 0xF5EAFA82, 0x86715BDA, 0x49E620D4, 0xA92D9664, 0x3E4FD34C, 0x7E4D0B25} } ,
13986 { {0xC0C7BDDC, 0xF9985133, 0x920BDD32, 0xE57894B8, 0xE76AE094, 0xC42712F2, 0x302DBFDB, 0x00D1A3F5},
13987 {0x8007240C, 0x5F4EAE00, 0x9C2D8637, 0xA9CBAEB8, 0x8C0B2A21, 0xAB8FA235, 0x67C4A20E, 0x1AABFD21} } } } ;
13988 static const bigint_t var_b = {0x7B5F3017, 0xAA7C2F05, 0x6A93B15D, 0x42F7D347, 0x9E6EC15D, 0xBC890F32, 0x00B78B32, 0x5CE40B63};
13989 static const fp12_t var_expected = { { { {0x54E20D11, 0x6784BEC7, 0xADF351D2, 0x1698221C, 0xBD1D9B63, 0x95C7626D, 0x781B1E37, 0x746E6F0D},
13990 {0x33DD299D, 0xB16FB17C, 0xCE74107A, 0xF52DCBFF, 0x7C14ADD8, 0x6477F90C, 0x0D3A5C1B, 0x231634F4} } ,
13991 { {0x99575DB1, 0x87802BE6, 0x90624CE5, 0x0CD6589F, 0x50337ADC, 0x4CD97423, 0x1B4AD323, 0x898904F5},
13992 {0xB03DAA58, 0x0C1F5C3B, 0xCF21460B, 0x99C446F9, 0x3C811828, 0x53F7690C, 0xCCF951B3, 0x3A8CFBFA} } } ,
13993 { { {0x1C227C5D, 0xC09B9C63, 0xB7106D95, 0xE9B18AF0, 0x0155F4CA, 0xB5934550, 0x3690A815, 0x32EA8DB5},
13994 {0x06EE7EC8, 0x5EFB844B, 0x15266483, 0x468F7D00, 0xA690B4D6, 0xF816C58D, 0xFEE9748B, 0x6491F5F7} } ,
13995 { {0xFAF5F637, 0xB6B3834B, 0x0E7FCAFF, 0x7739AFDC, 0x744BC4AC, 0xD510F881, 0x6CD34A50, 0x31FD3625},
13996 {0x2B044C07, 0x2AA7763A, 0x9905D6B9, 0x476515DE, 0xB3DB4E0E, 0x0B90293C, 0x9973FAD7, 0x79B8B23B} } } ,
13997 { { {0x27C461C4, 0x17006EC5, 0x9613DDD2, 0x13807BFC, 0x1B8FDA5A, 0xA1E73C40, 0x3EE2CBE0, 0x1A2050AE},
13998 {0x948ADE63, 0x80E20CC2, 0xB5E9C62E, 0x6875B429, 0x7DC1E98E, 0xE109DA36, 0x66158891, 0x63146143} } ,
13999 { {0xEB9533E4, 0xA2B6C0EB, 0x5CA7E3C7, 0x9DD67E1F, 0xDFAEC75D, 0xB0A09FE7, 0xC2D88E73, 0x3317773E},
14000 {0x57D94C62, 0x009991CC, 0x9DDB4557, 0xB2D77305, 0xB3C2DE75, 0x54583777, 0x4C2949DD, 0x225FF73C} } } } ;
14002 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3357 a000");
14003 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3358 a001");
14004 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3359 a010");
14005 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3360 a011");
14006 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3361 a100");
14007 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3362 a101");
14008 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3363 a110");
14009 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3364 a111");
14010 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3365 a200");
14011 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3366 a201");
14012 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3367 a210");
14013 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3368 a211");
14016 static const fp12_t var_a = { { { {0x30855FB3, 0xB1F6062D, 0x2CEF2386, 0x108390B8, 0xBD3DD092, 0xE71C5FA8, 0x6D1363E5, 0x0B7DB1DB},
14017 {0x5C0DC7A6, 0x88E1D674, 0xDEAF3E23, 0x83F44B1A, 0x32AD6EDA, 0x00DDB993, 0x331CAA26, 0x2F80A2E0} } ,
14018 { {0x0CE6DE73, 0x0AFB807A, 0x5531E244, 0xFD170565, 0x82E9E922, 0x75F14E38, 0x2C2D8B08, 0x8331075C},
14019 {0x7E5DBF71, 0x5933400B, 0x8EEA3B78, 0x579D4C55, 0x3A2C07D4, 0xB8CD1473, 0x46290894, 0xB39AF49D} } } ,
14020 { { {0x87AAA525, 0x5521EC84, 0x59CBBD04, 0xCB784B4F, 0x182A7263, 0xB8A1C9BF, 0x43B5D526, 0x7EFB08AA},
14021 {0x91B554AB, 0x271A81CE, 0x87B3AD34, 0x2340B317, 0x3C5C003A, 0x695CCC40, 0x37A9E4FA, 0x4C0F5945} } ,
14022 { {0x778FC437, 0xB904F102, 0x3B91714E, 0x4E6C8785, 0xF8843DF8, 0x44AA1123, 0x4D6EF6C7, 0x684AE379},
14023 {0x0B8CAB28, 0x3B4EB242, 0x6C579B3F, 0xDD19A1D8, 0x53223085, 0xC7A1A451, 0x428DAE6B, 0x849290B2} } } ,
14024 { { {0x912C2081, 0xA0EE8857, 0x66440D38, 0x8659BA07, 0x87B04905, 0xF37FE0F2, 0xE88CD793, 0x328763F4},
14025 {0x42DA9DEF, 0x1E7DBBD1, 0x4978F0E1, 0xA51063F9, 0x84BC2C05, 0xCC747527, 0xA520F51F, 0x6C5A1896} } ,
14026 { {0xCB70F6F8, 0xB254263A, 0x89DB7700, 0xB66981E5, 0x6BC6322F, 0xDD7F8AB3, 0xF1A67DB8, 0x0C39B7FD},
14027 {0xCB98FA0A, 0x9AC8DE30, 0x6C55A9C4, 0xDCD43F6F, 0x13F4DB15, 0xB15C8E32, 0xDCF754CB, 0x5543DB99} } } } ;
14028 static const bigint_t var_b = {0x58F2E208, 0xD96858D4, 0x8F52A714, 0x5E988A61, 0x879392F8, 0x5B7F8936, 0x858362B6, 0x6815B082};
14029 static const fp12_t var_expected = { { { {0x50495F18, 0x7CF525BF, 0x78E6E3AF, 0xC2D5D126, 0x6B44A615, 0xAC266E87, 0xA8C5A172, 0x223F4E6D},
14030 {0x29282375, 0xE9641454, 0x6DEDA812, 0x567BD401, 0x260C3B9E, 0xDCB7AE04, 0xAA44C64F, 0x19D4955C} } ,
14031 { {0x0859106E, 0x24A49D6C, 0xC85058FE, 0x498A58E8, 0x7A47D1B3, 0xB4295474, 0x76F69E38, 0x9F40B622},
14032 {0xCC6E035F, 0x0D868949, 0xC36FA626, 0xE7F99760, 0xC0F1E68A, 0x2965708B, 0x38D0FFA0, 0xA258D01E} } } ,
14033 { { {0x267E81E8, 0x44E4966D, 0xC4F45803, 0xA9A4BFA2, 0xA39484EC, 0xADDB30FB, 0xFAC7B031, 0x80170DBE},
14034 {0x710122A4, 0xAC5A56E2, 0x1B24DEC2, 0xCE52F8F1, 0xE90E0D0A, 0x8364B87D, 0x7D946605, 0x36B4BA44} } ,
14035 { {0x22F44354, 0xAD8E9F21, 0x8EBE976B, 0x61FBAA76, 0x281998B4, 0xFA4145BD, 0x0F895ABE, 0x1460C517},
14036 {0x506D11B9, 0xFBD4F863, 0xB77F49F2, 0x42AEE19C, 0x5B598F38, 0x7535833E, 0xE108D8D5, 0x92AC91E1} } } ,
14037 { { {0xF74ABBDD, 0xF47BEBED, 0x87A2EDD6, 0x59552A94, 0x5AB7A920, 0xEAD7B3EA, 0x27A11A5A, 0x30D6499B},
14038 {0x3604EA78, 0x73925A0F, 0xF808B61C, 0x83D5E3F3, 0x6F5B077E, 0x069776BC, 0x5EBD1D81, 0x84036D77} } ,
14039 { {0x20219073, 0x415520CC, 0xED41AB8F, 0x0F83A3D2, 0x1594D045, 0xA0355ADD, 0xBC059575, 0xB24E0BF3},
14040 {0xD04C2F92, 0x223DEE49, 0x2E1B535B, 0x82CD44CA, 0xBA7EEFC2, 0x7832726C, 0xDBE727EE, 0xA8A0E9F9} } } } ;
14042 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3369 a000");
14043 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3370 a001");
14044 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3371 a010");
14045 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3372 a011");
14046 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3373 a100");
14047 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3374 a101");
14048 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3375 a110");
14049 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3376 a111");
14050 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3377 a200");
14051 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3378 a201");
14052 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3379 a210");
14053 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3380 a211");
14056 static const fp12_t var_a = { { { {0x18E38FBF, 0xB767B4E8, 0x8E235510, 0x11DFD1B9, 0x318AE336, 0xF3BFA6D1, 0x64A18041, 0x16CC492A},
14057 {0x4D12630D, 0x3EBAE91E, 0xD3028CCB, 0x2BB1C07B, 0xAE0649C0, 0x0AFC6F3F, 0xC1CC4710, 0x3CFB8E1C} } ,
14058 { {0x6625A230, 0xBCE1E56C, 0xF733E9D1, 0x5DDA53AD, 0xA0F8428F, 0x3E593C3C, 0xFA1146D4, 0xAE88CA68},
14059 {0x842A4718, 0x4770385B, 0x3DCAD255, 0x58BAE9E7, 0x3EE779DC, 0xB88BC4E3, 0x017786B9, 0xA96AA1EE} } } ,
14060 { { {0xE2B0882D, 0x36485871, 0x38169001, 0xA9FFACA3, 0x68E0DB32, 0x99FDCB36, 0x1C3C826C, 0x016D8B01},
14061 {0xCC21C94E, 0xA2848C76, 0xFE2C14DE, 0xEE4F8523, 0xE357DBB2, 0x89AC467B, 0x6462CCE5, 0xB0C5CE97} } ,
14062 { {0x83C79115, 0xEB1CA108, 0x74160249, 0x68DAE60C, 0x233BA03D, 0x37F685F4, 0x86181B91, 0x18A25071},
14063 {0xBC776A70, 0x34A92403, 0xD6D32097, 0x7F6894C3, 0xD4F351A5, 0xD2141BEA, 0x4559600D, 0x7D2F8FE4} } } ,
14064 { { {0x200E0C8F, 0xE536EA11, 0x35B6D985, 0x3CFE62A8, 0x553AAFBA, 0x91ABDCB4, 0xF6D9E7A2, 0x8633A450},
14065 {0x688A4348, 0x2A3EB7BC, 0x1F8CDC0D, 0xB9F8F4C3, 0xE4D65390, 0x32030541, 0xC22AF7E3, 0x06213433} } ,
14066 { {0xCC08BD01, 0x6E41955A, 0x4BF438C5, 0x04290316, 0xC47A9B0B, 0x6296812F, 0x67DC95C4, 0x1B335E0C},
14067 {0xAAF078D7, 0xE77B68F0, 0xC4EB260C, 0xD96F3805, 0x73353C3B, 0x720EB206, 0x38303477, 0x6BF0B76B} } } } ;
14068 static const bigint_t var_b = {0xDD6A570B, 0x0D4CD9C8, 0xC11CA3F5, 0xE452881B, 0x74541C05, 0xA1CF497F, 0x197585AD, 0xE8C8326A};
14069 static const fp12_t var_expected = { { { {0xA5BBED52, 0x6C10ACAA, 0x0A9C3EC2, 0x2B29A98F, 0xAB908A6B, 0x16A47A0B, 0x840DAF44, 0x443AEDB8},
14070 {0x2FFA840A, 0xB6592A36, 0xAEFB08BE, 0x8F2138F6, 0x9348366B, 0x2316840A, 0x0D9F27FE, 0x41CC1542} } ,
14071 { {0xECA755B6, 0xB5B634EC, 0x553DE0BD, 0x50F3816C, 0x4D5C8458, 0xD855FB58, 0x9B8E6820, 0x4451525F},
14072 {0x42AD2B10, 0x25EF63C2, 0x3DA09F69, 0x5EB691B6, 0x5FB4FFBB, 0xF5448BDF, 0xC8062D88, 0xB5D1F908} } } ,
14073 { { {0x5BF958D8, 0xFE1C84B0, 0x51A855A5, 0x4DE0BC5D, 0x81884721, 0xDD4FFC90, 0x2909183C, 0xABB20650},
14074 {0xE1C6D913, 0xD107DD6D, 0x34F307C1, 0x01D44127, 0x19423F1F, 0x57A80F16, 0x0AC67269, 0x833AEA37} } ,
14075 { {0x58873CB1, 0x3FDBC008, 0x5C66D6B0, 0xA143FC4C, 0xCAECC8D9, 0x186F0F60, 0x8932C026, 0xB9A09C21},
14076 {0xB5AC9351, 0xCE094B9D, 0x39649221, 0xAD8675FA, 0x6E312590, 0x324F4C62, 0xCFD3B627, 0x3A449F4C} } } ,
14077 { { {0xB6F6D1A6, 0x9E723A4B, 0xFA5A8065, 0x0BFCB2E0, 0xD9D3FC11, 0xA8FCFE57, 0xE3F74E0B, 0x61434381},
14078 {0x8D08A0CE, 0x1C295930, 0x13DF3899, 0xA9892D29, 0x93D5937F, 0xC1BEBB84, 0x32E09366, 0x832F3116} } ,
14079 { {0xCF7C0FAC, 0x2B8F932F, 0xA1A94962, 0x4D9EBE54, 0xAD6B9AC6, 0x85AF422F, 0xE8E987D9, 0x8AB691A3},
14080 {0x5F79B7C9, 0x394EEB65, 0xB0231EBB, 0xBC52FA3D, 0x975EA58C, 0x3654427B, 0x5AB22AF7, 0x77BE5A6A} } } } ;
14082 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3381 a000");
14083 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3382 a001");
14084 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3383 a010");
14085 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3384 a011");
14086 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3385 a100");
14087 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3386 a101");
14088 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3387 a110");
14089 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3388 a111");
14090 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3389 a200");
14091 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3390 a201");
14092 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3391 a210");
14093 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3392 a211");
14096 static const fp12_t var_a = { { { {0x510E2254, 0x1AAD26C2, 0xF4686E19, 0xE3121C5C, 0x2ADF73A4, 0xBAF50409, 0xC3EEACF9, 0xAE1BD1FD},
14097 {0xE766253E, 0x8C5AE4A8, 0xE498EA02, 0x3ABED53F, 0xAB2AB3DA, 0x88A056CF, 0x86C27A2D, 0x3E43E48C} } ,
14098 { {0x91F3C289, 0xA92647FA, 0x9B6A5956, 0x5BB02A27, 0xED7A4A00, 0x638FFF80, 0x81F6AB0D, 0x4109E4B5},
14099 {0xC0FEE61E, 0xF5F480C5, 0x42BF3209, 0xA90718FD, 0xEDBB447E, 0x901282E3, 0x6D7C223E, 0xAE2619A9} } } ,
14100 { { {0x08ADA436, 0xBDD24DDC, 0x63133740, 0x3AABB562, 0xDFD664D4, 0xF75D31E1, 0x90B77594, 0x031D9046},
14101 {0x7D53E496, 0x8FB73F35, 0xA8A3058C, 0x1236D00A, 0xFF71A658, 0x727F0FD5, 0xCAC36ABF, 0x0A3ED6DB} } ,
14102 { {0x43040C3B, 0xC063DFFA, 0x3DDC22E9, 0x477225B2, 0x684CD5B4, 0x5FB6AADC, 0xCB3739BF, 0xB60CC341},
14103 {0x73F5334F, 0xE5E22405, 0x22E77DDE, 0x94CAC280, 0xE7B11F80, 0x2621A09C, 0xDAF2AF3B, 0x61AA9CD3} } } ,
14104 { { {0x998B03A9, 0x5A30F4C3, 0xAB125332, 0xD73A73FC, 0x80DDCF42, 0xAE198F16, 0x501B96D6, 0x46BFBF71},
14105 {0x363435AA, 0xBEEBD929, 0xFE878429, 0x93D0CAD3, 0xE92BDFD1, 0xE6A16B42, 0x1B6DBD50, 0x06F32B3D} } ,
14106 { {0x3F10CB6C, 0x751DFAB8, 0x9851E3AB, 0x6CBBF141, 0x0E1ECD55, 0x3EE00132, 0x3CD89F88, 0x24F5F6ED},
14107 {0x9C6E3E50, 0x250B6360, 0xC9B122BD, 0xADED90ED, 0x8B2B6493, 0x2BACBCCD, 0x496FA29A, 0x8915E824} } } } ;
14108 static const bigint_t var_b = {0xAA1634DE, 0x391C36AC, 0x33C96F37, 0xC54C824F, 0x35655678, 0xA62A014A, 0xECA55794, 0x006DBE1E};
14109 static const fp12_t var_expected = { { { {0xA5CDE693, 0x8EF87F97, 0x4F7F5B25, 0x1B0B710D, 0xB12C740F, 0x2728D0FD, 0xD08132C4, 0x35B1F158},
14110 {0xF1FBABF4, 0x573CCA1B, 0x08FA518B, 0xD7B37D3D, 0x4692A57A, 0x2503A38A, 0xAC19A86E, 0xA8E07273} } ,
14111 { {0xD6C41915, 0x8A74AC64, 0x109F92ED, 0x8416302A, 0x67A40AC2, 0x1F2309B5, 0xE9615358, 0x75E8F3D9},
14112 {0x9508DADC, 0x1B8C8B6F, 0xB10F75B9, 0x27774594, 0x483D49A9, 0xEA383823, 0x15DA71A5, 0x57934F8D} } } ,
14113 { { {0xBAB3B9F5, 0xBF20CB06, 0x8D0DA0C1, 0xCD13A522, 0x42473613, 0x004F7210, 0x06DB8EE8, 0x9F96181D},
14114 {0xEEA324F8, 0xF72F6CAD, 0x7B196134, 0xB2E647EC, 0x14EAFF79, 0x72365C5D, 0x2E2D9922, 0x6143C6C3} } ,
14115 { {0x4A4A7504, 0xC7C7618C, 0x173D731C, 0x44D4FB85, 0xD71D08E0, 0x8D8DA3FF, 0x658D2650, 0x11C00A25},
14116 {0xF888EB78, 0xF6A4C1EF, 0x1805A533, 0xCB0E7A36, 0x9D9EFF64, 0x5851949F, 0x4E254283, 0x2C42FA9D} } } ,
14117 { { {0xA2BEA8C9, 0x4831C83F, 0x369679E7, 0x9C94DFD5, 0x5271B5BD, 0x8FC52B7A, 0x76F131B9, 0x5578927B},
14118 {0xD2257642, 0x99336EA9, 0xB4CDF053, 0xD2A16164, 0xBA21B970, 0x6EB879ED, 0x0DA76947, 0x56F97F7F} } ,
14119 { {0x2A76D6D6, 0x97F0095F, 0x760739AC, 0xAE56367C, 0xB0AD2EB1, 0x8CCE3337, 0xDC66A199, 0x965F368C},
14120 {0xC5A3B0AF, 0x89C2BBDB, 0x09C5A244, 0x77A6888B, 0xD375A2EF, 0xFCBF4B0A, 0xF4829939, 0x1A42C0AE} } } } ;
14122 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3393 a000");
14123 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3394 a001");
14124 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3395 a010");
14125 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3396 a011");
14126 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3397 a100");
14127 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3398 a101");
14128 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3399 a110");
14129 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3400 a111");
14130 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3401 a200");
14131 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3402 a201");
14132 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3403 a210");
14133 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3404 a211");
14136 static const fp12_t var_a = { { { {0x58364AE9, 0x62DFCF36, 0x7B160852, 0xB25F7A3F, 0x3F0551CB, 0xB31A54E1, 0x21C07E14, 0x018244FB},
14137 {0x2CFE4A36, 0x11CC1580, 0x139685C3, 0xD1E7D4E4, 0x073B3391, 0xC6114BEF, 0xBC2DC348, 0x12DFEE33} } ,
14138 { {0xE47D17B7, 0xFDA6A539, 0x9D10625F, 0xFB6684F6, 0x01D2726D, 0x6768408D, 0xA11C4C6A, 0xAD8D8D3F},
14139 {0xE42EE7D7, 0xA2B0C03D, 0x63EDE323, 0x0A901A2E, 0x2614462A, 0xA81637C0, 0x4AF77F1B, 0xB9745AEC} } } ,
14140 { { {0xB02C6009, 0xC07AC733, 0x02CFAE0C, 0xB1A1EE22, 0x20E899DA, 0x90808060, 0x85CF957E, 0xB0BD03CB},
14141 {0xDDADEF04, 0xD975987B, 0x93343943, 0xB7AEF798, 0x79CAC875, 0xB2F2DAC4, 0xF3FFC439, 0x370924DD} } ,
14142 { {0xF32A6BB9, 0xB533954C, 0x08C91940, 0x87D03A0C, 0x7102402B, 0xA20E3681, 0xCBB93697, 0x569C0889},
14143 {0x8CFC1F32, 0xDFDCF971, 0xD0120A64, 0x9BC5B299, 0x26E23873, 0x7F86E20B, 0x14A50DFD, 0x3DF4F540} } } ,
14144 { { {0xC1D3B4A9, 0x235088CA, 0x7F3CD4E2, 0x5F8CFB3A, 0xBB24FF57, 0x562EA376, 0x6E8605B8, 0x6E669D71},
14145 {0x6D3C8039, 0x1A629EA4, 0x2EBF71FD, 0xDC6D04F0, 0x3BF75528, 0xDD0E80D0, 0xCA508566, 0x32062FEF} } ,
14146 { {0x71710A7A, 0x95728A1E, 0x7274BE6D, 0x59688F27, 0x03CE3D49, 0xA45B9C0C, 0xAD997DE2, 0x0B2F406E},
14147 {0x73CDFDBE, 0x33106452, 0x5DFCD7DB, 0xBA1A44A3, 0x5B84F0A9, 0xE52A17E7, 0xF2D123A7, 0x46405FA5} } } } ;
14148 static const bigint_t var_b = {0x968DA4E6, 0xD2F146CD, 0x2E994534, 0xD601142A, 0x8D48443C, 0xC702E139, 0x05E15FB9, 0x7DEFCDC7};
14149 static const fp12_t var_expected = { { { {0x9CAE70D2, 0x765B3F31, 0x176E8053, 0x95408F8B, 0x8DB44CC5, 0x3CE135D5, 0xC768D03C, 0x302F0C2D},
14150 {0xFE4435AA, 0x0D985966, 0x6FE413CC, 0xF751FF19, 0x7733AB20, 0x0314A7D0, 0x44B7CAC7, 0x6CB41A5A} } ,
14151 { {0x3E15A605, 0x805C59FD, 0xE11B62BB, 0xA3378798, 0x960ACF7A, 0x7ACB32FB, 0xFEB433E5, 0x58051A7E},
14152 {0x2B6D6D3D, 0xC8A9C058, 0x8042364B, 0xEF60036F, 0x49B495B7, 0xE4803F68, 0x132C1DCB, 0xA316B444} } } ,
14153 { { {0x3CD977F3, 0x9D326FF8, 0x6EC17F64, 0x077E4938, 0xEC461FAE, 0x4F3C1A0B, 0x44A8B88B, 0x89894404},
14154 {0x3A8FDFBC, 0x3624BB14, 0x2F13F300, 0x846C05F2, 0xDFA77FC9, 0x19925FC5, 0x6877CE5C, 0x015B325A} } ,
14155 { {0xC9216533, 0x86747BF8, 0x0705081C, 0xD4D3FA91, 0x22FA17DD, 0xFA76F777, 0x74F3EAFB, 0x35FB3686},
14156 {0x713D5553, 0x05D97244, 0x1FD0C7C7, 0xE16F3197, 0x51244064, 0x5D32EA27, 0x22F1850C, 0x277A27BF} } } ,
14157 { { {0x28FE97A0, 0xD6F2105B, 0x5C298EDE, 0x0EF72D7C, 0x25ADBD70, 0x0D09D519, 0x3A121A45, 0x9C523256},
14158 {0x64B8D223, 0x44E40286, 0x4F58CF3D, 0x09D38818, 0xEC6626DD, 0xDE84DF98, 0x05342C3D, 0x49405BE6} } ,
14159 { {0xA2A11C1E, 0x62710397, 0x5FF1F767, 0x2EF432CE, 0x1CCF0EAF, 0x0FAEDF80, 0xADCC2F2F, 0x71F42E4C},
14160 {0x4B2A0BB1, 0x0644C540, 0x011B8A2B, 0xBF8FAD56, 0xB4779534, 0x16FFDE22, 0xB5400950, 0x4EEF4CF5} } } } ;
14162 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3405 a000");
14163 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3406 a001");
14164 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3407 a010");
14165 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3408 a011");
14166 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3409 a100");
14167 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3410 a101");
14168 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3411 a110");
14169 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3412 a111");
14170 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3413 a200");
14171 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3414 a201");
14172 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3415 a210");
14173 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3416 a211");
14176 static const fp12_t var_a = { { { {0x0E9E755A, 0x16104101, 0x9FDEB8A5, 0x9233AD2D, 0xC43263F0, 0xFA750D36, 0x282CA232, 0x74EE51D5},
14177 {0x05417562, 0xE5680090, 0x41805562, 0x78103D8D, 0xDEF945D8, 0x3610B88D, 0x31A3278E, 0x55970811} } ,
14178 { {0x175986B7, 0xEBE3ECA0, 0xF7F75D35, 0x367469FA, 0xEF951D72, 0xB1F24002, 0x0AFF00E0, 0x2A156650},
14179 {0xD483AA21, 0x1647EA95, 0x787C5E9A, 0x1F760F45, 0xBCB25ED8, 0xAA80D07D, 0x305053F5, 0x641CC1FE} } } ,
14180 { { {0x42043B03, 0x1A3BB4A5, 0xD0475089, 0xA8B9E9EA, 0x41F2D81B, 0xE21BF493, 0x35DDABAD, 0x57336D84},
14181 {0xF6512F6E, 0xEE707C5D, 0x0AB59019, 0xD93CD36A, 0xD91CF9BA, 0x239108C1, 0xFF32A515, 0x0177071B} } ,
14182 { {0x847C6F39, 0x4C71020C, 0xD882BBF1, 0x292304A3, 0x5F6FEC58, 0xA6D451D3, 0x863A3C5B, 0x2D66CADB},
14183 {0x26D49F39, 0x357B8669, 0xC45162BF, 0x4101F8DC, 0x71766ACB, 0xC92EA986, 0xD9D8606D, 0xAC14B39D} } } ,
14184 { { {0x13C6B403, 0x6B1E65AA, 0xFDE285DF, 0x3A22C9F1, 0x2E688CEF, 0x57F85750, 0x1A3CB421, 0x1C7916BA},
14185 {0xB1D21E8B, 0xF7F62838, 0xDF1A418E, 0xAB3C0C89, 0xBF28D5A6, 0x2A671053, 0x7E939A67, 0x0C0EADCD} } ,
14186 { {0x0030B4BE, 0xA1B8099A, 0x96801CA1, 0x89790FB8, 0x7FD7F3F6, 0x928A28EF, 0x0E693107, 0x1CE24867},
14187 {0xD16490D9, 0x7A0EC4DA, 0xA5E116EB, 0x324D7F80, 0x80778B0B, 0xF036B937, 0xA7F4DA69, 0x225053A3} } } } ;
14188 static const bigint_t var_b = {0x288285B9, 0x53CA7A99, 0x8E741091, 0x4FA27259, 0xB3183D5C, 0x21274FA1, 0xBE161CA9, 0x4C34BFCC};
14189 static const fp12_t var_expected = { { { {0xA057DE47, 0xF378C820, 0x34D5A722, 0x8E310511, 0xA969BFDE, 0x4229484E, 0x60CE3491, 0x62A76012},
14190 {0x24A63763, 0x139F4848, 0x8BC65C25, 0x4BEF0AC8, 0x7BFDD06A, 0xB7D3C6B2, 0x53551005, 0xA09BAB6A} } ,
14191 { {0x3A820839, 0x47BBE743, 0xD1C6B26D, 0xCAE85972, 0xF77C9479, 0xD5A1E9E2, 0x3D1CDB7A, 0xA2EE2007},
14192 {0xDA2348B7, 0xFDC7C48C, 0xE8DB9057, 0x012A5CC6, 0x23A1A2F0, 0x44385ECC, 0x2E27C2EB, 0x59A2CF3E} } } ,
14193 { { {0xF552C1C8, 0x5090ABE9, 0xC102D7BB, 0x963C6308, 0xCD6EC1D8, 0xE7A12F1F, 0xDBDFB559, 0xAFE65EB9},
14194 {0x48020494, 0x7944A7D5, 0x14EF7495, 0x8C8FE580, 0x2E305953, 0xF7C5DA2F, 0xB041A24D, 0xB38A2A62} } ,
14195 { {0x0B639AB0, 0x5128B860, 0xB3E414F8, 0xD71E2849, 0x65ED26E1, 0x517E721C, 0x1C8A847F, 0x830A6371},
14196 {0x8472D7EF, 0xCD6B7E49, 0x418D51FB, 0x3DD85D43, 0x5A41401F, 0x6AC6E852, 0x065448A1, 0x368C8E2F} } } ,
14197 { { {0xD1C75F6F, 0x29254AD1, 0x209F3158, 0x0B8A8394, 0x9CED15F5, 0xDC063158, 0xA44093E7, 0x2C3F4BE6},
14198 {0xF93B6A75, 0x78FC2974, 0x7041025F, 0x61300189, 0xDB4B9602, 0xC0F0E5DA, 0x9BEAC989, 0x4DE4E50B} } ,
14199 { {0xAFA2D1C3, 0x26465F3D, 0x25913E07, 0x92981F1A, 0x0883D6A8, 0x8A12D7E0, 0xF8CC0751, 0x363B4127},
14200 {0x3F9D45C6, 0xD2F08FF6, 0x90B3D34B, 0x20A13EB3, 0xC819F5A8, 0xC044CFCD, 0xB0E79AA5, 0xB4F97089} } } } ;
14202 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3417 a000");
14203 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3418 a001");
14204 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3419 a010");
14205 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3420 a011");
14206 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3421 a100");
14207 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3422 a101");
14208 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3423 a110");
14209 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3424 a111");
14210 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3425 a200");
14211 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3426 a201");
14212 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3427 a210");
14213 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3428 a211");
14216 static const fp12_t var_a = { { { {0x7A61D777, 0x47DB0696, 0x52211DF7, 0xE3C86145, 0x691BD9D4, 0x18FF72C8, 0x564C11BB, 0x44C9054C},
14217 {0x59919B08, 0x2D364C22, 0x1504309E, 0x96319155, 0x72569AEB, 0x2CD25116, 0x4800C51F, 0xAE6A16DE} } ,
14218 { {0xA2BDCE37, 0x28818836, 0x03A49B03, 0x32F081BA, 0x0DDB0327, 0xD84A0591, 0x442E079C, 0x7DF9E15F},
14219 {0x2B4B8C79, 0x18139200, 0xEB14A90D, 0xF0923445, 0xF7BBC791, 0x0848510A, 0x094F89CE, 0x6EBD955A} } } ,
14220 { { {0xF9C2F8B9, 0x28339183, 0xCA8332D3, 0x88565EA8, 0xFA8CA5FC, 0xB628C1AD, 0x6F9042B8, 0x3086AF0B},
14221 {0x11286F04, 0x3D9646EF, 0x3FABA7F0, 0x20C3B881, 0x6654DD6B, 0x4DADF4BD, 0x5ECE6407, 0x3C4F6B9C} } ,
14222 { {0x1C56EA09, 0x8BFD7AEA, 0xC61B299D, 0x11B8669F, 0x4426456E, 0x58DA7E42, 0xD4E868D0, 0x1629FB90},
14223 {0xC2A72E4B, 0x0491EFD2, 0x7D30C5BF, 0x2571E65A, 0x233ED0F9, 0xD47E49DF, 0xE4DA0099, 0x0B51C7FD} } } ,
14224 { { {0x3AD3B8BD, 0xDF482564, 0x854EE050, 0xB60C4995, 0xF3A5573A, 0xC61BCBAF, 0xF14CF123, 0x12A25BFB},
14225 {0x32A158FD, 0x1701BE00, 0x52432CF2, 0x410E8450, 0xD5FADD48, 0xB6210AAD, 0x77323B26, 0x09127C52} } ,
14226 { {0x4947CD65, 0xEBAD63AB, 0x2B7B456C, 0xEA5E03A1, 0xA01FB335, 0x33DD715F, 0x83982A47, 0x30AACFDA},
14227 {0x9692A210, 0x5EA0B1CC, 0xAB8750E5, 0xF5DD4A12, 0x60BF6BCF, 0x4D73A8B8, 0x36C400AD, 0xAA0FC249} } } } ;
14228 static const bigint_t var_b = {0x1FE29890, 0xB8DA51FE, 0x43F651B2, 0x4E81095B, 0xD19F565F, 0x19EE770E, 0x45A153B0, 0x009CDD2B};
14229 static const fp12_t var_expected = { { { {0x6D05DBC9, 0x46A37088, 0x7911878B, 0xE32A9018, 0x3E0C2B76, 0xA31D5351, 0x3CC9DB0C, 0x752379A0},
14230 {0x4FB393F1, 0x4CCB9761, 0xBD977B5B, 0x3FAD582A, 0x25687E02, 0x19E06665, 0xD27346D0, 0x91F720EA} } ,
14231 { {0x03DC1002, 0xA2F6BC82, 0xF6C0C791, 0x818B3833, 0x8B49F056, 0x88E26D62, 0xCAD2B77E, 0x574AC983},
14232 {0x4E8A37B9, 0xBE2EA85A, 0xAFA188A7, 0xDC3F62CC, 0xFF744A80, 0xB9A5B760, 0x58FFC96E, 0x07F5C761} } } ,
14233 { { {0x93B1EFCE, 0xF9EAD8A4, 0xFDDD8281, 0xD9285443, 0xC112ED54, 0xE3E9F217, 0xBEED6B20, 0x18EB91D8},
14234 {0x84E157AE, 0x1A47AB9F, 0x957FE0B3, 0x34B34324, 0x89EB8385, 0xFB38F311, 0x927BE529, 0x1376A075} } ,
14235 { {0x0EAE2977, 0x0B5263E6, 0xA3062788, 0x9A9D2335, 0x9A5CAC1E, 0x93BF720A, 0x7CC8A619, 0x9CFD7D86},
14236 {0x3000A4F1, 0x2BD51250, 0xD4375AEE, 0x7E5D27F9, 0xCF94FB33, 0x58F6CE9B, 0x5D30D33C, 0x8FE8E12C} } } ,
14237 { { {0xCAC8E7DB, 0x2FCA95F1, 0x0E266A1A, 0xBCFBD764, 0x7CC365A0, 0xB4D365BB, 0xA99A680B, 0x6E3774B3},
14238 {0x52807CFE, 0x9F89906D, 0xC1F559B9, 0xDA5BED74, 0x63442649, 0x6AB6FE1E, 0x0E1E4A1F, 0x1B02C192} } ,
14239 { {0x2DADBCB8, 0x4A7F01AD, 0xEE19E425, 0x4D9DC116, 0xC672FDB6, 0x906690F2, 0x996DE295, 0x744F6801},
14240 {0x2D823D75, 0xEF37FB8B, 0x3599621C, 0xB3B497A9, 0x63D9352C, 0xB17F0657, 0x183E0AEB, 0xA008D64C} } } } ;
14242 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3429 a000");
14243 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3430 a001");
14244 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3431 a010");
14245 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3432 a011");
14246 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3433 a100");
14247 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3434 a101");
14248 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3435 a110");
14249 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3436 a111");
14250 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3437 a200");
14251 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3438 a201");
14252 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3439 a210");
14253 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3440 a211");
14256 static const fp12_t var_a = { { { {0x63F12163, 0x0375C027, 0xB5763A62, 0x020640A7, 0xE8C3593F, 0x31591C80, 0x7C807CB9, 0x9D052009},
14257 {0xD172BCD7, 0x8E116795, 0x9A51E1C6, 0xC4305D31, 0x4B5E6100, 0x31EE8827, 0x3626B09C, 0x52980B83} } ,
14258 { {0xEC4E0401, 0x6F7278A5, 0x09B68806, 0x568CC4BD, 0x80B1411E, 0x3FF119ED, 0xA709BDD9, 0x1AE9D7CF},
14259 {0xB4B72E34, 0xF8B8831E, 0x3F2CBBEC, 0x6C24DD0B, 0x110E740D, 0x74DD4BD7, 0x939F958C, 0x39965DE1} } } ,
14260 { { {0x4D813461, 0x49B4E00C, 0xD1433C4E, 0x6BC11763, 0xC75D5EDF, 0x85013662, 0x5420DD6C, 0x7F6032BF},
14261 {0x5CAE96E8, 0xBEEB8256, 0x7C02B199, 0xA81D78E2, 0x6B2D06E3, 0x1BACFB1E, 0xD70E4C1C, 0x057377E4} } ,
14262 { {0x9441A532, 0x7CB8496D, 0x7C8E0F7B, 0x889B192A, 0xA743E29F, 0x67C86480, 0xDF3A8BB0, 0x10049CF6},
14263 {0x9FE3D9F6, 0xE908506A, 0xE1FDCF8D, 0x17F84386, 0xDB55AF01, 0x9ECA43FE, 0xC1CEC216, 0x48026383} } } ,
14264 { { {0x982D6387, 0x3145E8C5, 0x0DFDC256, 0x837BF6F6, 0x9AAA739C, 0x7A4C748B, 0xE78D2B20, 0x383D54CD},
14265 {0x2F97A9BA, 0xC354F657, 0x654DC713, 0x8AA7CB7D, 0xD5A9DAFA, 0xBC5903A1, 0x0E443DB6, 0x170A5C06} } ,
14266 { {0xAC13185F, 0xD15ED551, 0x1AEB1565, 0x48D0659C, 0xAFA88D5E, 0x9BAC84CC, 0xC7217D23, 0x2DDB4E7E},
14267 {0x88E9825C, 0xD233704C, 0x914C9F87, 0x58A24F1A, 0x5790A9A2, 0x5F9A8420, 0xB949FC8D, 0xB3B5F43C} } } } ;
14268 static const bigint_t var_b = {0xEC46B49F, 0x0372892C, 0xD148C119, 0x539369A2, 0x88C0C53A, 0xD7EF9870, 0x1D59EA81, 0x4F9AAE52};
14269 static const fp12_t var_expected = { { { {0xB6703AD9, 0xF45ACDC4, 0xBF13C4BD, 0x96B2ECCB, 0xC52E7F9E, 0x31E08C35, 0x053D9A48, 0x03632D79},
14270 {0x4725A32A, 0x00205555, 0xECB11D0E, 0xE61B11D3, 0xDD13D665, 0x9696EC11, 0xEEEF10C8, 0x556F4DDF} } ,
14271 { {0x41A17F83, 0x7DBD7419, 0x1957BBD3, 0xA5499EB4, 0x93325116, 0x32286859, 0xB6254751, 0x8C939B73},
14272 {0xEFB85735, 0xF79CA970, 0x9ADBCE00, 0x40AA72D8, 0x194AC7BF, 0x8833B901, 0x5EC21057, 0x082C2FEE} } } ,
14273 { { {0x022221FD, 0x033F04CE, 0xA5CD7F99, 0x48209CAB, 0xFDB7E599, 0xFE48C6EB, 0xE64461CE, 0x97F0DA30},
14274 {0xF461477F, 0xE70D5423, 0xE4135C72, 0xC7AE90D2, 0x3CB6A105, 0x0F357A67, 0x1A05738E, 0xAABDA712} } ,
14275 { {0xAA129872, 0x64DB41FE, 0x487C96C5, 0xFEDA38AB, 0x326E1836, 0x3FCFCAA1, 0x6C340271, 0x07A2F73C},
14276 {0xFD36386D, 0x201F96E6, 0xD6E2B91C, 0x8CAA65A6, 0xFD627450, 0xA2EB5C2A, 0x3FC83276, 0x08D8A96A} } } ,
14277 { { {0x2E515F32, 0xDF8730CE, 0x5869481C, 0xD60E6A11, 0xEB94CC75, 0x0EB56825, 0x45DE3491, 0x7C8B2FBF},
14278 {0x73133BF1, 0x44A6544C, 0xDCF72C01, 0x507B4BC7, 0x1067EFC0, 0x72693DFB, 0x1E4A8E55, 0xAC6AA13B} } ,
14279 { {0x83C9BE14, 0x22119AD5, 0x41222001, 0xF640A1FE, 0x1A26C972, 0x5358AEDD, 0xE92B6DA4, 0x65EC3F45},
14280 {0xC0DA6769, 0x19C3713D, 0xAA0452F6, 0xEA9926CF, 0x3AD23C6C, 0xCB7DAAE8, 0x8FDEB034, 0x77C02D54} } } } ;
14282 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3441 a000");
14283 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3442 a001");
14284 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3443 a010");
14285 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3444 a011");
14286 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3445 a100");
14287 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3446 a101");
14288 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3447 a110");
14289 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3448 a111");
14290 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3449 a200");
14291 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3450 a201");
14292 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3451 a210");
14293 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3452 a211");
14296 static const fp12_t var_a = { { { {0x1970C516, 0xE264E5EB, 0x37A56CC0, 0xAC3CC698, 0xAC2DB61C, 0xCEBD7FCD, 0x81C8D55F, 0x3DE09AEC},
14297 {0x0411553C, 0xB39F32BB, 0xCB443F03, 0xD791F43F, 0xBA785EA9, 0x9974C89D, 0x06738E36, 0x275AD342} } ,
14298 { {0x1941257A, 0xFBE63350, 0xB8CD8CBA, 0x376D4587, 0xAD8A8F17, 0x7F35ADEC, 0x62BFD250, 0x02EA1A44},
14299 {0xF0912B31, 0x07491176, 0x8621C541, 0xE28B82C1, 0xBAE94E19, 0x66259C23, 0xDF25EAFE, 0x4D5AB42A} } } ,
14300 { { {0x3A38FF13, 0x66F05DD2, 0x0C09FF77, 0xC9708058, 0xCA968BB8, 0x2E02C702, 0x1A58DEDA, 0x1851E467},
14301 {0x427BFA35, 0x6AA8AE44, 0xF2FFAF33, 0x3C35DBFA, 0xF1D4952F, 0x275F4DA0, 0x859F2071, 0x8518BA81} } ,
14302 { {0x96292543, 0xAC25696C, 0xE8926BBD, 0xA83493D1, 0xB0E37967, 0xCA27CBB0, 0x6553C427, 0x0428C248},
14303 {0x4E47942F, 0x859C198C, 0x92D531BA, 0x390CB9B5, 0x59A401D9, 0xEEAA3E65, 0x14ACE386, 0xB943E4EB} } } ,
14304 { { {0xC249D349, 0x95835E93, 0x9B0E8448, 0x360CFE39, 0xA589E70F, 0x8E58EB23, 0xC03C5B18, 0x17BE01CD},
14305 {0x4AABCA3E, 0x40928857, 0x52E59B7B, 0x590F12E9, 0xD553CE71, 0x1669636F, 0xAAE9F125, 0x5C6422E3} } ,
14306 { {0xCF87DE86, 0x2CEF7F98, 0x0861D553, 0xEDC0D2D5, 0x85770811, 0xFB847F7D, 0x693AE339, 0x6FAF58D6},
14307 {0xAC134B58, 0xC5023BA6, 0x5F077A88, 0x5FDFCCE7, 0x8AA2F2E0, 0x37C29BE7, 0xA4B711A6, 0x1C018B6F} } } } ;
14308 static const bigint_t var_b = {0x33B61B2E, 0xB96BB37A, 0xD0D20A55, 0xC1FC354E, 0x6A2E46C1, 0xC7501E8C, 0x9C7976C6, 0x955C8A95};
14309 static const fp12_t var_expected = { { { {0xE562453B, 0xA3CF4383, 0xAA3FEBF2, 0xE9F048C2, 0x85F0AB6A, 0x0C804C4B, 0x4CAC5072, 0x6708128F},
14310 {0x6427476B, 0x93BAFED1, 0x5B71694A, 0x4C54DD1C, 0xF768F525, 0x5C132A2F, 0xA1F0992B, 0x234BBE61} } ,
14311 { {0xCCC0246F, 0x984B5ACF, 0x4A412475, 0x220D06FC, 0x7630EC55, 0x24C869EE, 0x329AF39D, 0xA91DA52A},
14312 {0x175A96FC, 0x6EA869B0, 0x22EB8E32, 0xBCB055F6, 0xA208E32E, 0xA630BAF1, 0xE73FEB9E, 0xB12AE1D3} } } ,
14313 { { {0x96912A0A, 0xE8DC0C53, 0x9D624E86, 0x2DD1F8DC, 0x1BBB6A4D, 0xC9122F92, 0x9C120EB8, 0x4AD2E38B},
14314 {0xC9D1DD7B, 0xDC71DA95, 0x87D904C3, 0xAFE017AC, 0xB9AD6860, 0xF6882108, 0xD9C2F146, 0x96CDD7C2} } ,
14315 { {0xAC8D9C93, 0xB6A68A40, 0x93BD9E7E, 0xF8AD16F4, 0x1EF66732, 0x19ACF191, 0x8E74D74C, 0x6221AD4A},
14316 {0x4C7AB661, 0x07867D69, 0x7B83033D, 0x3E1F8A7B, 0x88F80529, 0x0350DABD, 0x73FF5531, 0x0BA60670} } } ,
14317 { { {0xE4D5E087, 0x2D8C13DB, 0x3DDA73E2, 0x3C9C2F34, 0x4CAE99BA, 0x31EC448A, 0xBA95E786, 0x850F7144},
14318 {0xF8581339, 0xBDA627DC, 0x5780DCE0, 0x908DE4BC, 0x5BED9700, 0xB99D1D21, 0x941D5CA4, 0x61CCF04B} } ,
14319 { {0x79E24026, 0x2C08E506, 0xCF4799CD, 0x6F8B2B75, 0x38859822, 0xBA53CD55, 0xEBC8D62A, 0x791D7489},
14320 {0xEE2923E9, 0xD73E2FD7, 0x7A304139, 0xB16001DE, 0xB7126846, 0x7AC364B3, 0x638A1252, 0x68EC74F7} } } } ;
14322 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3453 a000");
14323 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3454 a001");
14324 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3455 a010");
14325 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3456 a011");
14326 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3457 a100");
14327 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3458 a101");
14328 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3459 a110");
14329 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3460 a111");
14330 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3461 a200");
14331 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3462 a201");
14332 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3463 a210");
14333 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3464 a211");
14336 static const fp12_t var_a = { { { {0xC6C8C660, 0x7D154B5A, 0x530182B9, 0x37BD8122, 0x8B7FCD80, 0x2FD71B49, 0x5EE7A8CA, 0x339A7872},
14337 {0x442A2563, 0xC5F2989B, 0x02026A42, 0xD411A9EA, 0x5888E9CA, 0xE91EAB8F, 0x968196D1, 0x9CA71946} } ,
14338 { {0x50EAD421, 0x10E834F3, 0x81357A83, 0x4AE2FAC1, 0x24E7F88A, 0x0DD15ED6, 0x3809EF4A, 0x440CE6A0},
14339 {0x340C2554, 0x1B044BC5, 0x13B1E165, 0x730AEDCC, 0x4207DFF1, 0x9EA22055, 0x9403FD50, 0x19051C17} } } ,
14340 { { {0x20C4784D, 0x6889FF21, 0x02A3EB26, 0x042465D2, 0xE6E02D77, 0x3131510A, 0x0C81E9C0, 0x0724B8E5},
14341 {0x9E59A448, 0xBFECD129, 0x3E7BA46A, 0x66017E68, 0x51B29CE7, 0x59EF09C3, 0xD428B0DE, 0x13DB2677} } ,
14342 { {0xA9BC745A, 0xAD45C7FA, 0x06993112, 0x274C93E7, 0xF653FFB3, 0x31E0C6A8, 0x37D340AD, 0x2C01629D},
14343 {0x9552B8F7, 0xFEB52C41, 0x4A430BF9, 0x8DD7DCA2, 0x4EF513E7, 0xD1280FBC, 0x52C1333E, 0x5A2E5858} } } ,
14344 { { {0x02AF6C6E, 0x47313309, 0xCC819922, 0xC7280020, 0x0C66E149, 0xE3C252F3, 0x97740811, 0x5F2631A5},
14345 {0xAAD36817, 0x60ABB264, 0xA00DD5ED, 0xE3431E04, 0x94F05C1D, 0x081380CF, 0xCC1DCC3D, 0x8CB20AAD} } ,
14346 { {0x5C8DFA8D, 0xE200B382, 0x59D39991, 0xFF537A59, 0x27347D50, 0x69C06ADE, 0x8A1D649A, 0x5D36410F},
14347 {0xD6794FDA, 0xAE9A8790, 0x5F22E799, 0xDD3DBF1B, 0xBD39F843, 0x3382FF90, 0xFE71F590, 0xB23C5831} } } } ;
14348 static const bigint_t var_b = {0x4EB27ACF, 0x663233F1, 0x6DB3517B, 0x63B0F781, 0x7F76DBF7, 0x179CECFB, 0x6A551BDD, 0x5080CA22};
14349 static const fp12_t var_expected = { { { {0x78BF9D1A, 0xD62C0824, 0xA4DE27F1, 0xE979A4BF, 0xF5E4D3C6, 0x3BBE572C, 0x3E213D21, 0xA01F8A71},
14350 {0xFE465122, 0xE20E5EB1, 0x5B3DCA9B, 0xF7AA66BC, 0xE9E26AD3, 0x0480F8F3, 0xB185769A, 0x3D11E01F} } ,
14351 { {0x501690E7, 0xD48C01D5, 0x4A0725D6, 0x9EAE0044, 0x9FD6AEBD, 0xBC44654D, 0xEF13C75B, 0x82802863},
14352 {0x2B7E78F0, 0x146FE7FF, 0x0025CD3C, 0x4074B3CC, 0x0025D15B, 0xFDFF0CBA, 0xF59C28A0, 0x289F3A75} } } ,
14353 { { {0x6EBDF3E7, 0xE5CE83F9, 0xECA4A3A1, 0x18A597E7, 0x45269696, 0xFF1C60C4, 0x939C4236, 0x4F2580D7},
14354 {0x3898E007, 0x48B769F4, 0xD3F2568C, 0x6B969BDF, 0x01E62717, 0xB38D3CD9, 0x209DB783, 0x6660332F} } ,
14355 { {0xE2D7A660, 0xE4C47A48, 0xBDBAAE84, 0xFC50879C, 0x4D450C09, 0xFFF55CAB, 0xA1EF3C99, 0x5B537432},
14356 {0x90C31ED1, 0x8A5A2E74, 0xBB2A14E3, 0x623B30B9, 0x7A915CE1, 0x0EDB08EB, 0xB8665483, 0x726853D5} } } ,
14357 { { {0xAC950628, 0x99C09EB1, 0xC507A6F8, 0xBE28D2DD, 0x09684D1B, 0x9E818FFF, 0x6F4AEBF0, 0x7F932007},
14358 {0x759834D1, 0x7A87B3F4, 0x79DC8071, 0x42333634, 0xFFC61E4B, 0x25B86D49, 0x154430C5, 0x340E00D0} } ,
14359 { {0xC99FA7A6, 0x65FABF76, 0xA3D20611, 0x0961A4BF, 0x4568E750, 0x5B2A70EC, 0x69A4D7D6, 0x7100F60C},
14360 {0x5A51D037, 0x649A939A, 0x9882E50C, 0xDFD4E4E7, 0x1EACCE0F, 0x45A10826, 0x17DDE643, 0x3BCE0221} } } } ;
14362 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3465 a000");
14363 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3466 a001");
14364 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3467 a010");
14365 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3468 a011");
14366 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3469 a100");
14367 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3470 a101");
14368 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3471 a110");
14369 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3472 a111");
14370 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3473 a200");
14371 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3474 a201");
14372 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3475 a210");
14373 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3476 a211");
14376 static const fp12_t var_a = { { { {0xEC4595D3, 0xF1A6CF3E, 0x14FF3FD7, 0x1BC5477C, 0x4C9E3132, 0xCA6A2DD1, 0xA52CE344, 0x5E84A2EA},
14377 {0xEB584E71, 0xFCF1E17A, 0x636D0B7A, 0xA11E5E45, 0xE46416AF, 0x8AA06E99, 0x57A70BB9, 0x30A8BF17} } ,
14378 { {0x021829F3, 0x72C711FB, 0x8D9E5CC0, 0x7F03339F, 0x0957272A, 0x87D163EF, 0xBFE52528, 0x6247DC87},
14379 {0x0FF115FE, 0x0A44E618, 0x230DE801, 0xF3F9197A, 0xB94F6C71, 0x90704CC5, 0xAD286435, 0x1B335FC2} } } ,
14380 { { {0x0AD3C0D0, 0xBB690BFC, 0x02D0F346, 0x164B620D, 0xA374B216, 0x67FAFEEE, 0x470F6C64, 0x144638FA},
14381 {0x87BD4D35, 0x3D3F7C4B, 0xDE8A28BB, 0x60735641, 0xA52228E0, 0x4CD7B18C, 0x881A7369, 0x16C80694} } ,
14382 { {0x5E5E1939, 0x93B8BA08, 0x69EC1D06, 0x676ED02A, 0x07BDEF0E, 0x9C7CB712, 0x3D426305, 0x39A1978B},
14383 {0xECD5C5E0, 0x7DF2DBCB, 0x553F8002, 0x7E560B93, 0xE381C3B4, 0x1518A1A7, 0x46E8F991, 0x490F843C} } } ,
14384 { { {0xD3178675, 0x038B0D95, 0x5040BE23, 0x14761C32, 0xBB8AECE4, 0x9CED0046, 0x5B72B00D, 0x628C04F8},
14385 {0xB29DB0F3, 0xF2490FBF, 0xB561E308, 0x0CBF599F, 0x96B368FE, 0x849E53FB, 0x4460EF16, 0x685A46C4} } ,
14386 { {0x57F79964, 0x58FC4B18, 0x067779B2, 0xC49EA7E7, 0x873A6ACE, 0x2F111E13, 0xE09F2C4A, 0x32404DF1},
14387 {0x8F3FA483, 0x058E0703, 0x6B4E2605, 0x0C3B55D4, 0x24D12394, 0x70EE884F, 0x1FA2BEAD, 0x62C96892} } } } ;
14388 static const bigint_t var_b = {0xC99A2D17, 0x1552DA7D, 0xE80E55D4, 0xE51D0246, 0xC1577D43, 0x3B2E71AE, 0x08DB6A5E, 0xA2D918F4};
14389 static const fp12_t var_expected = { { { {0x7DC1FAF7, 0x72A3AD0C, 0x453E8388, 0x9FE4A3EB, 0xE7FEEB1D, 0xB57341C3, 0xD33A242C, 0x8F76789D},
14390 {0x6439DC01, 0x10E24ED4, 0xD17E56B3, 0x6C876FC2, 0x9ADC4CFF, 0xFD2D1DF1, 0x1A8A0631, 0x40302138} } ,
14391 { {0x8B68BE7B, 0x6448AC91, 0x07A39F1C, 0x8038C2B8, 0xA7CF4AA0, 0xFB4B4DE1, 0x56A2B0DD, 0x67DE235B},
14392 {0x6711802D, 0x2D6A7C66, 0x7312C842, 0x6B80631B, 0xDC78CD0A, 0xE7DDDF51, 0x48E338A9, 0x6A1F9FAC} } } ,
14393 { { {0x652FE380, 0x9DB655A1, 0x7AEBFA0B, 0xC74B137D, 0x51A49A46, 0x4FC3C0D3, 0x64035C30, 0xAC71BDC5},
14394 {0xBE4B7DB4, 0x7804722E, 0xB12968BC, 0xC981E3EA, 0xC6EC3CD8, 0x0094AD49, 0xD70827C9, 0x28327B7D} } ,
14395 { {0x311A335C, 0xB7FCCF65, 0xC7AAE533, 0x896E6B7D, 0x2DD0C781, 0x8DB65912, 0xC1D421DD, 0x54983ED1},
14396 {0xF4C65D47, 0x799B9648, 0x1D090642, 0x632E38C0, 0xE0633312, 0x85ADC8F8, 0xC6041A3F, 0x4A403247} } } ,
14397 { { {0x9E240200, 0xD2A118EA, 0xB649A474, 0xCCA209CE, 0xF4514986, 0x00B7F0FA, 0x4967D6DE, 0x8C8C4565},
14398 {0x5AE668AA, 0x3608CDE7, 0x3E2DD248, 0xEE5D75EF, 0xC8A10CCD, 0xDE8C1411, 0x5F6862DE, 0x4180CCCA} } ,
14399 { {0x637C5C61, 0x319AAF37, 0x0C0831AA, 0x16576D80, 0x3E12FD2B, 0xFC82DAAB, 0xE4FA3B7F, 0x5490CB20},
14400 {0xD64A9F7F, 0x160A299F, 0x28F63565, 0x5CD86232, 0x3DC79851, 0xFF891281, 0x9561A291, 0x39F86EE9} } } } ;
14402 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3477 a000");
14403 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3478 a001");
14404 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3479 a010");
14405 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3480 a011");
14406 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3481 a100");
14407 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3482 a101");
14408 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3483 a110");
14409 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3484 a111");
14410 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3485 a200");
14411 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3486 a201");
14412 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3487 a210");
14413 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3488 a211");
14416 static const fp12_t var_a = { { { {0x76FD1A72, 0x60F32C04, 0x2457514D, 0xBFDA8404, 0x3317FE89, 0xF4333DF9, 0xB4EEFD6F, 0x695A42E4},
14417 {0x33FC95D3, 0x08952545, 0xF31FA0F0, 0x8B225E8C, 0x5DA4B2FF, 0x0CFB0AE5, 0x514992E8, 0x1C3D180F} } ,
14418 { {0x3C54731B, 0xED3C68A4, 0xF91AA965, 0x932F1BCE, 0x525303AE, 0x6D72C775, 0xE0599D24, 0x33E57AC6},
14419 {0xF6874B67, 0x3602A8BA, 0x06B20040, 0xA306D7F9, 0x3194D56B, 0x0A2EAD75, 0x76DFB989, 0x1763186E} } } ,
14420 { { {0x7B29DDDE, 0xD1F16BD7, 0x94AD8742, 0x82B1A00F, 0xA39FF648, 0x66F9E517, 0xBF319256, 0xA092FE32},
14421 {0xFED28265, 0xEBA8DC3A, 0x6F82776A, 0xD64FA8EE, 0x0550F978, 0xF96DE132, 0xB761610A, 0x384084DB} } ,
14422 { {0xC25FEC98, 0x79A1EC6C, 0xE4B8B179, 0x5424DEC7, 0x8FDB66C3, 0xC52A2586, 0x2FA0F09B, 0x731DC3ED},
14423 {0x02D33F56, 0xB0349F2E, 0x12FB3D2D, 0x5786DCE5, 0x32C97659, 0xCF01B66D, 0x8E8A2D11, 0x49AE9E52} } } ,
14424 { { {0x69E2F25D, 0x8CBFA397, 0x6CFBB4E0, 0x5C52B05C, 0x0FD3FCC5, 0xA0D4414E, 0x4DA98BA0, 0x96B11E8D},
14425 {0x98505B14, 0x4CD78009, 0x3AABB1D4, 0x87EA0EF3, 0xFE9840D7, 0xC580F8E4, 0x7A3EA754, 0x9B197E9E} } ,
14426 { {0xA3170091, 0xF38D4174, 0x17C1C2F4, 0x1DC71B4F, 0x08232908, 0x4FDCE5FB, 0x3664039B, 0x7B94F022},
14427 {0x3237C10A, 0xCAD84C83, 0xA017B707, 0xF5857332, 0x9950DCBB, 0x59628220, 0xF75D217E, 0x0590C22E} } } } ;
14428 static const bigint_t var_b = {0xE75CCDA7, 0xD99A9EE9, 0x142B5B29, 0x56F0D200, 0x9F6B81F6, 0x6C2F53A5, 0x47E94F03, 0xD349A8CE};
14429 static const fp12_t var_expected = { { { {0xE72A3512, 0x0B89BE3E, 0x52F0FB8B, 0x5BA5D6E5, 0x9E564E28, 0xBE22B80E, 0x9B54B4F8, 0x338E8326},
14430 {0x600064C1, 0x947EEF9D, 0xE8206A83, 0xFA0F595E, 0x0C8B0E54, 0x757CE5CE, 0x85AD9EB8, 0xA0428B23} } ,
14431 { {0x96E7EA0A, 0xEC631037, 0x015B97FD, 0xEED15D00, 0x25C17823, 0x614C08C5, 0x0A2C17E3, 0x7610AB61},
14432 {0x9BB0E8B6, 0xDC2765E3, 0xD45BC4A1, 0xE5D201E2, 0x471FB281, 0x3179D447, 0xD5DE338C, 0x58B160EF} } } ,
14433 { { {0x8787DF19, 0xF32F3629, 0x8D1F18AC, 0x5A2768D2, 0xF63047F1, 0xCD5B4F96, 0x4403F496, 0x501BB0F2},
14434 {0x7E36A422, 0x9CA96A65, 0x41783633, 0x84D6BC16, 0x97A644F5, 0xE82D5633, 0x3034BD95, 0xB599506B} } ,
14435 { {0x2C019885, 0x9D5F26ED, 0xDCE20A0C, 0x0C7808B1, 0x62F734F2, 0x29AB0587, 0x7D45150A, 0x7932C717},
14436 {0x4DFE14A9, 0xA66A973B, 0x687269CE, 0xF004FDD0, 0x6D1E2735, 0x33E5848B, 0xEE92784F, 0x0FDFE44E} } } ,
14437 { { {0x7BB27DBC, 0x806C8D9C, 0xB71B56D8, 0x35CF63E4, 0x12824AEB, 0x5BF2B52F, 0xA9BC8A0D, 0x736C02B1},
14438 {0x6CC8D8BE, 0x006CAA21, 0x5B3C986D, 0xD19CB52A, 0x05347EC6, 0x3C46EE87, 0x6DABA9D9, 0x9855CCC8} } ,
14439 { {0x9D9716FA, 0x9C38C42C, 0xD3BCBCF6, 0xFC7D25E0, 0x596A67C9, 0xA9CAE743, 0xF7F3DD10, 0x594CB0F2},
14440 {0x21927A28, 0x755518A0, 0x158BE457, 0x575B1777, 0x0EDEBB15, 0x86A8E76C, 0x3E0F4666, 0x06011F5A} } } } ;
14442 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3489 a000");
14443 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3490 a001");
14444 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3491 a010");
14445 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3492 a011");
14446 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3493 a100");
14447 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3494 a101");
14448 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3495 a110");
14449 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3496 a111");
14450 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3497 a200");
14451 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3498 a201");
14452 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3499 a210");
14453 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3500 a211");
14456 static const fp12_t var_a = { { { {0x0CC3E785, 0x71CDC3F5, 0x8EE18CD1, 0xBA901EAC, 0xC5390136, 0x346E9791, 0xC227BEE1, 0x87380693},
14457 {0xE9562A32, 0xA4506710, 0xCFFFACBA, 0x0A2E73C0, 0x39A007BF, 0xCF53767E, 0x1C22C429, 0x8EA3D176} } ,
14458 { {0x55156C6E, 0xCBD9C528, 0x95E89A8D, 0xBFD61ADE, 0x8BC51632, 0x608C1EAE, 0x59E46222, 0x0294AE19},
14459 {0x3C14E93A, 0x0198416B, 0x2002A9D0, 0x65D078FF, 0x27755B88, 0x9697602A, 0x537A88AB, 0x24BE257B} } } ,
14460 { { {0x0440F659, 0xA18EC73B, 0xD5C8CAD2, 0x7772D5E5, 0x82BD6CDC, 0x0F15568D, 0x78DAB117, 0x835CBB1E},
14461 {0x3B40B78E, 0xD30D3253, 0x721DECEF, 0x2282A530, 0x4A1B9BCF, 0x0B81B0B3, 0xCA4B921F, 0x34737AC2} } ,
14462 { {0xEDB742AF, 0xFDD2B50F, 0xDC53DC5A, 0x83875892, 0x32235320, 0xBA806271, 0xDD8CF219, 0x992DF69F},
14463 {0x36AD9CD7, 0x4847F0D0, 0x757D1635, 0xC9A3A696, 0xCBB8A34D, 0xD69E5496, 0x1C76091F, 0x40A4837E} } } ,
14464 { { {0x26D198CD, 0x266299AA, 0x76D80AA3, 0xC563720E, 0x5D6361ED, 0x1C584B65, 0x84A7F63F, 0x17A97A7E},
14465 {0xE13E0CDC, 0xC9BE7B80, 0x959E6151, 0x5AFEF8D7, 0x0FAE0205, 0xD176EC96, 0xE64858D3, 0x39FB880F} } ,
14466 { {0x040F416E, 0xA65B34E3, 0xB1F2E682, 0x5D8F147F, 0x0AA62771, 0x2CC4DF98, 0xAACFF6C6, 0x0D8744CC},
14467 {0x5730D91F, 0xFC68DB5C, 0xFF18DA54, 0x52D314C9, 0xB7E57B62, 0x051BB45B, 0xC74ED28E, 0x80FF9B8F} } } } ;
14468 static const bigint_t var_b = {0x1C742F90, 0x47D3236F, 0xDA5B446D, 0xADDC9637, 0x7E1ED45F, 0x241EDFBE, 0xCC73436B, 0xCCA561D9};
14469 static const fp12_t var_expected = { { { {0xEB9B9D2F, 0x75DE0CAF, 0xA9F1E946, 0x24580559, 0x7A5ECE9D, 0x9ADDB768, 0xE5042100, 0x8CAD47DF},
14470 {0xFB3CDDC2, 0x3D4716E6, 0x03563618, 0x0543F733, 0xEB269418, 0xD70254EE, 0x40066358, 0x9F0B02D4} } ,
14471 { {0x3F3E6716, 0x6D08E545, 0xC2F34678, 0x8E3629DA, 0x6B7703FF, 0x9CC0336A, 0xAF336B46, 0x793FB75C},
14472 {0xB6CCEF98, 0x2CB475C5, 0x62047B53, 0xB12E3774, 0x1C09845F, 0x4AA15236, 0x85A85078, 0x3366C278} } } ,
14473 { { {0x53EF372D, 0x3C80AF91, 0x2FA56D95, 0x6C6E9766, 0x9BA87982, 0x25C24C82, 0x0EFF8F9E, 0xADE6D315},
14474 {0xC4A71964, 0x16C5C6BD, 0xBEE5FF0B, 0xA66B2BB5, 0x3CC1FF7C, 0x1B762C5D, 0xE2CC6448, 0x8B23A870} } ,
14475 { {0x0E3E4460, 0xB5A076CA, 0x5F312887, 0xF3C6A8E3, 0x5C85A0D6, 0x2C90CEBB, 0x8FC317F7, 0x58AB3CDA},
14476 {0xC3E7464E, 0x29C8E5CB, 0x31C279D9, 0x55E1717E, 0xF9C5DDE1, 0x7AC3C93F, 0x65686BFF, 0x291A589A} } } ,
14477 { { {0xB10831CF, 0x0C2DD41E, 0x58565755, 0xB3962592, 0xE7B3FC6D, 0x27E8D5C1, 0x4C4C804A, 0x4C52DD29},
14478 {0xF14373A6, 0x371EE25D, 0x87D36C3C, 0xF557C733, 0xE618D1B9, 0x19CC9BFA, 0x79F575B9, 0x9737E68B} } ,
14479 { {0xEB0C0771, 0xCFBBC58E, 0xB68ABF90, 0xB79F8D36, 0x1C36F159, 0x1B3E2A0A, 0x7CA18C8E, 0x9C0D323F},
14480 {0xFE753B40, 0x7A0C8E7D, 0xFA537A5B, 0x68168AB9, 0xC58E4A8C, 0x27C34035, 0x9984325C, 0x02CDC320} } } } ;
14482 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3501 a000");
14483 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3502 a001");
14484 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3503 a010");
14485 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3504 a011");
14486 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3505 a100");
14487 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3506 a101");
14488 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3507 a110");
14489 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3508 a111");
14490 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3509 a200");
14491 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3510 a201");
14492 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3511 a210");
14493 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3512 a211");
14496 static const fp12_t var_a = { { { {0xA7DFFB26, 0xCBDC07FD, 0x1F3B6753, 0xF549F778, 0xAB2F3A75, 0xDB4FE5D4, 0x1B0EF2AC, 0x566A7816},
14497 {0xE0A6AD47, 0x1172FC4A, 0xA9425BC1, 0x42673223, 0xE979433B, 0x821F091A, 0x687CED65, 0x2C06296F} } ,
14498 { {0xA8CFFDEF, 0x61391676, 0xF887E7F1, 0x1A34D47A, 0x66689B5E, 0xE5E5CB48, 0x7E0741AF, 0x27062F50},
14499 {0x8C1A72E5, 0x4CB12040, 0x68724009, 0x36F96850, 0x0C963A74, 0xF0519C88, 0x3AB86B4A, 0x2A3ED0FC} } } ,
14500 { { {0xADF3C841, 0x251CC8A5, 0x22B7F9B7, 0xADB16A16, 0xF77AE1AD, 0x0303C8F1, 0x4ECFD1BE, 0x2943215C},
14501 {0x4EADDC2E, 0x82141521, 0xA7744A82, 0x72703B1C, 0xF1038FA6, 0x75DFAE43, 0xBF732EC7, 0xABC3526F} } ,
14502 { {0x70D76940, 0xC1DC0CE8, 0xF5E0E86C, 0x179C222A, 0xAE1D3D8B, 0x439D1824, 0xE87982D7, 0x02AAEA4B},
14503 {0x1FAA7A94, 0x7D0F0B6B, 0x880F140D, 0x6979B518, 0x3125F526, 0x46E202FC, 0xB581397C, 0xB8C16A41} } } ,
14504 { { {0x261B84E2, 0x1C6D2330, 0x5CED7BBC, 0xD736D5CD, 0x6BB1F0E7, 0xFE16BE33, 0x69CAFF94, 0x238E395C},
14505 {0x70137B88, 0x45FD5FFE, 0xC3468C3A, 0xAA379C34, 0xFC333400, 0xE0B45930, 0x984FD005, 0x2AB23C96} } ,
14506 { {0x1C8D4659, 0x6304E804, 0x07F5D250, 0x7637A9A9, 0x5CB8FFC3, 0xDD81A61D, 0x6CED7E37, 0x0E0048DD},
14507 {0x1AD09988, 0x23568791, 0xCE82B9DC, 0x3BAF64AC, 0xBFF92E6A, 0xF560FD84, 0xE6526BA7, 0x45CF7C56} } } } ;
14508 static const bigint_t var_b = {0x913A4C7E, 0xF9FA123D, 0xB6BF67DE, 0x4180BD45, 0x33F85221, 0xA4E98678, 0x93774EDE, 0x9DAC4EAE};
14509 static const fp12_t var_expected = { { { {0x51232327, 0xD59C79A6, 0x80C6C071, 0xF6EC3E20, 0x428FCF2E, 0x3682435C, 0x2BBEE1EE, 0x4ECD7E3C},
14510 {0xA4D16BBB, 0x302451B7, 0x7440A1B8, 0x8E74F246, 0x10AC6836, 0x43129D20, 0x7DC96A39, 0x78CDD60A} } ,
14511 { {0x0CBC1663, 0x2CD5F2B4, 0x26BF8E17, 0x12AE8D53, 0xD43F09F2, 0x03AB7645, 0x7B2178BF, 0x290D3581},
14512 {0x22197D2D, 0x8B8E3B1A, 0xC737063E, 0x45D85C17, 0xF696099F, 0x3CCB41F4, 0x4B545C47, 0xA80A2B30} } } ,
14513 { { {0xDF2BAEE5, 0xB2E3C8BC, 0xF4B85F6A, 0x9DAF011A, 0xECCB0EEA, 0x7DF7C2BD, 0xECCA987F, 0x295EBE75},
14514 {0xAE57B1BD, 0x1CD8E235, 0xD418FFFF, 0x792818BA, 0xBAFDBE0F, 0x7D158150, 0xD80ABDAB, 0xA09AF707} } ,
14515 { {0x8D992E3A, 0xE66627AB, 0x94C538B2, 0x9596E27C, 0xF7C2C829, 0xD55A94AD, 0x4B4A4759, 0x367D2194},
14516 {0xCD8C44EE, 0x6B170BF9, 0x3F8F831A, 0xC18BE327, 0x12DF91B2, 0x32BAA0FA, 0xBB744DAC, 0xB346FDC5} } } ,
14517 { { {0x3F5EC905, 0x08F848B0, 0xBE29C34E, 0xD925745C, 0x0020A591, 0x2DB20BCD, 0x7AFF14E9, 0x5DD848D0},
14518 {0x65F765B0, 0x2A6F90E2, 0x8359D1EE, 0x74477467, 0xA38F5FF2, 0x1D3F4E9A, 0x234BCF93, 0x3B26F1FA} } ,
14519 { {0x0D3658CC, 0xEC98148D, 0x7A32AA55, 0xFBD839F4, 0xDE5D3980, 0x2261F148, 0xC182373E, 0xA8346FB4},
14520 {0x455ED07B, 0x501BB508, 0x66F2CE45, 0x367E2D8F, 0xBA0A8EF5, 0xDC4C422F, 0x4D2D90E7, 0x36DA89E9} } } } ;
14522 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3513 a000");
14523 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3514 a001");
14524 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3515 a010");
14525 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3516 a011");
14526 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3517 a100");
14527 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3518 a101");
14528 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3519 a110");
14529 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3520 a111");
14530 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3521 a200");
14531 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3522 a201");
14532 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3523 a210");
14533 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3524 a211");
14536 static const fp12_t var_a = { { { {0x741D2C95, 0x9E9E1670, 0xB609DB77, 0x3D7A5B50, 0x80B88DFB, 0x7A5401CB, 0xDA37E899, 0x1AC6010A},
14537 {0xF0252189, 0x8D5F03E1, 0xC285E6F7, 0x2D265A78, 0x4781CAE2, 0x803C793F, 0xB6653C21, 0x19BF92BF} } ,
14538 { {0x4DDF6AE2, 0x83ED066B, 0x1FCFEC27, 0xECD8FD8B, 0xDB7AF99D, 0xB4E780FE, 0x73BBDAFE, 0x87BC16C6},
14539 {0x962B98B9, 0x0582B7C4, 0x96CFB7F0, 0xF48FC891, 0x774EF279, 0xBC843072, 0xB4C10D13, 0x201F3C75} } } ,
14540 { { {0x7AA1C61D, 0xD93CA2CF, 0x9723D160, 0xE809FACE, 0x55E78235, 0x1C77A1C6, 0x6DEF222C, 0x1BB9ED9F},
14541 {0xF79FB433, 0x8A375185, 0x61924CE1, 0x56CCA93C, 0xE9B3B2DE, 0xEFB3EBCE, 0xEA34D968, 0x64B1C680} } ,
14542 { {0xD5E895A2, 0xE9F8CCDD, 0x9285013E, 0x385A59D3, 0x5D98CA2D, 0x60EE678A, 0x470AE12C, 0x1DB339F8},
14543 {0x04C28AB5, 0x864F8B0D, 0xE578A651, 0x30BE2038, 0x5A9261A5, 0xFE932424, 0x7501252D, 0x61856DFD} } } ,
14544 { { {0xB4CC2B13, 0x3AD4ABE6, 0x1E8DDB95, 0xFEECDA81, 0xF5DCFF1F, 0x7BD94CAC, 0x3BC3DBBF, 0x9C4AF065},
14545 {0x15EEA9FD, 0xA1D35AD0, 0xA40AE466, 0xD47C146F, 0xC4176F2B, 0xFD36740A, 0x7164CA00, 0x04433671} } ,
14546 { {0xE650F2E4, 0x9957F5EC, 0xDFC57E5F, 0x75CBE67A, 0xBC08F694, 0xAFF4A821, 0x471817DA, 0x77E22B23},
14547 {0xFB0F27BA, 0xC6EC30C3, 0xB724ABC0, 0xB20F14C2, 0xB6A023DC, 0x47A7A01E, 0xBDCE93C7, 0x01D8EA0A} } } } ;
14548 static const fp12_t var_expected = { { { {0xEE0F0806, 0x60507340, 0x1E6E03CF, 0xD5975150, 0xD329FBB9, 0x810C5A9F, 0x65E6F38F, 0x9F4D9DB7},
14549 {0x72071312, 0x718F85CF, 0x11F1F84F, 0xE5EB5228, 0x0C60BED2, 0x7B23E32C, 0x89B9A007, 0xA0540C02} } ,
14550 { {0x144CC9B9, 0x7B018346, 0xB4A7F31F, 0x2638AF15, 0x78679017, 0x4678DB6C, 0xCC63012A, 0x325787FB},
14551 {0xCC009BE2, 0xF96BD1EC, 0x3DA82756, 0x1E81E40F, 0xDC93973B, 0x3EDC2BF8, 0x8B5DCF15, 0x99F4624C} } } ,
14552 { { {0xE78A6E7E, 0x25B1E6E1, 0x3D540DE6, 0x2B07B1D2, 0xFDFB077F, 0xDEE8BAA4, 0xD22FB9FC, 0x9E59B122},
14553 {0x6A8C8068, 0x74B7382B, 0x72E59265, 0xBC450364, 0x6A2ED6D6, 0x0BAC709C, 0x55EA02C0, 0x5561D841} } ,
14554 { {0x8C439EF9, 0x14F5BCD3, 0x41F2DE08, 0xDAB752CD, 0xF649BF87, 0x9A71F4E0, 0xF913FAFC, 0x9C6064C9},
14555 {0x5D69A9E6, 0x789EFEA4, 0xEEFF38F5, 0xE2538C67, 0xF950280F, 0xFCCD3846, 0xCB1DB6FA, 0x588E30C4} } } ,
14556 { { {0xAD600988, 0xC419DDCA, 0xB5EA03B1, 0x1424D21F, 0x5E058A95, 0x7F870FBE, 0x045B0069, 0x1DC8AE5D},
14557 {0x4C3D8A9E, 0x5D1B2EE1, 0x306CFAE0, 0x3E959831, 0x8FCB1A89, 0xFE29E860, 0xCEBA1227, 0xB5D06850} } ,
14558 { {0x7BDB41B7, 0x659693C4, 0xF4B260E7, 0x9D45C625, 0x97D99320, 0x4B6BB449, 0xF906C44E, 0x4231739E},
14559 {0x671D0CE1, 0x380258ED, 0x1D533386, 0x610297DE, 0x9D4265D8, 0xB3B8BC4C, 0x82504861, 0xB83AB4B7} } } } ;
14561 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3525 a000");
14562 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3526 a001");
14563 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3527 a010");
14564 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3528 a011");
14565 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3529 a100");
14566 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3530 a101");
14567 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3531 a110");
14568 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3532 a111");
14569 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3533 a200");
14570 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3534 a201");
14571 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3535 a210");
14572 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3536 a211");
14575 static const fp12_t var_a = { { { {0x415D88D4, 0x0D2EEF92, 0x64543C3B, 0x3C3E1984, 0x37525088, 0x743BB47F, 0x29A0BE67, 0x3DFA2E50},
14576 {0x53F8A350, 0x1A082E5C, 0xC898C623, 0xC2E40D1A, 0x5252BEBD, 0x6BB760CA, 0x746FA4AC, 0x3A030765} } ,
14577 { {0x9D12489D, 0xDFB4C797, 0x1ECA9DB0, 0x5CD8FE5D, 0xD21E83F4, 0x797D6C74, 0x5D596D36, 0x363E8954},
14578 {0xABFAB7F5, 0x0A1BBAD6, 0xC64E5105, 0xCD359A5D, 0x019D69A5, 0x4DD22CAD, 0x74CB71E5, 0x7095E7EB} } } ,
14579 { { {0x50682769, 0x97CF4B22, 0x1F1AFC63, 0xF648FAA6, 0x92CA9C77, 0xB9644760, 0x20FDD95E, 0x714D730F},
14580 {0x5AEF33FC, 0x3E7FE720, 0x33C3FEBA, 0x27C32EE5, 0xBC59695E, 0x024BF799, 0xDAC543F0, 0x8F5077F3} } ,
14581 { {0xC9506DEC, 0x0088BF0D, 0x34E7D89A, 0x31502468, 0xC215A088, 0x79AF3EA0, 0x30B0EAE9, 0x10AB982F},
14582 {0x96AAFC78, 0x9EDCC491, 0xFD7FD0AC, 0x518E9274, 0x68B3A8F7, 0xE40C4E52, 0xC3D322F5, 0x0790BC14} } } ,
14583 { { {0x64C0E3FB, 0x21F9216E, 0x3E0CCCEC, 0xFA836B53, 0x334CC563, 0x227B1849, 0x490B18D5, 0x8EA264CE},
14584 {0xD277D88B, 0x54A7EED6, 0x4F64A2A5, 0x0CFBC35D, 0x2A58F760, 0x8B8B641B, 0x8BEB4220, 0x8A6D3F06} } ,
14585 { {0x119A419A, 0x45C315FD, 0x89D9AF72, 0xFA6B6D5F, 0xB234B3F8, 0x79954AB2, 0xA835F2FC, 0x8C34125C},
14586 {0xC569BBE3, 0xC8AF9A40, 0x98746ADF, 0x59DF9502, 0x66C930E6, 0xD05286AF, 0xD154E694, 0x09D1F534} } } } ;
14587 static const fp12_t var_expected = { { { {0x20CEABC7, 0xF1BF9A1F, 0x7023A30B, 0xD6D3931C, 0x1C90392C, 0x8724A7EC, 0x167E1DC1, 0x7C197072},
14588 {0x0E33914B, 0xE4E65B55, 0x0BDF1923, 0x502D9F86, 0x018FCAF7, 0x8FA8FBA1, 0xCBAF377C, 0x8010975C} } ,
14589 { {0xC519EBFE, 0x1F39C219, 0xB5AD4196, 0xB638AE43, 0x81C405C0, 0x81E2EFF6, 0xE2C56EF2, 0x83D5156D},
14590 {0xB6317CA6, 0xF4D2CEDA, 0x0E298E41, 0x45DC1243, 0x5245200F, 0xAD8E2FBE, 0xCB536A43, 0x497DB6D6} } } ,
14591 { { {0x11C40D32, 0x671F3E8F, 0xB55CE2E3, 0x1CC8B1FA, 0xC117ED3D, 0x41FC150A, 0x1F2102CA, 0x48C62BB3},
14592 {0x073D009F, 0xC06EA291, 0xA0B3E08C, 0xEB4E7DBB, 0x97892056, 0xF91464D1, 0x65599838, 0x2AC326CE} } ,
14593 { {0x98DBC6AF, 0xFE65CAA3, 0x9F9006AC, 0xE1C18838, 0x91CCE92C, 0x81B11DCA, 0x0F6DF13F, 0xA9680693},
14594 {0xCB813823, 0x6011C51F, 0xD6F80E9A, 0xC1831A2B, 0xEB2EE0BD, 0x17540E18, 0x7C4BB933, 0xB282E2AD} } } ,
14595 { { {0xFD6B50A0, 0xDCF56842, 0x966B125A, 0x188E414D, 0x2095C451, 0xD8E54422, 0xF713C353, 0x2B7139F3},
14596 {0x8FB45C10, 0xAA469ADA, 0x85133CA1, 0x0615E943, 0x29899255, 0x6FD4F850, 0xB4339A08, 0x2FA65FBB} } ,
14597 { {0x5091F301, 0xB92B73B4, 0x4A9E2FD4, 0x18A63F41, 0xA1ADD5BC, 0x81CB11B8, 0x97E8E92C, 0x2DDF8C65},
14598 {0x9CC278B8, 0x363EEF70, 0x3C037467, 0xB932179E, 0xED1958CE, 0x2B0DD5BB, 0x6EC9F594, 0xB041A98D} } } } ;
14600 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3537 a000");
14601 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3538 a001");
14602 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3539 a010");
14603 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3540 a011");
14604 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3541 a100");
14605 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3542 a101");
14606 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3543 a110");
14607 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3544 a111");
14608 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3545 a200");
14609 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3546 a201");
14610 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3547 a210");
14611 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3548 a211");
14614 static const fp12_t var_a = { { { {0x25B1C50B, 0xF4FC27D4, 0x2593BAC7, 0x513C67AA, 0x4237ADD2, 0x77CBCACA, 0x8AED30F4, 0x1CF737D3},
14615 {0x63AAC72E, 0xA3B2A767, 0x84AA0CDF, 0x7893B037, 0xC3ABD702, 0xCC964DB1, 0x7078941E, 0xB48053B0} } ,
14616 { {0xF8F2B76C, 0xF7C9BC9D, 0x07CD21BC, 0x86D89B8C, 0xD1CFB9B1, 0x4D1E2B30, 0xEE3A13CD, 0x050D2BB2},
14617 {0x809DCD30, 0xD0FA2705, 0x2B4CE2E5, 0xD8F04B09, 0xD1349BDE, 0xDE63412D, 0x4691C8B4, 0x431CDFB8} } } ,
14618 { { {0xFFD352FE, 0x574C52BE, 0xE8DE4E41, 0x2888E9A1, 0x8F679B69, 0x77698842, 0x4E9927D7, 0x1BD3932F},
14619 {0xB513B94C, 0x7597259F, 0x38181836, 0x74B74FA7, 0xB1E68BA7, 0x8F0E6259, 0x70181D6C, 0x9494A58D} } ,
14620 { {0x4D56BB40, 0x5DE2216A, 0x9493FE1C, 0x174F595F, 0x413C9616, 0xAF7BFBC3, 0xA958AA6C, 0x304425E8},
14621 {0x93D4A3AF, 0xFD9F6483, 0x9B5D79E6, 0x12F3D1EB, 0xCB08B07F, 0xC7031028, 0xCA5CE537, 0x6C6C7F27} } } ,
14622 { { {0x99594D6D, 0x90C01DB7, 0xEEFDFFF5, 0x88FDDDCD, 0x41A6FCA1, 0xE9A6E268, 0x7B59383C, 0x10FF990B},
14623 {0x70B4AF47, 0x1110DC9E, 0xD58358C3, 0x08B65654, 0x1ACFD171, 0x9A18EE37, 0x738B4D0F, 0xB397E72B} } ,
14624 { {0xB6345F06, 0xBDC44A37, 0x98658427, 0xB5F74279, 0x2CE096FB, 0x67C7EE0E, 0xC169F988, 0x9611BFB3},
14625 {0x1ED5522B, 0x9AC2A2C4, 0xFF070551, 0xC2C1C0F6, 0x2D5C240E, 0x66D9C1DE, 0x46C50BF3, 0x231005ED} } } } ;
14626 static const fp12_t var_expected = { { { {0x3C7A6F90, 0x09F261DD, 0xAEE4247F, 0xC1D544F6, 0x11AADBE2, 0x839491A1, 0xB531AB34, 0x9D1C66EE},
14627 {0xFE816D6D, 0x5B3BE249, 0x4FCDD267, 0x9A7DFC69, 0x9036B2B2, 0x2ECA0EB9, 0xCFA6480A, 0x05934B11} } ,
14628 { {0x69397D2F, 0x0724CD13, 0xCCAABD8A, 0x8C391114, 0x8212D003, 0xAE42313A, 0x51E4C85B, 0xB506730F},
14629 {0xE18E676B, 0x2DF462AB, 0xA92AFC61, 0x3A216197, 0x82ADEDD6, 0x1CFD1B3D, 0xF98D1374, 0x76F6BF09} } } ,
14630 { { {0x6258E19D, 0xA7A236F2, 0xEB999105, 0xEA88C2FE, 0xC47AEE4B, 0x83F6D428, 0xF185B451, 0x9E400B92},
14631 {0xAD187B4F, 0x89576411, 0x9C5FC710, 0x9E5A5CF9, 0xA1FBFE0D, 0x6C51FA11, 0xD006BEBC, 0x257EF934} } ,
14632 { {0x14D5795B, 0xA10C6847, 0x3FE3E12A, 0xFBC25341, 0x12A5F39E, 0x4BE460A8, 0x96C631BC, 0x89CF78D9},
14633 {0xCE5790EC, 0x014F252D, 0x391A6560, 0x001DDAB5, 0x88D9D936, 0x345D4C42, 0x75C1F6F1, 0x4DA71F9A} } } ,
14634 { { {0xC8D2E72E, 0x6E2E6BF9, 0xE579DF51, 0x8A13CED2, 0x123B8D13, 0x11B97A03, 0xC4C5A3EC, 0xA91405B6},
14635 {0xF1778554, 0xEDDDAD12, 0xFEF48683, 0x0A5B564B, 0x3912B844, 0x61476E34, 0xCC938F19, 0x067BB796} } ,
14636 { {0xABF7D595, 0x412A3F79, 0x3C125B1F, 0x5D1A6A27, 0x2701F2B9, 0x93986E5D, 0x7EB4E2A0, 0x2401DF0E},
14637 {0x4356E270, 0x642BE6ED, 0xD570D9F5, 0x504FEBA9, 0x268665A6, 0x94869A8D, 0xF959D035, 0x970398D4} } } } ;
14639 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3549 a000");
14640 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3550 a001");
14641 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3551 a010");
14642 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3552 a011");
14643 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3553 a100");
14644 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3554 a101");
14645 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3555 a110");
14646 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3556 a111");
14647 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3557 a200");
14648 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3558 a201");
14649 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3559 a210");
14650 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3560 a211");
14653 static const fp12_t var_a = { { { {0xD91334EE, 0xEB9A0157, 0xF5E638E8, 0x52B2C18F, 0xDAA94D8C, 0x9F1D248C, 0x79CE288F, 0x0F7A6973},
14654 {0x3B01C4EA, 0xBF9A5191, 0xC2175504, 0x3B02B765, 0x275FCDB9, 0xB75E6C54, 0x61A5BCCF, 0x995C4DFC} } ,
14655 { {0x18961E1A, 0x6395509E, 0xD263C228, 0x417AB82B, 0x100B75AC, 0x48597426, 0x9F96DEF1, 0x4BE9D23D},
14656 {0xF114B312, 0xECCF41EB, 0x3C45EB21, 0x27D7F1F1, 0x1BA9C9AD, 0x76B3855B, 0x61C3E643, 0x1FC7BADC} } } ,
14657 { { {0xC749DB6E, 0xAE2A935E, 0x3BCBA57D, 0xA296A6F1, 0xD486B6D6, 0x5B8A7083, 0x708AF8F4, 0x5BE6B6C6},
14658 {0x5DB6B86A, 0xC78B476D, 0x93DAE2D4, 0x0221D385, 0xACE2A92B, 0xB0ADBB9B, 0xE32FE51D, 0x1385AF8B} } ,
14659 { {0x7CFCEAD7, 0x9485030D, 0x7EE965D8, 0xD6585F3F, 0x6A6B66C1, 0x13B1E16B, 0x69FBFA2A, 0x90DE74BB},
14660 {0x51C775F4, 0x3C3AF8A6, 0xE3883E8F, 0x398A7BDA, 0x6A185486, 0xC45DFDD2, 0xC3ED98B0, 0x2DE87403} } } ,
14661 { { {0x0C0B212A, 0x2015D0A4, 0x2738B503, 0x7F2C21CE, 0x5822CDB7, 0xE74DA5E6, 0x4894C59C, 0x7B35D6C8},
14662 {0x42899A1B, 0x71C49372, 0x598EDD6F, 0x8BF21622, 0x787FE749, 0x487A222C, 0x6062301C, 0x1ED5CA11} } ,
14663 { {0x2A85306B, 0x9B2E2C48, 0x3036DC88, 0x6B95E3A7, 0x0E9DDA63, 0x96917098, 0xCA0A405F, 0x3440DA1B},
14664 {0x47F2A230, 0xD11B40CB, 0x3586B063, 0x117A1FA1, 0x93C53A1C, 0x12F08881, 0x962504E7, 0x90D38838} } } } ;
14665 static const fp12_t var_expected = { { { {0x8918FFAD, 0x13548859, 0xDE91A65E, 0xC05EEB10, 0x79393C28, 0x5C4337DE, 0xC650B399, 0xAA99354E},
14666 {0x272A6FB1, 0x3F543820, 0x12608A42, 0xD80EF53B, 0x2C82BBFB, 0x4401F017, 0xDE791F59, 0x20B750C5} } ,
14667 { {0x49961681, 0x9B593913, 0x02141D1E, 0xD196F475, 0x43D71408, 0xB306E845, 0xA087FD37, 0x6E29CC84},
14668 {0x71178189, 0x121F47C5, 0x9831F425, 0xEB39BAAF, 0x3838C007, 0x84ACD710, 0xDE5AF5E5, 0x9A4BE3E5} } } ,
14669 { { {0x9AE2592D, 0x50C3F652, 0x98AC39C9, 0x707B05AF, 0x7F5BD2DE, 0x9FD5EBE7, 0xCF93E334, 0x5E2CE7FB},
14670 {0x04757C31, 0x37634244, 0x409CFC72, 0x10EFD91B, 0xA6FFE08A, 0x4AB2A0CF, 0x5CEEF70B, 0xA68DEF36} } ,
14671 { {0xE52F49C4, 0x6A6986A3, 0x558E796E, 0x3CB94D61, 0xE97722F3, 0xE7AE7AFF, 0xD622E1FE, 0x29352A06},
14672 {0x1064BEA7, 0xC2B3910B, 0xF0EFA0B7, 0xD98730C5, 0xE9CA352E, 0x37025E98, 0x7C314378, 0x8C2B2ABE} } } ,
14673 { { {0x56211371, 0xDED8B90D, 0xAD3F2A43, 0x93E58AD2, 0xFBBFBBFD, 0x1412B684, 0xF78A168C, 0x3EDDC7F9},
14674 {0x1FA29A80, 0x8D29F63F, 0x7AE901D7, 0x871F967E, 0xDB62A26B, 0xB2E63A3E, 0xDFBCAC0C, 0x9B3DD4B0} } ,
14675 { {0x37A70430, 0x63C05D69, 0xA44102BE, 0xA77BC8F9, 0x4544AF51, 0x64CEEBD3, 0x76149BC9, 0x85D2C4A6},
14676 {0x1A39926B, 0x2DD348E6, 0x9EF12EE3, 0x01978CFF, 0xC01D4F99, 0xE86FD3E9, 0xA9F9D741, 0x29401689} } } } ;
14678 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3561 a000");
14679 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3562 a001");
14680 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3563 a010");
14681 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3564 a011");
14682 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3565 a100");
14683 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3566 a101");
14684 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3567 a110");
14685 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3568 a111");
14686 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3569 a200");
14687 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3570 a201");
14688 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3571 a210");
14689 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3572 a211");
14692 static const fp12_t var_a = { { { {0xEE2F7796, 0x8C549072, 0x4D1790D4, 0xDF87EAF4, 0x3A327F68, 0x0F6CAB86, 0xAA6726E9, 0x3EA93B9E},
14693 {0x924A7BDE, 0x04122124, 0x7C59FF16, 0xE1526EA3, 0xB5CED8F3, 0x43F7128C, 0xC14F430D, 0x41CBE12B} } ,
14694 { {0x8CC5E87C, 0xBD372ABE, 0xF8C428E1, 0x2B0C7C38, 0xCC9A959D, 0x8EE0E4C4, 0x27261660, 0x31FF7279},
14695 {0xB986D96C, 0xF581D777, 0xEFDDF8A3, 0x91334BDA, 0x185DAB66, 0x31DF76F9, 0x3F099C00, 0x5C90FD87} } } ,
14696 { { {0x3B327769, 0x36E3A975, 0x920576E3, 0x03A9E36B, 0x9DADAD61, 0x8C709709, 0x3E91D51A, 0x59361901},
14697 {0x31E64544, 0xCB23A109, 0xBAC624C2, 0xE2233BD4, 0xE1D2CC4F, 0x741FBD2A, 0x6DDC98E3, 0x91A088FC} } ,
14698 { {0x4BF29A18, 0x42B03E4B, 0x3FF50117, 0x2119A64A, 0xCB486817, 0xC7CB8691, 0x6A06EA06, 0x1247D593},
14699 {0x4D43A705, 0xF01CA489, 0x7874E1E3, 0xC28BDC0D, 0x2182EF29, 0xE9E6F2FA, 0xA785C2F9, 0x1833E00F} } } ,
14700 { { {0x747B5810, 0x6965FFED, 0xE1A4F2A6, 0xB9C7F4BE, 0xAFEBB3C2, 0x35A55FDC, 0x2A7668CB, 0x27BFA9F7},
14701 {0x284188E5, 0x0B3BF095, 0x511CDA55, 0xAB9D8416, 0x796DE598, 0x9E906EAA, 0x8C5F6872, 0x4FB0780D} } ,
14702 { {0xE9A930DA, 0x7520EAA4, 0xEF926C09, 0x1A86A4A0, 0x389C10A6, 0x135FA1CC, 0xBA9C2AA0, 0x306A208C},
14703 {0xD1DF0180, 0x072E6F56, 0xB6E9E9E3, 0xE5B12B5D, 0xD2B6960C, 0xF7696E99, 0x77FAC799, 0x7BF22410} } } } ;
14704 static const fp12_t var_expected = { { { {0x73FCBD05, 0x7299F93E, 0x87604E72, 0x3389C1AC, 0x19B00A4C, 0xEBF3B0E5, 0x95B7B53F, 0x7B6A6323},
14705 {0xCFE1B8BD, 0xFADC688C, 0x581DE030, 0x31BF3DFD, 0x9E13B0C1, 0xB76949DE, 0x7ECF991B, 0x7847BD96} } ,
14706 { {0xD5664C1F, 0x41B75EF2, 0xDBB3B665, 0xE8053067, 0x8747F417, 0x6C7F77A6, 0x18F8C5C8, 0x88142C49},
14707 {0xA8A55B2F, 0x096CB239, 0xE499E6A3, 0x81DE60C5, 0x3B84DE4E, 0xC980E572, 0x01154028, 0x5D82A13B} } } ,
14708 { { {0x26F9BD32, 0xC80AE03C, 0x42726863, 0x0F67C935, 0xB634DC54, 0x6EEFC561, 0x018D070E, 0x60DD85C1},
14709 {0x3045EF57, 0x33CAE8A8, 0x19B1BA84, 0x30EE70CC, 0x720FBD65, 0x87409F40, 0xD2424345, 0x287315C5} } ,
14710 { {0x16399A83, 0xBC3E4B66, 0x9482DE2F, 0xF1F80656, 0x889A219D, 0x3394D5D9, 0xD617F222, 0xA7CBC92E},
14711 {0x14E88D96, 0x0ED1E528, 0x5C02FD63, 0x5085D093, 0x325F9A8B, 0x11796971, 0x9899192F, 0xA1DFBEB2} } } ,
14712 { { {0xEDB0DC8B, 0x958889C3, 0xF2D2ECA0, 0x5949B7E1, 0xA3F6D5F2, 0xC5BAFC8E, 0x15A8735D, 0x9253F4CB},
14713 {0x39EAABB6, 0xF3B2991C, 0x835B04F1, 0x6774288A, 0xDA74A41C, 0x5CCFEDC0, 0xB3BF73B6, 0x6A6326B4} } ,
14714 { {0x788303C1, 0x89CD9F0C, 0xE4E5733D, 0xF88B07FF, 0x1B46790E, 0xE800BA9F, 0x8582B188, 0x89A97E35},
14715 {0x904D331B, 0xF7C01A5A, 0x1D8DF563, 0x2D608143, 0x812BF3A8, 0x03F6EDD1, 0xC824148F, 0x3E217AB1} } } } ;
14717 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3573 a000");
14718 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3574 a001");
14719 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3575 a010");
14720 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3576 a011");
14721 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3577 a100");
14722 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3578 a101");
14723 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3579 a110");
14724 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3580 a111");
14725 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3581 a200");
14726 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3582 a201");
14727 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3583 a210");
14728 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3584 a211");
14731 static const fp12_t var_a = { { { {0x41EA59BA, 0x6D90CC29, 0xA1D2BD4A, 0x09F6C635, 0x96A22A5A, 0xD27B6D19, 0x586D7025, 0x30C54A65},
14732 {0x20886DF2, 0x0D6E9F1F, 0xA87C1C01, 0x430B2FFE, 0xA5D01D71, 0x890CB395, 0x0625CF83, 0x0425DBF1} } ,
14733 { {0x3488DE65, 0x9BEBBD16, 0xF00D0C64, 0x572DADC7, 0x388A7C67, 0x2DEE939B, 0xC027DFF7, 0x409791D0},
14734 {0x6751883C, 0x8631B451, 0xC0EA3C08, 0xB57AB49A, 0x037AC90D, 0x31A9183E, 0x9600612E, 0x2458BB77} } } ,
14735 { { {0x73D7467B, 0x872A135F, 0xBAA7ABE8, 0x36205CDC, 0x77E2D118, 0x1C89EF48, 0x6FBFCFE1, 0x2969FEAC},
14736 {0xC15BBCF7, 0x1997300C, 0x285E7222, 0xB3DB88AD, 0x8D62FD16, 0xFDD842DE, 0xC48C4690, 0x380DA9B8} } ,
14737 { {0x71741B31, 0xFDFDE4ED, 0xD1C6EC4A, 0xCE454E45, 0x9C35D167, 0xE34EFF7D, 0x22FAEDC3, 0x101553CE},
14738 {0x3D64DBBF, 0xB2DFE7EF, 0x4F378720, 0x866F92EB, 0x2C99F838, 0x516D5504, 0xEC3EB059, 0x847718A2} } } ,
14739 { { {0x89852C06, 0x02A43D77, 0x1442D648, 0x0D6AAFDE, 0x7E21A259, 0xEA25EC65, 0x978D578A, 0x6DB955E5},
14740 {0xB3D0A0B5, 0x7854C88B, 0x388B258B, 0x03A22CA9, 0x59BDC1C3, 0xC2BF9421, 0xAD0A3EA2, 0x725B6D26} } ,
14741 { {0x496CAFB9, 0xE376D1B6, 0xFE6F4C63, 0x87B8EB6D, 0x8F54866B, 0xFBBE6FE6, 0xCB20346E, 0x299B98AD},
14742 {0x74F5A51C, 0xD53D0BA9, 0x7A24BF7F, 0x16AE174C, 0x24FBF799, 0x2F021296, 0x62769982, 0x3AA28C6B} } } } ;
14743 static const fp12_t var_expected = { { { {0x2041DAE1, 0x915DBD88, 0x32A521FC, 0x091AE66B, 0xBD405F5B, 0x28E4EF51, 0xE7B16C03, 0x894E545C},
14744 {0x41A3C6A9, 0xF17FEA92, 0x2BFBC345, 0xD0067CA2, 0xAE126C43, 0x7253A8D5, 0x39F90CA5, 0xB5EDC2D1} } ,
14745 { {0x2DA35636, 0x6302CC9B, 0xE46AD2E2, 0xBBE3FED8, 0x1B580D4D, 0xCD71C8D0, 0x7FF6FC31, 0x797C0CF1},
14746 {0xFADAAC5F, 0x78BCD55F, 0x138DA33E, 0x5D96F806, 0x5067C0A7, 0xC9B7442D, 0xAA1E7AFA, 0x95BAE34A} } } ,
14747 { { {0xEE54EE20, 0x77C47651, 0x19D0335E, 0xDCF14FC4, 0xDBFFB89C, 0xDED66D22, 0xD05F0C47, 0x90A9A015},
14748 {0xA0D077A4, 0xE55759A4, 0xAC196D24, 0x5F3623F3, 0xC67F8C9E, 0xFD88198C, 0x7B929597, 0x8205F509} } ,
14749 { {0xF0B8196A, 0x00F0A4C3, 0x02B0F2FC, 0x44CC5E5B, 0xB7ACB84D, 0x18115CED, 0x1D23EE65, 0xA9FE4AF4},
14750 {0x24C758DC, 0x4C0EA1C2, 0x85405826, 0x8CA219B5, 0x2748917C, 0xA9F30767, 0x53E02BCF, 0x359C861F} } } ,
14751 { { {0xD8A70895, 0xFC4A4C39, 0xC03508FE, 0x05A6FCC2, 0xD5C0E75C, 0x113A7005, 0xA891849E, 0x4C5A48DC},
14752 {0xAE5B93E6, 0x8699C125, 0x9BECB9BB, 0x0F6F7FF7, 0xFA24C7F2, 0x38A0C849, 0x93149D86, 0x47B8319B} } ,
14753 { {0x18BF84E2, 0x1B77B7FB, 0xD60892E3, 0x8B58C132, 0xC48E0349, 0xFFA1EC84, 0x74FEA7B9, 0x90780614},
14754 {0xED368F7F, 0x29B17E07, 0x5A531FC7, 0xFC639554, 0x2EE6921B, 0xCC5E49D5, 0xDDA842A6, 0x7F711256} } } } ;
14756 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3585 a000");
14757 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3586 a001");
14758 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3587 a010");
14759 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3588 a011");
14760 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3589 a100");
14761 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3590 a101");
14762 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3591 a110");
14763 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3592 a111");
14764 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3593 a200");
14765 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3594 a201");
14766 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3595 a210");
14767 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3596 a211");
14770 static const fp12_t var_a = { { { {0x8EDCED79, 0x256DEA94, 0xEC724869, 0xA9E3054A, 0x26131961, 0xFF2E2F6D, 0xF909BBF9, 0x3D772967},
14771 {0x9E6F7623, 0x7008E015, 0x40227DE7, 0x3A15E344, 0x30AF8866, 0xA00E709E, 0xA926B50E, 0x3BE606F8} } ,
14772 { {0x646692D3, 0x95B99B28, 0xDB8B440C, 0x89193F20, 0x3853466B, 0x4079CD2F, 0xA034975D, 0x134D02A8},
14773 {0x3DB92431, 0x34897C13, 0xF919CD54, 0xB604FA08, 0x65D53B5F, 0x7F37985E, 0xDF759E75, 0xB7B375C2} } } ,
14774 { { {0x2A8CC822, 0x384BB162, 0xAB679FE3, 0x132F395D, 0x993C7276, 0x2325CEB2, 0x7CDB9C2B, 0x22B4005E},
14775 {0x29359220, 0x4AD9F726, 0xA895F7CB, 0x60108529, 0x3B3A7A3C, 0x60977E5B, 0xA17CD582, 0x1A686AAE} } ,
14776 { {0xCC782189, 0x5A5C7ED8, 0xA9E9135B, 0xF0AA1715, 0x1231E201, 0x72248CA0, 0xCB88AC85, 0x0FBF3D8D},
14777 {0x18A16B06, 0x1B401410, 0xB98C3253, 0x38ED9A0D, 0x195A733C, 0x1AC1312F, 0x8B4513A8, 0x54DA2E8F} } } ,
14778 { { {0x0438136C, 0x83471E26, 0xB821E380, 0x53920416, 0xFDD61AFB, 0x1F8DD64C, 0x093DC536, 0xA3E531D1},
14779 {0xFD910C52, 0x4FB148BF, 0xD9AB84E7, 0x7E92DD73, 0xA294F2C5, 0xC8AFDEFE, 0x7CBC8CE6, 0x987F6463} } ,
14780 { {0x652859BA, 0x7D6CA95A, 0x24C52980, 0x9D23D7A6, 0x9EFD9340, 0x63440B44, 0xB3A2289F, 0x31B28BA3},
14781 {0x0FC4E35F, 0xCF5C44F9, 0xF5245DF3, 0xB549CF70, 0xBD7C1EC0, 0xC2563BBC, 0x8F7EADB6, 0x547B288F} } } } ;
14782 static const fp12_t var_expected = { { { {0xD34F4722, 0xD9809F1C, 0xE80596DD, 0x692EA755, 0x2DCF7053, 0xFC322CFE, 0x4715202E, 0x7C9C755A},
14783 {0xC3BCBE78, 0x8EE5A99B, 0x9455615F, 0xD8FBC95C, 0x2333014E, 0x5B51EBCD, 0x96F8271A, 0x7E2D97C9} } ,
14784 { {0xFDC5A1C8, 0x6934EE88, 0xF8EC9B3A, 0x89F86D7F, 0x1B8F4349, 0xBAE68F3C, 0x9FEA44CB, 0xA6C69C19},
14785 {0x2473106A, 0xCA650D9E, 0xDB5E11F2, 0x5D0CB297, 0xEE0D4E55, 0x7C28C40C, 0x60A93DB3, 0x026028FF} } } ,
14786 { { {0x379F6C79, 0xC6A2D84F, 0x29103F63, 0xFFE27343, 0xBAA6173E, 0xD83A8DB8, 0xC3433FFD, 0x975F9E63},
14787 {0x38F6A27B, 0xB414928B, 0x2BE1E77B, 0xB3012777, 0x18A80F78, 0x9AC8DE10, 0x9EA206A6, 0x9FAB3413} } ,
14788 { {0x95B41312, 0xA4920AD8, 0x2A8ECBEB, 0x2267958B, 0x41B0A7B3, 0x893BCFCB, 0x74962FA3, 0xAA546134},
14789 {0x498AC995, 0xE3AE75A1, 0x1AEBACF3, 0xDA241293, 0x3A881678, 0xE09F2B3C, 0xB4D9C880, 0x65397032} } } ,
14790 { { {0x5DF4212F, 0x7BA76B8B, 0x1C55FBC6, 0xBF7FA88A, 0x560C6EB9, 0xDBD2861E, 0x36E116F2, 0x162E6CF1},
14791 {0x649B2849, 0xAF3D40F1, 0xFACC5A5F, 0x947ECF2C, 0xB14D96EF, 0x32B07D6C, 0xC3624F42, 0x21943A5E} } ,
14792 { {0xFD03DAE1, 0x8181E056, 0xAFB2B5C6, 0x75EDD4FA, 0xB4E4F674, 0x981C5126, 0x8C7CB389, 0x8861131E},
14793 {0x5267513C, 0x2F9244B8, 0xDF538153, 0x5DC7DD2F, 0x96666AF4, 0x390A20AE, 0xB0A02E72, 0x65987632} } } } ;
14795 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3597 a000");
14796 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3598 a001");
14797 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3599 a010");
14798 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3600 a011");
14799 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3601 a100");
14800 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3602 a101");
14801 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3603 a110");
14802 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3604 a111");
14803 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3605 a200");
14804 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3606 a201");
14805 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3607 a210");
14806 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3608 a211");
14809 static const fp12_t var_a = { { { {0xC577C743, 0x4FAF2343, 0x7B76808B, 0x70F7A616, 0x7BCF9B09, 0xB9EF9F23, 0x86FD7BD3, 0x49E56453},
14810 {0xC36A8BAD, 0xC63E7622, 0x3A7FBFDA, 0x9CBE8BEC, 0x8D28AC98, 0xA131B5D6, 0x22AA2694, 0x3CAF5B27} } ,
14811 { {0xD746E87F, 0x4419DCF7, 0xB51DF1ED, 0x98FEEA91, 0x04401A6C, 0xDD2435C1, 0x40DC04C4, 0x0371DE09},
14812 {0xCC809584, 0x9AAF983B, 0x1567032A, 0x350FE540, 0x7881867D, 0x3FD463D5, 0xD2AE51EB, 0x3FCB0EDF} } } ,
14813 { { {0x15D70B0B, 0xE2138C60, 0x5C0F43A6, 0x72EC8404, 0x3BC783D1, 0xBAD91D93, 0xDD7FE216, 0x9CF0149B},
14814 {0x20180C31, 0xF6F34058, 0x337E2834, 0xC1DBE4D8, 0x2494E98E, 0xB47ABF92, 0x7C1DE764, 0x8F5D1268} } ,
14815 { {0xEF1E6FE8, 0xF5A2E587, 0x412E3429, 0x24929BDB, 0x68DAABDB, 0x9834B264, 0x1B7D35E3, 0x38E97532},
14816 {0xF5A9A518, 0xC3CC7218, 0x812BBE2D, 0xC156B1F2, 0x74E0F10E, 0x59991B13, 0x3C7809CD, 0x9CE2AA57} } } ,
14817 { { {0x9CD5BD93, 0x864A6CAD, 0xC4694FA8, 0x63A3CADF, 0x65135130, 0xEBDB311D, 0xF6BA4DE3, 0x23A91284},
14818 {0xBF66AD47, 0x290738EE, 0x2D6B5F11, 0xF654D6E4, 0x8EA99FD3, 0xC76CE52E, 0x7102A412, 0x18D568E0} } ,
14819 { {0x30E5AA01, 0xDCF3BCB8, 0xB336B019, 0x0E6C21B1, 0xF614893E, 0x6BA67144, 0x6BABC681, 0x2DF0537B},
14820 {0xD15A6AAD, 0x931DB286, 0xCE26E393, 0x4E4C45E6, 0x8362C4CB, 0xDD294A1E, 0x767140F3, 0x3AA98630} } } } ;
14821 static const fp12_t var_expected = { { { {0x9CB46D58, 0xAF3F666D, 0x59015EBB, 0xA21A068A, 0xD812EEAB, 0x4170BD47, 0xB9216055, 0x702E3A6E},
14822 {0x9EC1A8EE, 0x38B0138E, 0x99F81F6C, 0x765320B4, 0xC6B9DD1C, 0x5A2EA694, 0x1D74B594, 0x7D64439B} } ,
14823 { {0x8AE54C1C, 0xBAD4ACB9, 0x1F59ED59, 0x7A12C20F, 0x4FA26F48, 0x1E3C26AA, 0xFF42D764, 0xB6A1C0B8},
14824 {0x95AB9F17, 0x643EF175, 0xBF10DC1C, 0xDE01C760, 0xDB610337, 0xBB8BF895, 0x6D708A3D, 0x7A488FE2} } } ,
14825 { { {0x4C552990, 0x1CDAFD51, 0x78689BA0, 0xA025289C, 0x181B05E3, 0x40873ED8, 0x629EFA12, 0x1D238A26},
14826 {0x4214286A, 0x07FB4959, 0xA0F9B712, 0x5135C7C8, 0x2F4DA026, 0x46E59CD9, 0xC400F4C4, 0x2AB68C59} } ,
14827 { {0x730DC4B3, 0x094BA429, 0x9349AB1D, 0xEE7F10C5, 0xEB07DDD9, 0x632BAA06, 0x24A1A645, 0x812A2990},
14828 {0x6C828F83, 0x3B221798, 0x534C2119, 0x51BAFAAE, 0xDF0198A6, 0xA1C74157, 0x03A6D25B, 0x1D30F46B} } } ,
14829 { { {0xC5567708, 0x78A41D03, 0x100E8F9E, 0xAF6DE1C1, 0xEECF3884, 0x0F852B4D, 0x49648E45, 0x966A8C3D},
14830 {0xA2C58754, 0xD5E750C2, 0xA70C8035, 0x1CBCD5BC, 0xC538E9E1, 0x33F3773C, 0xCF1C3816, 0xA13E35E1} } ,
14831 { {0x31468A9A, 0x21FACCF9, 0x21412F2D, 0x04A58AEF, 0x5DCE0077, 0x8FB9EB26, 0xD47315A7, 0x8C234B46},
14832 {0x90D1C9EE, 0x6BD0D72A, 0x0650FBB3, 0xC4C566BA, 0xD07FC4E9, 0x1E37124C, 0xC9AD9B35, 0x7F6A1891} } } } ;
14834 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3609 a000");
14835 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3610 a001");
14836 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3611 a010");
14837 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3612 a011");
14838 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3613 a100");
14839 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3614 a101");
14840 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3615 a110");
14841 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3616 a111");
14842 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3617 a200");
14843 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3618 a201");
14844 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3619 a210");
14845 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3620 a211");
14848 static const fp12_t var_a = { { { {0x01E7FBAA, 0x816C95C7, 0x1AD71CFE, 0x48F20DD4, 0x20BD5B07, 0x128BFDAC, 0xB739A08D, 0x671406FA},
14849 {0x4797795B, 0xA6726B7A, 0x8F5C5DE5, 0x43B9C7A5, 0xF46E9F4B, 0xA46DCB8E, 0xE9585F6E, 0x60441F91} } ,
14850 { {0xA473931F, 0x3EF6D564, 0x472A5462, 0x720680EB, 0x2975C857, 0x1931212D, 0x589A4F0D, 0x22126B4D},
14851 {0xCCA489C6, 0x4F9D0D8B, 0x0AC8BD34, 0x097304EE, 0x76AF50A1, 0x88ACD202, 0xE7A353BA, 0x1429A6B2} } } ,
14852 { { {0x8C467B15, 0x1EE87D12, 0xF3048FC8, 0x19424360, 0x429F3619, 0xFE1ED880, 0xC9FCC80E, 0x35885188},
14853 {0xFD31FB79, 0xB70593AD, 0xED44CF9C, 0x9CA9CF95, 0x2A3C3726, 0x170707DF, 0x8C1605C2, 0x35A9F880} } ,
14854 { {0xF36B5B67, 0x65E961E3, 0x665858D7, 0x576D4B62, 0x2B520F94, 0x6B2F2C96, 0xCBF27FAF, 0x9F2A8A8C},
14855 {0x8EB63957, 0x412994D9, 0xA1E6E676, 0xFB4FA579, 0x75D8D0B5, 0x2510D326, 0x77EA541D, 0xB326B8EB} } } ,
14856 { { {0x09D516BC, 0xA02B60D2, 0x3154522A, 0x15E4C0C1, 0xEDD145E5, 0x67576E23, 0xD611655F, 0x440DAF68},
14857 {0xB0E410C3, 0x9D0F774F, 0x2B4AAD90, 0x4233F76B, 0x5426090C, 0xD8C6832B, 0x03BE5102, 0x4C38980F} } ,
14858 { {0xC563AFC4, 0x9850CB62, 0x77E49862, 0xC65076BB, 0x22B785DD, 0x2700EBEA, 0xABF1D591, 0x2D79FCB9},
14859 {0xFBDB8AB4, 0xB28ADEE0, 0x4EB80862, 0x056A93D1, 0x00621020, 0x8401C05A, 0x8EFB2E71, 0x2B214E63} } } } ;
14860 static const fp12_t var_expected = { { { {0x604438F1, 0x7D81F3EA, 0xB9A0C248, 0xCA1F9ECC, 0x33252EAD, 0xE8D45EBF, 0x88E53B9B, 0x52FF97C7},
14861 {0x1A94BB40, 0x587C1E37, 0x451B8161, 0xCF57E4FB, 0x5F73EA69, 0x56F290DC, 0x56C67CBA, 0x59CF7F30} } ,
14862 { {0xBDB8A17C, 0xBFF7B44C, 0x8D4D8AE4, 0xA10B2BB5, 0x2A6CC15D, 0xE22F3B3E, 0xE7848D1B, 0x98013374},
14863 {0x9587AAD5, 0xAF517C25, 0xC9AF2212, 0x099EA7B2, 0xDD333914, 0x72B38A68, 0x587B886E, 0xA5E9F80F} } } ,
14864 { { {0xD5E5B986, 0xE0060C9E, 0xE1734F7E, 0xF9CF693F, 0x1143539B, 0xFD4183EB, 0x76221419, 0x848B4D39},
14865 {0x64FA3922, 0x47E8F603, 0xE7330FAA, 0x7667DD0A, 0x29A6528E, 0xE459548C, 0xB408D666, 0x8469A641} } ,
14866 { {0x6EC0D934, 0x990527CD, 0x6E1F866F, 0xBBA4613E, 0x28907A20, 0x90312FD5, 0x742C5C79, 0x1AE91435},
14867 {0xD375FB44, 0xBDC4F4D7, 0x3290F8D0, 0x17C20727, 0xDE09B8FF, 0xD64F8944, 0xC834880B, 0x06ECE5D6} } } ,
14868 { { {0x58571DDF, 0x5EC328DF, 0xA3238D1C, 0xFD2CEBDF, 0x661143CF, 0x9408EE47, 0x6A0D76C9, 0x7605EF59},
14869 {0xB14823D8, 0x61DF1261, 0xA92D31B6, 0xD0DDB535, 0xFFBC80A8, 0x2299D93F, 0x3C608B26, 0x6DDB06B3} } ,
14870 { {0x9CC884D7, 0x669DBE4E, 0x5C9346E4, 0x4CC135E5, 0x312B03D7, 0xD45F7081, 0x942D0697, 0x8C99A208},
14871 {0x6650A9E7, 0x4C63AAD0, 0x85BFD6E4, 0x0DA718CF, 0x53807995, 0x775E9C11, 0xB123ADB7, 0x8EF2505E} } } } ;
14873 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3621 a000");
14874 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3622 a001");
14875 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3623 a010");
14876 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3624 a011");
14877 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3625 a100");
14878 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3626 a101");
14879 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3627 a110");
14880 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3628 a111");
14881 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3629 a200");
14882 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3630 a201");
14883 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3631 a210");
14884 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3632 a211");
14887 static const fp12_t var_a = { { { {0x99301B32, 0x5560C95F, 0xEDB2322C, 0xF855723E, 0xFAF0C567, 0x29521BCE, 0xC446ADFA, 0x3385DCC1},
14888 {0xE2C6A37B, 0xA8093515, 0x3617BAF6, 0x051B5923, 0x9E28DC87, 0xC07E6FDC, 0x7530D3E1, 0x008E0C79} } ,
14889 { {0xC1E4BF91, 0x1EF3A7F2, 0xE2C50FE6, 0xC60474D3, 0x37634037, 0x160675B9, 0xE06778EC, 0x54A18BFE},
14890 {0xBA2B86E1, 0xEA296A2F, 0x7BBB0DB1, 0x308E061E, 0x3FC83DA1, 0x6C74DDF4, 0x15DC2A58, 0x03A59FB3} } } ,
14891 { { {0x6C4EDF8B, 0x806B16EA, 0xE2A13259, 0x1742994D, 0xE15EC006, 0xF734A935, 0x7BEFB0BC, 0x73D76FA7},
14892 {0x9D158559, 0x1DED5E17, 0x498A7700, 0x0092C628, 0x83FB1EFB, 0x91047247, 0x0BDC1BFE, 0x927DC882} } ,
14893 { {0x906C4B0C, 0x41DCAA6E, 0x0FC84EE3, 0x60815ADE, 0x91C9AA55, 0x00A872B2, 0x52BA108A, 0x9BAA815D},
14894 {0x388677DB, 0x300EC60B, 0x3AADDB33, 0xAACE5FD0, 0x017F9520, 0x9BA35B39, 0x72E50B26, 0x374CCB55} } } ,
14895 { { {0x03E13F12, 0x6CEDD5AA, 0xF72E7211, 0x417F55D6, 0xCD01E675, 0xAA882FD3, 0x2320C5AB, 0x5DBF06A5},
14896 {0x89552E73, 0x4588F621, 0xCD5D0378, 0x3ADB4737, 0x2DA965CC, 0x13526C27, 0xAC2410EE, 0x8BA94959} } ,
14897 { {0xDA6CA817, 0x485B96CA, 0x678AF967, 0x9B6204C2, 0x5A11F1B3, 0xAE50EFF9, 0xEAE1A440, 0x8B00AB90},
14898 {0x1DED6266, 0xC92AA7B8, 0xF1B493EB, 0x7A43E1D2, 0x6F6DDF68, 0xDD87E78E, 0x9142B43B, 0x506B9C36} } } } ;
14899 static const fp12_t var_expected = { { { {0xC8FC1969, 0xA98DC051, 0xE6C5AD1A, 0x1ABC3A61, 0x58F1C44D, 0xD20E409C, 0x7BD82E2E, 0x868DC200},
14900 {0x7F659120, 0x56E5549B, 0x9E602450, 0x0DF6537D, 0xB5B9AD2E, 0x3AE1EC8E, 0xCAEE0847, 0xB9859248} } ,
14901 { {0xA047750A, 0xDFFAE1BE, 0xF1B2CF60, 0x4D0D37CC, 0x1C7F497D, 0xE559E6B2, 0x5FB7633C, 0x657212C3},
14902 {0xA800ADBA, 0x14C51F81, 0x58BCD195, 0xE283A682, 0x141A4C13, 0x8EEB7E77, 0x2A42B1D0, 0xB66DFF0F} } } ,
14903 { { {0xF5DD5510, 0x7E8372C6, 0xF1D6ACED, 0xFBCF1352, 0x7283C9AE, 0x042BB335, 0xC42F2B6C, 0x463C2F1A},
14904 {0xC516AF42, 0xE1012B99, 0x8AED6846, 0x127EE678, 0xCFE76ABA, 0x6A5BEA23, 0x3442C02A, 0x2795D640} } ,
14905 { {0xD1BFE98F, 0xBD11DF42, 0xC4AF9063, 0xB29051C2, 0xC218DF5F, 0xFAB7E9B8, 0xED64CB9E, 0x1E691D64},
14906 {0x29A5BCC0, 0xCEDFC3A6, 0x99CA0413, 0x68434CD0, 0x5262F494, 0x5FBD0132, 0xCD39D102, 0x82C6D36C} } } ,
14907 { { {0x5E4AF589, 0x9200B407, 0xDD496D35, 0xD19256C9, 0x86E0A33F, 0x50D82C97, 0x1CFE167D, 0x5C54981D},
14908 {0xD8D70628, 0xB965938F, 0x071ADBCE, 0xD8366569, 0x263923E8, 0xE80DF044, 0x93FACB3A, 0x2E6A5568} } ,
14909 { {0x87BF8C84, 0xB692F2E6, 0x6CECE5DF, 0x77AFA7DE, 0xF9D09801, 0x4D0F6C71, 0x553D37E8, 0x2F12F331},
14910 {0x443ED235, 0x35C3E1F9, 0xE2C34B5B, 0x98CDCACD, 0xE474AA4C, 0x1DD874DC, 0xAEDC27ED, 0x69A8028B} } } } ;
14912 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3633 a000");
14913 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3634 a001");
14914 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3635 a010");
14915 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3636 a011");
14916 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3637 a100");
14917 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3638 a101");
14918 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3639 a110");
14919 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3640 a111");
14920 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3641 a200");
14921 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3642 a201");
14922 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3643 a210");
14923 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3644 a211");
14926 static const fp12_t var_a = { { { {0x6A406746, 0x5F8626A8, 0x6B1BBA94, 0x90CCAC3E, 0x3CFD64C7, 0x045A67B3, 0xE5F95C1D, 0x34AF9EFC},
14927 {0x4D7FC0F9, 0x666DAAEE, 0x29A0302B, 0xBC5DAB91, 0xC26F1C34, 0x0EE56749, 0x40825C20, 0x72987900} } ,
14928 { {0x474BCFCB, 0x7B032E3F, 0x51803FBF, 0x80E83229, 0xB8156AA6, 0xE66E2B49, 0x8F6B71DF, 0xAB72580D},
14929 {0x4D794EB3, 0x035510A2, 0x605A4CBB, 0x82000628, 0x09E42268, 0xFFE1D03E, 0xD5F9480C, 0x6211CD99} } } ,
14930 { { {0x478C523F, 0xA32B778F, 0xA6841DA4, 0x0D7CD067, 0x54462161, 0xCD592A93, 0xA7131202, 0x8068FB22},
14931 {0x30D3986A, 0xCB03FE3D, 0xF13BE26D, 0x7A92BB13, 0x17DF277B, 0x4F5ECC94, 0x6F6133BC, 0x16A0D0C9} } ,
14932 { {0x7F616451, 0x22AC28D8, 0x36F15568, 0x17F7AFCF, 0xD46501EA, 0x72756E61, 0x2A78C311, 0x843461B2},
14933 {0xD23D96FB, 0x22F43A60, 0xC4E12351, 0xDE744AF7, 0x4B12F803, 0xC715DBCD, 0x697F8E97, 0xAE6F638E} } } ,
14934 { { {0xE1AC5A9C, 0x8027F9A2, 0x39E4F30A, 0xAC71BF46, 0xEAA39F3B, 0xD1DBC5AB, 0x1479FF32, 0x0DFD29F2},
14935 {0x00B72491, 0xB632ADD4, 0x094FA26A, 0xB65E7DA0, 0x4F44C0D7, 0x8F66BF42, 0xE2BF334C, 0x2D4D335D} } ,
14936 { {0x29FDC18A, 0x857022E3, 0x7CF8F1D1, 0x67167087, 0xD644A130, 0x18DBD84F, 0xA2BCD2B6, 0x9DDD249F},
14937 {0xF1692C79, 0x705616E0, 0xAEF3A1B5, 0x83102D31, 0x09958583, 0x004A870E, 0xF51EBB52, 0x0372D91A} } } } ;
14938 static const fp12_t var_expected = { { { {0xF7EBCD55, 0x9F686308, 0x695C24B2, 0x82450062, 0x16E524ED, 0xF705F4B8, 0x5A25800B, 0x8563FFC5},
14939 {0x14AC73A2, 0x9880DEC3, 0xAAD7AF1B, 0x56B4010F, 0x91736D80, 0xEC7AF521, 0xFF9C8008, 0x477B25C1} } ,
14940 { {0x1AE064D0, 0x83EB5B72, 0x82F79F87, 0x92297A77, 0x9BCD1F0E, 0x14F23121, 0xB0B36A49, 0x0EA146B4},
14941 {0x14B2E5E8, 0xFB99790F, 0x741D928B, 0x9111A678, 0x49FE674C, 0xFB7E8C2D, 0x6A25941B, 0x5801D128} } } ,
14942 { { {0x1A9FE25C, 0x5BC31222, 0x2DF3C1A2, 0x0594DC39, 0xFF9C6854, 0x2E0731D7, 0x990BCA26, 0x39AAA39F},
14943 {0x31589C31, 0x33EA8B74, 0xE33BFCD9, 0x987EF18C, 0x3C036239, 0xAC018FD7, 0xD0BDA86C, 0xA372CDF8} } ,
14944 { {0xE2CAD04A, 0xDC4260D8, 0x9D8689DE, 0xFB19FCD1, 0x7F7D87CA, 0x88EAEE09, 0x15A61917, 0x35DF3D10},
14945 {0x8FEE9DA0, 0xDBFA4F50, 0x0F96BBF5, 0x349D61A9, 0x08CF91B1, 0x344A809E, 0xD69F4D91, 0x0BA43B33} } } ,
14946 { { {0x807FD9FF, 0x7EC6900E, 0x9A92EC3C, 0x669FED5A, 0x693EEA79, 0x298496BF, 0x2BA4DCF6, 0xAC1674D0},
14947 {0x6175100A, 0x48BBDBDD, 0xCB283CDC, 0x5CB32F00, 0x049DC8DD, 0x6BF99D29, 0x5D5FA8DC, 0x8CC66B64} } ,
14948 { {0x382E7311, 0x797E66CE, 0x577EED75, 0xABFB3C19, 0x7D9DE884, 0xE284841B, 0x9D620972, 0x1C367A22},
14949 {0x70C30822, 0x8E9872D0, 0x25843D91, 0x90017F6F, 0x4A4D0431, 0xFB15D55D, 0x4B0020D6, 0xB6A0C5A7} } } } ;
14951 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3645 a000");
14952 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3646 a001");
14953 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3647 a010");
14954 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3648 a011");
14955 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3649 a100");
14956 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3650 a101");
14957 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3651 a110");
14958 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3652 a111");
14959 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3653 a200");
14960 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3654 a201");
14961 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3655 a210");
14962 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3656 a211");
14965 static const fp12_t var_a = { { { {0x062CC88C, 0x3CC4C340, 0x0D672B8F, 0xAF7D4499, 0x221A9CE3, 0xCCBB1AA8, 0xD1466840, 0x95311912},
14966 {0x3FFA971D, 0x750BFB61, 0x5E7C21F1, 0x3F5F593F, 0x98D23884, 0xA5E41A0B, 0xC0F36959, 0x10947DF2} } ,
14967 { {0xEF5F020A, 0xECAF8EBF, 0x8E85C25A, 0x7872B476, 0xE6A99C2A, 0xA21A3602, 0xDF819B2E, 0x7F698DB3},
14968 {0x794E22F7, 0x3246B5AC, 0x076CA8CA, 0xB1AB9978, 0x66CA64D7, 0x65AD4F42, 0x20B1B867, 0x173B148A} } } ,
14969 { { {0x3883494C, 0x20F6E2A3, 0x0A3F923F, 0xE4A7DFA9, 0x27139BA4, 0x939353E0, 0x08727810, 0x6EB8EEE2},
14970 {0xF791CA88, 0x4F1FC7F1, 0x2B9A2BF3, 0x2F9DB65F, 0x6C7A8C61, 0x54C79A51, 0x31E4820C, 0x02A07BB4} } ,
14971 { {0x77BF09D4, 0x9F0DAA8F, 0xD15BEA16, 0x53DB2C0F, 0x2B40198D, 0xD7B2CEAC, 0xC9A4B81B, 0xB2371139},
14972 {0xECABDE1B, 0xB4BD1C13, 0xB7AB7CC1, 0x38DC92CB, 0x8FF0E835, 0xCCAC1D76, 0x126DA589, 0x425579D8} } } ,
14973 { { {0x1EA15C31, 0x75C2A2F4, 0x99D9A209, 0x54D273F9, 0x2353A256, 0xED24759E, 0x9FE15C3B, 0x22E31642},
14974 {0xCFBAF88C, 0x8AD48D47, 0xD95A847F, 0x8E3380CB, 0xF57DD6D3, 0x6420A148, 0x1E6D19BF, 0x8A6B9054} } ,
14975 { {0x08195BD5, 0xE781E299, 0xDA9A9B93, 0xEDB36C9D, 0x7B83EFDF, 0x83C5DE16, 0x097760F1, 0x02F81672},
14976 {0xF2384725, 0x3C455007, 0x27CE53B8, 0x1F8E9F86, 0xAD24A33A, 0xFC5C9B46, 0xB2F7AB52, 0x0F6DBE5C} } } } ;
14977 static const fp12_t var_expected = { { { {0x5BFF6C0F, 0xC229C671, 0xC710B3B7, 0x63946807, 0x31C7ECD1, 0x2EA541C3, 0x6ED873E8, 0x24E285AF},
14978 {0x22319D7E, 0x89E28E50, 0x75FBBD55, 0xD3B25361, 0xBB105130, 0x557C425F, 0x7F2B72CF, 0xA97F20CF} } ,
14979 { {0x72CD3291, 0x123EFAF1, 0x45F21CEC, 0x9A9EF82A, 0x6D38ED8A, 0x59462668, 0x609D40FA, 0x3AAA110E},
14980 {0xE8DE11A4, 0xCCA7D404, 0xCD0B367C, 0x61661328, 0xED1824DD, 0x95B30D28, 0x1F6D23C1, 0xA2D88A38} } } ,
14981 { { {0x29A8EB4F, 0xDDF7A70E, 0xCA384D07, 0x2E69CCF7, 0x2CCEEE10, 0x67CD088B, 0x37AC6418, 0x4B5AAFE0},
14982 {0x6A9A6A13, 0xAFCEC1BF, 0xA8DDB353, 0xE373F641, 0xE767FD53, 0xA698C219, 0x0E3A5A1C, 0xB773230E} } ,
14983 { {0xEA6D2AC7, 0x5FE0DF21, 0x031BF530, 0xBF368091, 0x28A27027, 0x23AD8DBF, 0x767A240D, 0x07DC8D88},
14984 {0x75805680, 0x4A316D9D, 0x1CCC6285, 0xDA3519D5, 0xC3F1A17F, 0x2EB43EF4, 0x2DB1369F, 0x77BE24EA} } } ,
14985 { { {0x438AD86A, 0x892BE6BD, 0x3A9E3D3D, 0xBE3F38A7, 0x308EE75E, 0x0E3BE6CD, 0xA03D7FED, 0x9730887F},
14986 {0x92713C0F, 0x7419FC69, 0xFB1D5AC7, 0x84DE2BD4, 0x5E64B2E1, 0x973FBB22, 0x21B1C269, 0x2FA80E6E} } ,
14987 { {0x5A12D8C6, 0x176CA718, 0xF9DD43B3, 0x255E4002, 0xD85E99D5, 0x779A7E54, 0x36A77B37, 0xB71B8850},
14988 {0x6FF3ED76, 0xC2A939A9, 0xACA98B8E, 0xF3830D1A, 0xA6BDE67A, 0xFF03C124, 0x8D2730D5, 0xAAA5E065} } } } ;
14990 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3657 a000");
14991 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3658 a001");
14992 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3659 a010");
14993 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3660 a011");
14994 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3661 a100");
14995 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3662 a101");
14996 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3663 a110");
14997 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3664 a111");
14998 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3665 a200");
14999 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3666 a201");
15000 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3667 a210");
15001 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3668 a211");
15004 static const fp12_t var_a = { { { {0x88EED3D3, 0x803F01B6, 0xA0DF7D56, 0x40B9EDBB, 0x38FD2790, 0x9454B52D, 0x416E982C, 0x66A2CB60},
15005 {0x7025C26E, 0x7055A41D, 0xCEC4008B, 0x6661B3F6, 0x5953063D, 0x9E852443, 0x6E7E2C57, 0x31D51631} } ,
15006 { {0x6F0F2CC7, 0x0A057BAE, 0x8F15EA08, 0x86476E55, 0xF830C689, 0x61FC3036, 0x465B90EB, 0x290D0EE2},
15007 {0x59A2059D, 0x11F37EC3, 0x3DAE0C3F, 0xA8083286, 0xE15D074A, 0xB07545D5, 0xAB681856, 0x325130DC} } } ,
15008 { { {0xF6BD8BCB, 0x8C2D4725, 0x08FF112F, 0x7650CFA7, 0x939422BC, 0x60CB8334, 0x14C9AA89, 0x95D4FD2B},
15009 {0x83F6F357, 0x4790EAF4, 0x7432C117, 0xBC8941C7, 0xC0A4099F, 0xC81042CD, 0x091CB9CE, 0x7E9F2343} } ,
15010 { {0x302F5B49, 0x51391A96, 0xD9A394A9, 0xEE1EF22D, 0xCF6519B6, 0x47BF5EE0, 0xA88C4397, 0x7DC743D7},
15011 {0xA204FD84, 0x7D0D66A1, 0xE2A51743, 0xA24AF30F, 0x5A7947B9, 0xBEF23D59, 0x2330BF51, 0x06385C9F} } } ,
15012 { { {0x10DBC9E5, 0xE25E53A2, 0x3A21E6E0, 0xFE66E78A, 0x5CFACB9D, 0x1756252C, 0x00961DAC, 0x36F66F4D},
15013 {0x4B9A1E44, 0x5A48F3F4, 0x5EDA8C3A, 0x88224654, 0x006E6CE5, 0xB0FF730A, 0x983E7867, 0x405CA853} } ,
15014 { {0x53AA8DE9, 0x05C11F2C, 0xF6D02F41, 0x40AB6302, 0x7C800767, 0xF8FD339C, 0x5857F000, 0x422A1252},
15015 {0x777168DA, 0xC7685283, 0x7ECF025B, 0x14AE3ACB, 0x3F2ECD44, 0xEE739D41, 0x0330CA54, 0x127AE96B} } } } ;
15016 static const fp12_t var_expected = { { { {0xD93D60C8, 0x7EAF87FA, 0x339861F0, 0xD257BEE5, 0x1AE56224, 0x670BA73E, 0xFEB043FC, 0x5370D361},
15017 {0xF206722D, 0x8E98E593, 0x05B3DEBB, 0xACAFF8AA, 0xFA8F8377, 0x5CDB3827, 0xD1A0AFD1, 0x883E8890} } ,
15018 { {0xF31D07D4, 0xF4E90E02, 0x4561F53E, 0x8CCA3E4B, 0x5BB1C32B, 0x99642C34, 0xF9C34B3D, 0x91068FDF},
15019 {0x088A2EFE, 0xECFB0AEE, 0x96C9D307, 0x6B097A1A, 0x7285826A, 0x4AEB1695, 0x94B6C3D2, 0x87C26DE5} } } ,
15020 { { {0x6B6EA8D0, 0x72C1428B, 0xCB78CE17, 0x9CC0DCF9, 0xC04E66F8, 0x9A94D936, 0x2B55319F, 0x243EA197},
15021 {0xDE354144, 0xB75D9EBC, 0x60451E2F, 0x56886AD9, 0x933E8015, 0x3350199D, 0x3702225A, 0x3B747B7F} } ,
15022 { {0x31FCD952, 0xADB56F1B, 0xFAD44A9D, 0x24F2BA72, 0x847D6FFE, 0xB3A0FD8A, 0x97929891, 0x3C4C5AEA},
15023 {0xC0273717, 0x81E1230F, 0xF1D2C803, 0x70C6B990, 0xF96941FB, 0x3C6E1F11, 0x1CEE1CD7, 0xB3DB4223} } } ,
15024 { { {0x51506AB6, 0x1C90360F, 0x9A55F866, 0x14AAC516, 0xF6E7BE17, 0xE40A373E, 0x3F88BE7C, 0x831D2F75},
15025 {0x16921657, 0xA4A595BD, 0x759D530C, 0x8AEF664C, 0x53741CCF, 0x4A60E961, 0xA7E063C1, 0x79B6F66E} } ,
15026 { {0x0E81A6B2, 0xF92D6A85, 0xDDA7B005, 0xD266499D, 0xD762824D, 0x026328CE, 0xE7C6EC28, 0x77E98C6F},
15027 {0xEABACBC1, 0x3786372D, 0x55A8DCEB, 0xFE6371D5, 0x14B3BC70, 0x0CECBF2A, 0x3CEE11D4, 0xA798B557} } } } ;
15029 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3669 a000");
15030 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3670 a001");
15031 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3671 a010");
15032 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3672 a011");
15033 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3673 a100");
15034 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3674 a101");
15035 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3675 a110");
15036 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3676 a111");
15037 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3677 a200");
15038 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3678 a201");
15039 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3679 a210");
15040 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3680 a211");
15043 static const fp12_t var_a = { { { {0xA68AC7F2, 0xC5B20C0A, 0x1B6B1D2A, 0x1BA2F331, 0xB76D8BBE, 0x73E50023, 0xAD66E366, 0x012733B8},
15044 {0x99A2643D, 0xEDC06730, 0x7126646E, 0x080A4588, 0x3B68344D, 0x1094ECC8, 0xC16FC528, 0x2CD45043} } ,
15045 { {0x1F4DFAC4, 0x6DA55AD0, 0x790C68A9, 0x70DEECE2, 0xD3CD7FAC, 0x40EB5C1C, 0xFD5D344A, 0x45752C6A},
15046 {0xA4F42991, 0x36675771, 0xF9FB337F, 0x40E36F81, 0xB312E44A, 0xF93C85F3, 0xF1BBD70B, 0x0D92DB78} } } ,
15047 { { {0x39FB65AB, 0x82B8FA6D, 0x96068B6C, 0x99E42C23, 0xD08D0631, 0x4C2EB349, 0x44ABF381, 0x4D6E9B55},
15048 {0xEE0A3BAE, 0x4B675652, 0x98050AE6, 0x0EDC53E3, 0x9F32A886, 0xBE5396FB, 0xAF919FCD, 0x9D370E03} } ,
15049 { {0x628DB237, 0xD0EB3606, 0x4679B756, 0xBF96A6A5, 0xF7D7E754, 0xDB3D5C93, 0x3F50D89E, 0x3D9B5A02},
15050 {0xAC033587, 0x149BA6FF, 0x3B87D09A, 0xF45757FC, 0xE39C934A, 0xB6D5F1B8, 0x178056B2, 0x50623CDD} } } ,
15051 { { {0xD200C228, 0x5EFB1A1B, 0xE8D07028, 0x96F9AB3E, 0x223B6E0B, 0x6469FC88, 0xECE03D07, 0x5F8AEE78},
15052 {0xF1C807E5, 0xBB39BEA5, 0x3B230EC4, 0xA08B0856, 0x5247532D, 0x8167DB5D, 0x46F9000F, 0x1BD97074} } ,
15053 { {0x9EC49834, 0x77494C5D, 0x493F25BC, 0xFDE9F7A5, 0x158F22D1, 0x9E70CB94, 0x47BC1091, 0x837C44EC},
15054 {0x9939ECE9, 0xA8122562, 0x82FC2758, 0x4CE2363F, 0x4B04A2E5, 0xE9C96817, 0x9CB938A1, 0x1E049526} } } } ;
15055 static const fp12_t var_expected = { { { {0xBBA16CA9, 0x393C7DA6, 0xB90CC21C, 0xF76EB96F, 0x9C74FDF6, 0x877B5C47, 0x92B7F8C2, 0xB8EC6B09},
15056 {0xC889D05E, 0x112E2280, 0x63517AD8, 0x0B076718, 0x187A5568, 0xEACB6FA3, 0x7EAF1700, 0x8D3F4E7E} } ,
15057 { {0x42DE39D7, 0x91492EE1, 0x5B6B769D, 0xA232BFBE, 0x80150A08, 0xBA75004E, 0x42C1A7DE, 0x749E7257},
15058 {0xBD380B0A, 0xC887323F, 0xDA7CABC7, 0xD22E3D1E, 0xA0CFA56A, 0x0223D677, 0x4E63051D, 0xAC80C349} } } ,
15059 { { {0x2830CEF0, 0x7C358F44, 0x3E7153DA, 0x792D807D, 0x83558383, 0xAF31A921, 0xFB72E8A7, 0x6CA5036C},
15060 {0x7421F8ED, 0xB387335E, 0x3C72D460, 0x043558BD, 0xB4AFE12F, 0x3D0CC56F, 0x908D3C5B, 0x1CDC90BE} } ,
15061 { {0xFF9E8264, 0x2E0353AA, 0x8DFE27F0, 0x537B05FB, 0x5C0AA260, 0x2022FFD7, 0x00CE038A, 0x7C7844C0},
15062 {0xB628FF14, 0xEA52E2B1, 0x98F00EAC, 0x1EBA54A4, 0x7045F66A, 0x448A6AB2, 0x289E8576, 0x69B161E5} } } ,
15063 { { {0x902B7273, 0x9FF36F95, 0xEBA76F1E, 0x7C180161, 0x31A71BA9, 0x96F65FE3, 0x533E9F21, 0x5A88B049},
15064 {0x70642CB6, 0x43B4CB0B, 0x9954D082, 0x7286A44A, 0x019B3687, 0x79F8810E, 0xF925DC19, 0x9E3A2E4D} } ,
15065 { {0xC3679C67, 0x87A53D53, 0x8B38B98A, 0x1527B4FB, 0x3E5366E3, 0x5CEF90D7, 0xF862CB97, 0x369759D5},
15066 {0xC8F247B2, 0x56DC644E, 0x517BB7EE, 0xC62F7661, 0x08DDE6CF, 0x1196F454, 0xA365A387, 0x9C0F099B} } } } ;
15068 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3681 a000");
15069 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3682 a001");
15070 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3683 a010");
15071 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3684 a011");
15072 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3685 a100");
15073 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3686 a101");
15074 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3687 a110");
15075 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3688 a111");
15076 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3689 a200");
15077 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3690 a201");
15078 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3691 a210");
15079 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3692 a211");
15082 static const fp12_t var_a = { { { {0xB90B8535, 0xA46E1828, 0xA38B388E, 0x052DFDCC, 0x82442E46, 0x8712E7F3, 0x4DDBDA27, 0x02753121},
15083 {0x71C7F04F, 0x84C740AF, 0x3FE21000, 0xFF625B06, 0x79FB2A3B, 0x14A03CFC, 0x33697459, 0x5B2D6A84} } ,
15084 { {0xDDF57D76, 0xAB6FB319, 0xBF397AFD, 0x45DA7ACA, 0xA9205D30, 0x4B82BE3E, 0x3C3DF11B, 0x5AACAA7D},
15085 {0xB04D2D55, 0x3BC46167, 0x604C35D5, 0x3C5A297E, 0xBFEF0836, 0x5D68E061, 0x297BE564, 0x444B761E} } } ,
15086 { { {0x58017457, 0x99136ACB, 0xDA33C720, 0x14A6236D, 0xC0D383A5, 0x74CCECE1, 0xD060B39D, 0x35C6BFFA},
15087 {0xF060C6F0, 0xF0C9FAC3, 0x8F301764, 0xFB697C7E, 0x3F8AE9F6, 0x4D0CA336, 0x9A02FC58, 0xB8107700} } ,
15088 { {0xC6EA21F5, 0xB36546D6, 0x0FA05DBF, 0x9EFBBC59, 0xDB8BC704, 0xAB15CD5A, 0x06E4F935, 0x4A0E4D58},
15089 {0xC018D525, 0x1222034D, 0xBB9A9995, 0x06008F02, 0x63BFD4BC, 0xCC07FCC3, 0x64687B52, 0x7942706C} } } ,
15090 { { {0x5868F455, 0x84531D54, 0xF2AA2318, 0xCC07DA3A, 0x0402C042, 0xF57B7077, 0x5C898DA8, 0x7E56BCB0},
15091 {0x7811E182, 0x467A998F, 0x672B8905, 0xAF106E74, 0x22EC90B8, 0xEFC28D57, 0xA5733A76, 0x739698D3} } ,
15092 { {0xA0353E29, 0xD787927F, 0xCE05CF1E, 0xFE7461AB, 0x7FA0FECA, 0x8C70E36F, 0x4D36F1A4, 0x20D5ED2E},
15093 {0x4CE3FF85, 0x78CE956D, 0x7F90916A, 0x78D1ACCD, 0x62BF7596, 0x0E3D8288, 0x787D51A4, 0x175C2767} } } } ;
15094 static const fp12_t var_expected = { { { {0xA920AF66, 0x5A807188, 0x30ECA6B8, 0x0DE3AED4, 0xD19E5B6F, 0x744D7477, 0xF2430201, 0xB79E6DA0},
15095 {0xF064444C, 0x7A274901, 0x9495CF46, 0x13AF519A, 0xD9E75F79, 0xE6C01F6E, 0x0CB567CF, 0x5EE6343E} } ,
15096 { {0x8436B725, 0x537ED697, 0x153E6449, 0xCD3731D6, 0xAAC22C84, 0xAFDD9E2C, 0x03E0EB0D, 0x5F66F445},
15097 {0xB1DF0746, 0xC32A2849, 0x742BA971, 0xD6B78322, 0x93F3817E, 0x9DF77C09, 0x16A2F6C4, 0x75C828A4} } } ,
15098 { { {0x0A2AC044, 0x65DB1EE6, 0xFA441826, 0xFE6B8932, 0x930F060F, 0x86936F89, 0x6FBE288B, 0x844CDEC7},
15099 {0x71CB6DAB, 0x0E248EED, 0x4547C7E2, 0x17A83022, 0x14579FBE, 0xAE53B935, 0xA61BDFD0, 0x020327C1} } ,
15100 { {0x9B4212A6, 0x4B8942DA, 0xC4D78187, 0x7415F047, 0x7856C2B0, 0x504A8F10, 0x3939E2F3, 0x7005516A},
15101 {0xA2135F76, 0xECCC8663, 0x18DD45B1, 0x0D111D9E, 0xF022B4F9, 0x2F585FA7, 0xDBB660D6, 0x40D12E55} } } ,
15102 { { {0x09C34046, 0x7A9B6C5D, 0xE1CDBC2E, 0x4709D265, 0x4FDFC972, 0x05E4EBF4, 0xE3954E80, 0x3BBCE211},
15103 {0xEA1A5319, 0xB873F021, 0x6D4C5641, 0x64013E2C, 0x30F5F8FC, 0x0B9DCF14, 0x9AABA1B2, 0x467D05EE} } ,
15104 { {0xC1F6F672, 0x2766F731, 0x06721028, 0x149D4AF5, 0xD4418AEA, 0x6EEF78FB, 0xF2E7EA84, 0x993DB193},
15105 {0x15483516, 0x861FF444, 0x54E74DDC, 0x9A3FFFD3, 0xF123141E, 0xED22D9E2, 0xC7A18A84, 0xA2B7775A} } } } ;
15107 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3693 a000");
15108 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3694 a001");
15109 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3695 a010");
15110 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3696 a011");
15111 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3697 a100");
15112 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3698 a101");
15113 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3699 a110");
15114 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3700 a111");
15115 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3701 a200");
15116 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3702 a201");
15117 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3703 a210");
15118 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3704 a211");
15121 static const fp12_t var_a = { { { {0x3A32623A, 0xB310B41E, 0xD93E86E4, 0xFC698761, 0x79F49E37, 0xDDE6BDD9, 0x19A98A63, 0x3720EAB2},
15122 {0xB19DE135, 0xCEE65A74, 0x2FCD092D, 0x22DA8A31, 0x486BE8E7, 0xC2FDD520, 0x3A60C534, 0x15A1FA73} } ,
15123 { {0x3A0A95A6, 0x5E327C27, 0xDFB1FD4F, 0xA555A435, 0xB86F275B, 0xA560E236, 0xBACA0A93, 0x93EA69F9},
15124 {0x5C175D86, 0xB4E72162, 0xE60974C9, 0xAE34D135, 0x39F5C2FA, 0xE4A40A34, 0x8A47AA5C, 0x5F41C3CE} } } ,
15125 { { {0xCE506EED, 0x68097504, 0x71E037FB, 0xE4ECF682, 0x45D60B0A, 0xE91D962E, 0xAF5F3DE8, 0x16FFCB79},
15126 {0x423EB038, 0xD1E149D5, 0x50649112, 0x5D6D135D, 0xDA852F99, 0x8E7A9D87, 0x43809A61, 0x25F754E3} } ,
15127 { {0xB160BCCF, 0x937D43A0, 0x5A782894, 0x50D90D48, 0x60886CFE, 0xD3117939, 0x33F14C0B, 0x420BF037},
15128 {0x363B3FF1, 0x0F7421FD, 0x86472A19, 0x9D90A842, 0xBCD76E01, 0x1C9EE4DA, 0x4429A5AF, 0x20567BB6} } } ,
15129 { { {0xBA20D8F7, 0xEB6F038B, 0x25EDA5AC, 0x8C25E4BB, 0x8ED935A0, 0xDE0E4329, 0x07844B47, 0xA6F4888D},
15130 {0xD49F4656, 0x9501F0EF, 0x3193A7F6, 0x6795103E, 0x00EE4751, 0x1B7BE036, 0xA89FB96C, 0x2C43AD76} } ,
15131 { {0x38803B9A, 0xBA398B86, 0xF7BF2FA7, 0x5368B356, 0xED437C71, 0xCBB76095, 0xA4874B91, 0x9EFD4589},
15132 {0xAAFA2351, 0xCEF5ED1E, 0x43BD2737, 0x85B8A8F0, 0x0F97E605, 0x708F58F0, 0x4D1681EC, 0x0F35924A} } } } ;
15133 static const fp12_t var_expected = { { { {0x27F9D261, 0x4BDDD593, 0xFB395862, 0x16A8253E, 0xD9EDEB7D, 0x1D799E91, 0x267551C5, 0x82F2B410},
15134 {0xB08E5366, 0x30082F3C, 0xA4AAD619, 0xF037226F, 0x0B76A0CD, 0x3862874B, 0x05BE16F4, 0xA471A44F} } ,
15135 { {0x28219EF5, 0xA0BC0D8A, 0xF4C5E1F7, 0x6DBC086A, 0x9B736259, 0x55FF7A34, 0x8554D195, 0x262934C8},
15136 {0x0614D715, 0x4A07684F, 0xEE6E6A7D, 0x64DCDB6A, 0x19ECC6BA, 0x16BC5237, 0xB5D731CC, 0x5AD1DAF3} } } ,
15137 { { {0x93DBC5AE, 0x96E514AC, 0x6297A74B, 0x2E24B61E, 0x0E0C7EAA, 0x1242C63D, 0x90BF9E40, 0xA313D348},
15138 {0x1FED8463, 0x2D0D3FDC, 0x84134E34, 0xB5A49943, 0x795D5A1B, 0x6CE5BEE3, 0xFC9E41C7, 0x941C49DE} } ,
15139 { {0xB0CB77CC, 0x6B714610, 0x79FFB6B2, 0xC2389F58, 0xF35A1CB6, 0x284EE331, 0x0C2D901D, 0x7807AE8B},
15140 {0x2BF0F4AA, 0xEF7A67B4, 0x4E30B52D, 0x7581045E, 0x970B1BB3, 0xDEC17790, 0xFBF53679, 0x99BD230B} } } ,
15141 { { {0xA80B5BA4, 0x137F8625, 0xAE8A399A, 0x86EBC7E5, 0xC5095414, 0x1D521941, 0x389A90E1, 0x131F1635},
15142 {0x8D8CEE45, 0x69EC98C1, 0xA2E43750, 0xAB7C9C62, 0x52F44263, 0xDFE47C35, 0x977F22BC, 0x8DCFF14B} } ,
15143 { {0x29ABF901, 0x44B4FE2B, 0xDCB8AF9F, 0xBFA8F949, 0x669F0D43, 0x2FA8FBD5, 0x9B979097, 0x1B165938},
15144 {0xB732114A, 0x2FF89C92, 0x90BAB80F, 0x8D5903B0, 0x444AA3AF, 0x8AD1037B, 0xF3085A3C, 0xAADE0C77} } } } ;
15146 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3705 a000");
15147 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3706 a001");
15148 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3707 a010");
15149 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3708 a011");
15150 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3709 a100");
15151 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3710 a101");
15152 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3711 a110");
15153 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3712 a111");
15154 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3713 a200");
15155 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3714 a201");
15156 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3715 a210");
15157 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3716 a211");
15160 static const fp12_t var_a = { { { {0x8172ED45, 0x89F3D0CF, 0xDE2E65FD, 0xC5129DCD, 0x81407A4E, 0x948EE8DC, 0x4823BE25, 0x3D287849},
15161 {0x0FE379BF, 0x63A00777, 0x3B509D60, 0x49413596, 0xE289DF26, 0x31C507C3, 0x509EBE97, 0xB21319A7} } ,
15162 { {0x50747CEF, 0x1EF8354F, 0xA37CF7A3, 0x7C973F1B, 0x8C7EDE9D, 0x63E9C40A, 0x31252664, 0x015B87B9},
15163 {0x396BEAB0, 0x3D1F8F71, 0x076469F3, 0x3637BA41, 0x5E4FA34F, 0xB61D1451, 0xCD5A1DEE, 0x87E060C5} } } ,
15164 { { {0x53412802, 0x850CF3A0, 0x568AE648, 0xE1D66686, 0x9634AC34, 0xBF1877DA, 0x5BB9FEA7, 0x4CB6CF97},
15165 {0x9B9CC481, 0x83DC2D6E, 0xD5E5C601, 0x0B84C095, 0xA7739AC0, 0x98A27A0E, 0x23707B79, 0x3EDB7F6B} } ,
15166 { {0x02EA1D1E, 0x064645D2, 0x99557B60, 0xE7E37954, 0xB9514B40, 0x5DC10D3D, 0x0372CDDC, 0xAB73F223},
15167 {0x8A9AFBCE, 0xA22FC6D3, 0x3BF10BB3, 0xB6F1A693, 0xD0F3A251, 0xB59584B5, 0xADB4D028, 0x0F7E308B} } } ,
15168 { { {0xB240D97E, 0x2AEF098C, 0x79712FC4, 0xAFB9A892, 0xF95C7862, 0x3687E6D7, 0x667B22BD, 0x2F8E786F},
15169 {0x20D5102B, 0x3E9894C6, 0x67F2B5BD, 0xB4945F68, 0x79F93CB0, 0x18E1305F, 0x091D9256, 0x59F05C9B} } ,
15170 { {0xF756F364, 0xBA061A8F, 0x424EEB20, 0x9B5D0C25, 0x9BA86333, 0x83FEE30F, 0x028B95B3, 0x27E7D323},
15171 {0x6C939442, 0x43F83F81, 0xC5D10000, 0x4A277C29, 0x8A53171F, 0x28E7E854, 0x9453835D, 0x5E517CC6} } } } ;
15172 static const fp12_t var_expected = { { { {0x02E5DA8A, 0x13E7A19F, 0xBC5CCBFB, 0x8A253B9B, 0x0280F49D, 0x291DD1B9, 0x90477C4B, 0x7A50F092},
15173 {0xBD9ABEE3, 0xC851853C, 0xA2295B79, 0x7F70BE8B, 0x71313497, 0x6829B31C, 0x611EA105, 0xAA12948C} } ,
15174 { {0xA0E8F9DE, 0x3DF06A9E, 0x46F9EF46, 0xF92E7E37, 0x18FDBD3A, 0xC7D38815, 0x624A4CC8, 0x02B70F72},
15175 {0x10ABA0C5, 0x7B509531, 0x3A50F49F, 0x595DC7E1, 0x68BCBCE9, 0x70D9CC37, 0x5A955FB4, 0x55AD22C9} } } ,
15176 { { {0xA6825004, 0x0A19E740, 0xAD15CC91, 0xC3ACCD0C, 0x2C695869, 0x7E30EFB5, 0xB773FD4F, 0x996D9F2E},
15177 {0x37398902, 0x07B85ADD, 0xABCB8C03, 0x1709812B, 0x4EE73580, 0x3144F41D, 0x46E0F6F3, 0x7DB6FED6} } ,
15178 { {0xA3A805A1, 0x0D9E01F2, 0x5E331779, 0xBCB54608, 0x1EC00CCC, 0xC021BE10, 0xC6C6BF8F, 0x9CD44583},
15179 {0x1535F79C, 0x445F8DA7, 0x77E21767, 0x6DE34D26, 0xA1E744A3, 0x6B2B096B, 0x5B69A051, 0x1EFC6117} } } ,
15180 { { {0x6481B2FC, 0x55DE1319, 0xF2E25F88, 0x5F735124, 0xF2B8F0C5, 0x6D0FCDAF, 0xCCF6457A, 0x5F1CF0DE},
15181 {0x41AA2056, 0x7D31298C, 0xCFE56B7A, 0x6928BED0, 0xF3F27961, 0x31C260BE, 0x123B24AC, 0xB3E0B936} } ,
15182 { {0xEEADE6C8, 0x740C351F, 0x849DD641, 0x36BA184A, 0x3750C667, 0x07FDC61F, 0x05172B67, 0x4FCFA646},
15183 {0x76FAF3E9, 0x8901F551, 0xB72A20B9, 0x813D4BB2, 0xC0C3A489, 0x566F743D, 0xE8882A91, 0x028F5ACA} } } } ;
15185 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3717 a000");
15186 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3718 a001");
15187 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3719 a010");
15188 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3720 a011");
15189 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3721 a100");
15190 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3722 a101");
15191 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3723 a110");
15192 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3724 a111");
15193 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3725 a200");
15194 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3726 a201");
15195 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3727 a210");
15196 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3728 a211");
15199 static const fp12_t var_a = { { { {0xA7CDF040, 0xC0CF9F57, 0x810978F1, 0x4BEFFDF7, 0x25A23ADF, 0xBC3B8AD1, 0x93AFBA1C, 0x265665A3},
15200 {0x4509821A, 0xDA79B43C, 0x59687357, 0x4CCE0FDB, 0x7E9DD5AA, 0x79D244A5, 0xEBC00ECF, 0x8A8D81DA} } ,
15201 { {0x74F80FD3, 0x847366CF, 0x2FC625F2, 0x8EA6A4D4, 0x08401BC3, 0xA103036E, 0xD7030F06, 0x41A487F5},
15202 {0xFF97FC8D, 0x6D8663DA, 0xBB861729, 0xAABD32C6, 0x6440ACF5, 0xE9E4BEB9, 0x6AA02F49, 0x12F7FE2D} } } ,
15203 { { {0xDB0B84F3, 0x8D37E912, 0xD8D3C22A, 0xBC3D76FE, 0x43BD3625, 0x1A3B9015, 0xCA10E2EB, 0xB903F980},
15204 {0xB4293FFE, 0xA1EBFEF6, 0x148EB943, 0xDDAF009B, 0xDF15E71D, 0x844C8572, 0xB08B0161, 0x5AD1D68D} } ,
15205 { {0x4AB1D5FC, 0xA7C1D121, 0x49D08E2B, 0x004D776C, 0x2212D488, 0x70B7D8F9, 0x29792DA4, 0xB050968E},
15206 {0x72C5ECAB, 0x621F9975, 0xD59BC54C, 0x2C4B2BD7, 0xD6D64505, 0xAFE94811, 0x1812E266, 0xA0913C10} } } ,
15207 { { {0xF7128B05, 0xDAF3C069, 0xE525B7DA, 0x0C0FE5D6, 0x7C1B0C15, 0x168EB0DE, 0xF2ED720C, 0x71F02761},
15208 {0x139B3CFE, 0xD91B9065, 0xFFFD2D20, 0x6CDC758D, 0xC44C92A1, 0xFFA80723, 0x40C11840, 0x50BE1F59} } ,
15209 { {0x9521C14A, 0x70E7FD1D, 0xA50CEFC7, 0xAE04F281, 0xC29CDB6C, 0xCB645F58, 0xE04DACB5, 0x1365E1F4},
15210 {0x4975BC77, 0x6F4967E3, 0xFFB0CDDC, 0x9F117114, 0x0C31962C, 0x4E2E3157, 0xC558ED7C, 0x5C978668} } } } ;
15211 static const fp12_t var_expected = { { { {0x4F9BE080, 0x819F3EAF, 0x0212F1E3, 0x97DFFBEF, 0x4B4475BE, 0x787715A2, 0x275F7439, 0x4CACCB47},
15212 {0x27E6CF99, 0xB604DEC7, 0xDE590768, 0x868A7315, 0xA959219F, 0xF8442CDF, 0x97614175, 0x5B0764F3} } ,
15213 { {0xE9F01FA6, 0x08E6CD9E, 0x5F8C4BE5, 0x1D4D49A8, 0x10803787, 0x420606DC, 0xAE061E0D, 0x83490FEB},
15214 {0xFF2FF91A, 0xDB0CC7B5, 0x770C2E52, 0x557A658D, 0xC88159EB, 0xD3C97D72, 0xD5405E93, 0x25EFFC5A} } } ,
15215 { { {0x53EAD54B, 0x1B814874, 0xDD2FA50E, 0x6569415C, 0x3397E296, 0x3916C3BF, 0x5402E9AD, 0xB7F4543F},
15216 {0x68527FFC, 0x43D7FDED, 0x291D7287, 0xBB5E0136, 0xBE2BCE3B, 0x08990AE5, 0x611602C3, 0xB5A3AD1B} } ,
15217 { {0x3337775D, 0x50951891, 0xBF293D10, 0xED894237, 0xF0431F5A, 0xE60F5586, 0x12D37F1F, 0xA68D8E5A},
15218 {0x835FA4BB, 0xC550A939, 0xD6BFAB51, 0x4584AB0E, 0x59CA0055, 0x647233B8, 0xF006E8A4, 0x870ED95D} } } ,
15219 { { {0x8BF8E16F, 0xB6F8F722, 0xF5D3906E, 0x050E1F0C, 0xA4538E75, 0x31BD0551, 0xA5BC07EF, 0x29CCB001},
15220 {0x273679FC, 0xB23720CA, 0xFFFA5A41, 0xD9B8EB1B, 0x88992542, 0xFF500E47, 0x81823081, 0xA17C3EB2} } ,
15221 { {0x2A438294, 0xE1CFFA3B, 0x4A19DF8E, 0x5C09E503, 0x8539B6D9, 0x96C8BEB1, 0xC09B596B, 0x26CBC3E9},
15222 {0x92EB78EE, 0xDE92CFC6, 0xFF619BB8, 0x3E22E229, 0x18632C59, 0x9C5C62AE, 0x8AB1DAF8, 0xB92F0CD1} } } } ;
15224 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3729 a000");
15225 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3730 a001");
15226 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3731 a010");
15227 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3732 a011");
15228 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3733 a100");
15229 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3734 a101");
15230 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3735 a110");
15231 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3736 a111");
15232 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3737 a200");
15233 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3738 a201");
15234 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3739 a210");
15235 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3740 a211");
15238 static const fp12_t var_a = { { { {0x3FC2359F, 0xF1269138, 0x3CB1BCAC, 0x2D5FD678, 0xA1FB163C, 0x7EE122AA, 0xB30A854F, 0x1BC65A9E},
15239 {0xA909D179, 0xCE0E5730, 0xAE2EBC08, 0xF109FD1F, 0x007E3711, 0xB8655D4B, 0x439A5DD9, 0x3B271CE3} } ,
15240 { {0x26144E3D, 0x25A4FF5A, 0x26352B6F, 0xD8A3546C, 0x0C425F59, 0x6CF9FCCF, 0xA547F1E5, 0x215058C0},
15241 {0x8C26F42B, 0xDA069289, 0x759592D3, 0x1DBB8A5F, 0x822AB4A8, 0x8AF3944B, 0x99B57965, 0x8BB5FFEC} } } ,
15242 { { {0x819E7F47, 0x15F37164, 0xC2DA4D6B, 0x6216923D, 0xD9D90699, 0x0C66BE22, 0xB53B1452, 0x6EE10B83},
15243 {0xE11B5474, 0xC255EFE3, 0x32524CF4, 0x9844FFD4, 0x65BFC313, 0x6DA49870, 0x22C14378, 0x15FDC7F0} } ,
15244 { {0xA3C2F770, 0x0C2FF72A, 0x3674F91F, 0x876E109D, 0x27717374, 0x1D4BB912, 0x5F6A52A1, 0x61A2C306},
15245 {0xE49F8D2A, 0xEA2F9BD8, 0xA0F57350, 0xAE047BE1, 0x5FEF1399, 0x2B9D4832, 0x7D5E52DE, 0xB568CCCA} } } ,
15246 { { {0xDEEA7263, 0x9335B94A, 0x8E9461F5, 0x67434EE8, 0xFBB5E5C5, 0x9AB053E6, 0xE00FE500, 0x0A7873F7},
15247 {0x658FDEC8, 0x006EA112, 0xF2FEA4B8, 0x699E4BC3, 0x199A2E8A, 0xE84A0BAB, 0xC5B5EC50, 0x6AF1FCAB} } ,
15248 { {0x8ED5427F, 0x7236F922, 0xC15A6563, 0x8A16EB06, 0x41A57D5B, 0xB30D102E, 0x35ECE665, 0x2E18C80B},
15249 {0xF91B73CF, 0xE9607EB1, 0xE7D16748, 0x5BCFCFCB, 0xCCDFBA5B, 0xF9124601, 0x579DDB62, 0x6111F234} } } } ;
15250 static const fp12_t var_expected = { { { {0x7F846B3E, 0xE24D2270, 0x79637959, 0x5ABFACF0, 0x43F62C78, 0xFDC24555, 0x66150A9E, 0x378CB53D},
15251 {0x5213A2F2, 0x9C1CAE61, 0x5C5D7811, 0xE213FA3F, 0x00FC6E23, 0x70CABA96, 0x8734BBB3, 0x764E39C6} } ,
15252 { {0x4C289C7A, 0x4B49FEB4, 0x4C6A56DE, 0xB146A8D8, 0x1884BEB3, 0xD9F3F99E, 0x4A8FE3CA, 0x42A0B181},
15253 {0xB621B3BB, 0xB51E9B61, 0x16B34660, 0x2865681E, 0xB072DF9B, 0x1A86CC2B, 0xF34C16A2, 0x5D586116} } } ,
15254 { { {0xA110C9F3, 0x2CF85917, 0xB13CBB8F, 0xB11B77DA, 0x5FCF837D, 0x1D6D1FDA, 0x2A574C7B, 0x23AE7845},
15255 {0xC236A8E8, 0x84ABDFC7, 0x64A499E9, 0x3089FFA8, 0xCB7F8627, 0xDB4930E0, 0x458286F0, 0x2BFB8FE0} } ,
15256 { {0xE559BA45, 0x197164A3, 0x987212F7, 0xFBCA7499, 0xFB005D33, 0x3F3715B8, 0x7EB5C919, 0x0931E74A},
15257 {0x6712E5B9, 0xD570AE00, 0x6D73075A, 0x48F74B22, 0x6BFB9D7E, 0x5BDA33F9, 0xBA9DC993, 0xB0BDFAD2} } } ,
15258 { { {0xBDD4E4C6, 0x266B7295, 0x1D28C3EB, 0xCE869DD1, 0xF76BCB8A, 0x3560A7CD, 0xC01FCA01, 0x14F0E7EF},
15259 {0x68F388F5, 0x01EEB873, 0x11856A29, 0xC02AEAE7, 0xDF51D35F, 0xD533BAEA, 0x4B4CFC78, 0x1BD05A95} } ,
15260 { {0x1DAA84FE, 0xE46DF245, 0x82B4CAC6, 0x142DD60D, 0x834AFAB7, 0x661A205C, 0x6BD9CCCB, 0x5C319016},
15261 {0x900AB303, 0xD3D273B2, 0xFB2AEF4A, 0xA48DF2F6, 0x45DCEB01, 0xF6C42F98, 0x6F1CDA9C, 0x081045A6} } } } ;
15263 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3741 a000");
15264 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3742 a001");
15265 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3743 a010");
15266 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3744 a011");
15267 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3745 a100");
15268 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3746 a101");
15269 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3747 a110");
15270 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3748 a111");
15271 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3749 a200");
15272 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3750 a201");
15273 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3751 a210");
15274 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3752 a211");
15277 static const fp12_t var_a = { { { {0x873DC685, 0xB0877245, 0x5963736B, 0x9025F5FE, 0x7E560CC9, 0xDE596849, 0x1DA0C4F7, 0x5EC55B5C},
15278 {0x174314FF, 0xD0B61442, 0xAE2F9B15, 0x4725EF51, 0x9D00A489, 0xF702E392, 0x92CDCBAB, 0x4B6C3E4F} } ,
15279 { {0xB7F49CA1, 0x9A46DB36, 0xA9212042, 0x215F324F, 0x7C5E7847, 0xE63C026F, 0xD3552377, 0x3E4A7B6B},
15280 {0x7349C995, 0x1EFAE299, 0xB37EB4D3, 0x2C2004D1, 0xF18FE951, 0xBCC0BE95, 0x12D02C72, 0x18F498FA} } } ,
15281 { { {0x9AC32780, 0xB74F4160, 0x39E18B4C, 0x9715F717, 0x3B2373B6, 0xB2FDC29D, 0x54A62022, 0x0BC4B1BE},
15282 {0x9FDFC3C8, 0x7C332950, 0xCE22D400, 0x3930D10F, 0x19E1D066, 0x64BA238B, 0x73B0AB89, 0x40E4EDD1} } ,
15283 { {0xC5329137, 0xCE625052, 0x58692009, 0x5475CD80, 0x01287F6D, 0x7FB7A89F, 0x1D5EFB2C, 0x18F8D7CD},
15284 {0xFA4A39AA, 0xD11F4EF1, 0x6AA4AAE0, 0x2920E275, 0xF6C7C541, 0x3C962DDA, 0x93682AEA, 0x62394E66} } } ,
15285 { { {0x48FD05E8, 0xEBAB6659, 0xE93A2C74, 0xD39CB84A, 0xAA4A392B, 0xCD3F8303, 0x6B622332, 0x8078F8C1},
15286 {0xCE03E154, 0x48743310, 0x37D2D9C1, 0x82703CC2, 0xB1079B8C, 0xEA0296FB, 0x0F782522, 0x00F2B0DE} } ,
15287 { {0x3A16D20F, 0x5905DA78, 0xB9451BC1, 0xF3FA5F89, 0xFC984339, 0x55400654, 0x3BFEB398, 0x1607B707},
15288 {0xD38B05CF, 0x4BCBCAF5, 0xA1C78084, 0x450B391A, 0xAEA17B20, 0x45A70CF1, 0x84CDC3CE, 0x0CD9A724} } } } ;
15289 static const fp12_t var_expected = { { { {0xAC4F586F, 0x62205AD9, 0xDE4F0790, 0x0D3A3F5B, 0xA8C98FDE, 0xC1527427, 0xFB22ADC6, 0x037717F5},
15290 {0x2E8629FE, 0xA16C2884, 0x5C5F362B, 0x8E4BDEA3, 0x3A014912, 0xEE05C725, 0x259B9757, 0x96D87C9F} } ,
15291 { {0x6FE93942, 0x348DB66D, 0x52424085, 0x42BE649F, 0xF8BCF08E, 0xCC7804DE, 0xA6AA46EF, 0x7C94F6D7},
15292 {0xE693932A, 0x3DF5C532, 0x66FD69A6, 0x584009A3, 0xE31FD2A2, 0x79817D2B, 0x25A058E5, 0x31E931F4} } } ,
15293 { { {0x35864F00, 0x6E9E82C1, 0x73C31699, 0x2E2BEE2E, 0x7646E76D, 0x65FB853A, 0xA94C4045, 0x1789637C},
15294 {0x3FBF8790, 0xF86652A1, 0x9C45A800, 0x7261A21F, 0x33C3A0CC, 0xC9744716, 0xE7615712, 0x81C9DBA2} } ,
15295 { {0x8A65226E, 0x9CC4A0A5, 0xB0D24013, 0xA8EB9B00, 0x0250FEDA, 0xFF6F513E, 0x3ABDF658, 0x31F1AF9A},
15296 {0x92683EB9, 0xA3501432, 0x00D1767A, 0x3F30184A, 0x99AD00CD, 0x7DCBFF4A, 0xE6B179AB, 0x0A5EFE0A} } } ,
15297 { { {0x2FCDD735, 0xD8684301, 0xFDFC79A2, 0x9427C3F4, 0x00B1E8A2, 0x9F1EA99C, 0x96A56A3C, 0x46DE52C0},
15298 {0x9C07C2A8, 0x90E86621, 0x6FA5B382, 0x04E07984, 0x620F3719, 0xD4052DF7, 0x1EF04A45, 0x01E561BC} } ,
15299 { {0x742DA41E, 0xB20BB4F0, 0x728A3782, 0xE7F4BF13, 0xF9308673, 0xAA800CA9, 0x77FD6730, 0x2C0F6E0E},
15300 {0xA7160B9E, 0x979795EB, 0x438F0108, 0x8A167235, 0x5D42F640, 0x8B4E19E3, 0x099B879C, 0x19B34E49} } } } ;
15302 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3753 a000");
15303 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3754 a001");
15304 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3755 a010");
15305 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3756 a011");
15306 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3757 a100");
15307 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3758 a101");
15308 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3759 a110");
15309 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3760 a111");
15310 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3761 a200");
15311 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3762 a201");
15312 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3763 a210");
15313 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3764 a211");
15316 static const fp12_t var_a = { { { {0x1329065D, 0x997B23C5, 0x522A3A08, 0x116B1A95, 0xF77E7A99, 0x03220ACB, 0x8CD4274B, 0x18BA78F1},
15317 {0xC1924525, 0x804B4BF7, 0x00449B27, 0xDB3D0925, 0x3C3DE7EB, 0x6251C59F, 0x4E77A175, 0x2A81FB7F} } ,
15318 { {0x45504D88, 0x7C751DC0, 0x85DDBD49, 0x53AC24CB, 0xE52BCB9C, 0x1D3E7540, 0x1996564B, 0xA9510808},
15319 {0x6B6C28B5, 0xD2874441, 0x6B288613, 0xB173EF03, 0xEC1209FF, 0x98AB596E, 0x4CD77CF2, 0x11EDFF3B} } } ,
15320 { { {0x052BD59F, 0x079A165A, 0xB21C8A9E, 0x6C1C8191, 0x9EAF253B, 0x172E44C1, 0xDE09899B, 0x1517992A},
15321 {0xA93E8AB9, 0x68BF127A, 0xE294BE4E, 0x9AA09474, 0x3399D7E9, 0x80A2F67C, 0x190FD731, 0x2F07243E} } ,
15322 { {0x694A5B7D, 0x84B5440F, 0xA7EBE4F6, 0x4072A6C8, 0xE7E35DD2, 0xAC7B6CC1, 0xDA408A2D, 0x2B852A38},
15323 {0x08426032, 0xAFD378D9, 0x56F3AA59, 0x60DF5B6D, 0x7F99BC0C, 0xFFBE78C7, 0x9314649B, 0x4335FD3C} } } ,
15324 { { {0x638272E7, 0x7E4A7414, 0x9C63A132, 0xDBCC6DF9, 0x72BAABB5, 0xD82FD0FA, 0x0A66D365, 0x4458A613},
15325 {0x07FEC136, 0x4C18533F, 0xC8E8C23E, 0x8E4C8DBC, 0xC32FE182, 0x1DD14B03, 0x97D980A1, 0x684CD395} } ,
15326 { {0x4DEAD27F, 0xBAD95C51, 0x8762DBB1, 0xC40B9A9F, 0x2C1B482F, 0xCAE6ED59, 0x6A0BFDA6, 0x22F21B31},
15327 {0x51FE49F4, 0x2AE75B2A, 0xD020A8FC, 0x5A065BC7, 0x93D2EE34, 0x44E0C1EB, 0x424793D5, 0x276B564B} } } } ;
15328 static const fp12_t var_expected = { { { {0x26520CBA, 0x32F6478A, 0xA4547411, 0x22D6352A, 0xEEFCF532, 0x06441597, 0x19A84E96, 0x3174F1E3},
15329 {0x83248A4A, 0x009697EF, 0x0089364F, 0xB67A124A, 0x787BCFD7, 0xC4A38B3E, 0x9CEF42EA, 0x5503F6FE} } ,
15330 { {0x28746675, 0xF9FBB1CF, 0x37439B4B, 0x94469CF6, 0x76750D83, 0x3F1C8E16, 0xF30DD06D, 0x988E714D},
15331 {0xD6D8516A, 0xA50E8882, 0xD6510C27, 0x62E7DE06, 0xD82413FF, 0x3156B2DD, 0x99AEF9E5, 0x23DBFE76} } } ,
15332 { { {0x0A57AB3E, 0x0F342CB4, 0x6439153C, 0xD8390323, 0x3D5E4A76, 0x2E5C8983, 0xBC131336, 0x2A2F3255},
15333 {0x527D1572, 0xD17E24F5, 0xC5297C9C, 0x354128E9, 0x6733AFD3, 0x0145ECF8, 0x321FAE63, 0x5E0E487C} } ,
15334 { {0xD294B6FA, 0x096A881E, 0x4FD7C9ED, 0x80E54D91, 0xCFC6BBA4, 0x58F6D983, 0xB481145B, 0x570A5471},
15335 {0x1084C064, 0x5FA6F1B2, 0xADE754B3, 0xC1BEB6DA, 0xFF337818, 0xFF7CF18E, 0x2628C937, 0x866BFA79} } } ,
15336 { { {0xC704E5CE, 0xFC94E828, 0x38C74264, 0xB798DBF3, 0xE575576B, 0xB05FA1F4, 0x14CDA6CB, 0x88B14C26},
15337 {0xADD14DD1, 0x99421CCC, 0xBD59A535, 0x09876ED8, 0x327D3950, 0x4042399C, 0xEF942519, 0x16860868} } ,
15338 { {0x9BD5A4FE, 0x75B2B8A2, 0x0EC5B763, 0x8817353F, 0x5836905F, 0x95CDDAB2, 0xD417FB4D, 0x45E43662},
15339 {0xA3FC93E8, 0x55CEB654, 0xA04151F8, 0xB40CB78F, 0x27A5DC68, 0x89C183D7, 0x848F27AA, 0x4ED6AC96} } } } ;
15341 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3765 a000");
15342 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3766 a001");
15343 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3767 a010");
15344 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3768 a011");
15345 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3769 a100");
15346 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3770 a101");
15347 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3771 a110");
15348 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3772 a111");
15349 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3773 a200");
15350 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3774 a201");
15351 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3775 a210");
15352 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3776 a211");
15355 static const fp12_t var_a = { { { {0xFD53F989, 0x43CCAECC, 0xF403EC72, 0x9C842DA9, 0x98BE2477, 0xFE7A80AC, 0xB75D47AF, 0x5BFD0A0F},
15356 {0xE6E8817F, 0x711A9CB5, 0xEE9AD45E, 0xD25D3A91, 0x66D6E2A0, 0xFBBF5633, 0xF1016C17, 0x18509CA1} } ,
15357 { {0xC1911351, 0x62034328, 0x0971CF8A, 0x1F130575, 0xD687494E, 0x3495533C, 0x6EF44221, 0x4887778E},
15358 {0xF1087C18, 0x8CB6B218, 0x3DFDEE60, 0xA9C60021, 0x4F893666, 0x2E962C34, 0x4045778E, 0x4528712D} } } ,
15359 { { {0x53AE167F, 0xA10E8F56, 0xA707FC24, 0x8183B811, 0x3C3BD786, 0x602107EF, 0x0D3E9A94, 0xB56DA4FD},
15360 {0x8C33722A, 0x2171BA90, 0xE869CA5A, 0x58F154B6, 0xF0D113D0, 0xE7147C61, 0xCD89E977, 0x0DCD03EF} } ,
15361 { {0xE45A0525, 0xC815348A, 0x45D39350, 0x0E489D53, 0xBD639C26, 0xC1FA9086, 0xD0B51566, 0x3A0D5349},
15362 {0x8C38CBCD, 0x1C024EB3, 0x0728493A, 0x521EFA15, 0xDBBC0D21, 0x84E566B4, 0x75F8E4ED, 0x25F09E57} } } ,
15363 { { {0x7045A70F, 0xDFFCFF9F, 0xF02B3E18, 0xA2F51631, 0xDAF084AD, 0xC2BCEDE2, 0x3465E984, 0x94C7718A},
15364 {0x650B1CD1, 0xA2591C29, 0xC6CFBDB8, 0x547F45C5, 0x333DDF98, 0xA01953C7, 0x95E0B3D8, 0x429D5E39} } ,
15365 { {0xE5B63146, 0x30A8D31D, 0xF5D72C58, 0xE59E09F4, 0x5BAF6E53, 0x28935F3C, 0x778F14F6, 0x684E7FC4},
15366 {0x2E0ECF77, 0x1F35CA25, 0x69108B48, 0x7347A0A0, 0xB281FCD4, 0x0CBB425F, 0x0A7E106D, 0x0C3B0696} } } } ;
15367 static const fp12_t var_expected = { { { {0xFAA7F312, 0x87995D99, 0xE807D8E4, 0x39085B53, 0x317C48EF, 0xFCF50159, 0x6EBA8F5F, 0xB7FA141F},
15368 {0xCDD102FE, 0xE235396B, 0xDD35A8BC, 0xA4BA7523, 0xCDADC541, 0xF77EAC66, 0xE202D82F, 0x30A13943} } ,
15369 { {0x832226A2, 0xC4068651, 0x12E39F14, 0x3E260AEA, 0xAD0E929C, 0x692AA679, 0xDDE88442, 0x910EEF1C},
15370 {0xE210F830, 0x196D6431, 0x7BFBDCC1, 0x538C0042, 0x9F126CCD, 0x5D2C5868, 0x808AEF1C, 0x8A50E25A} } } ,
15371 { { {0x452FF863, 0x432E94FB, 0x79981902, 0xEFF5C382, 0x24952557, 0xC4E1B373, 0xDA5E58FF, 0xB0C7AB37},
15372 {0x1866E454, 0x42E37521, 0xD0D394B4, 0xB1E2A96D, 0xE1A227A0, 0xCE28F8C3, 0x9B13D2EF, 0x1B9A07DF} } ,
15373 { {0xC8B40A4A, 0x902A6915, 0x8BA726A1, 0x1C913AA6, 0x7AC7384C, 0x83F5210D, 0xA16A2ACD, 0x741AA693},
15374 {0x1871979A, 0x38049D67, 0x0E509274, 0xA43DF42A, 0xB7781A42, 0x09CACD69, 0xEBF1C9DB, 0x4BE13CAE} } } ,
15375 { { {0x7E5F1983, 0xC10B758D, 0x0BDE9CEA, 0x32D87FC3, 0x61FE7FA6, 0x8A197F5A, 0x28ACF6E0, 0x6F7B4452},
15376 {0xCA1639A2, 0x44B23852, 0x8D9F7B71, 0xA8FE8B8B, 0x667BBF30, 0x4032A78E, 0x2BC167B1, 0x853ABC73} } ,
15377 { {0x69402DF1, 0x62631C8A, 0x17367969, 0xB82A6749, 0x637C52F2, 0x55C6620D, 0xAEFF4DC3, 0x168960C6},
15378 {0x5C1D9EEE, 0x3E6B944A, 0xD2211690, 0xE68F4140, 0x6503F9A8, 0x197684BF, 0x14FC20DA, 0x18760D2C} } } } ;
15380 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3777 a000");
15381 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3778 a001");
15382 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3779 a010");
15383 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3780 a011");
15384 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3781 a100");
15385 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3782 a101");
15386 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3783 a110");
15387 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3784 a111");
15388 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3785 a200");
15389 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3786 a201");
15390 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3787 a210");
15391 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3788 a211");
15394 static const fp12_t var_a = { { { {0xFB9437FA, 0x45D8D309, 0x378A9676, 0x0A99A199, 0x9A70A3C6, 0xEA89142A, 0x15A6C74C, 0x7F78FF06},
15395 {0x19B9B37B, 0x3DF3CCBA, 0xF2AAE2CE, 0xC97BAE2B, 0x55AC5C1A, 0xECDB6E86, 0x3151415D, 0x40577385} } ,
15396 { {0x47D9BE65, 0xE613099A, 0x025B3CBB, 0x7231EA69, 0xDBEE4121, 0x3F3DB67D, 0x8B86B8FB, 0x2CEF4124},
15397 {0xBBEF5046, 0xE3B88A2E, 0x230CC016, 0xEB65A6C4, 0x557E2958, 0x94665602, 0x66A93636, 0x09286728} } } ,
15398 { { {0x3BE08EAC, 0x1C383559, 0x0F975B7C, 0xACBDA396, 0x501D45D4, 0xA6690585, 0x574897A2, 0x453DE878},
15399 {0x8BA0D8C1, 0x3A493049, 0x293ECBC0, 0x9B604457, 0xD7187A1C, 0x9E2DE608, 0x07F85334, 0x1A4E46A7} } ,
15400 { {0xB26B835A, 0x30C054F0, 0xD6732BC7, 0xBDF3B3BA, 0x6500ADBF, 0xCDFB2B98, 0xF58AC744, 0x0F328C64},
15401 {0x3D41D9B5, 0xAC833506, 0x72302764, 0xD8F884B6, 0x4030348E, 0xE2DB38F2, 0xB2BFDFB1, 0x62F8123D} } } ,
15402 { { {0xFF0F3E12, 0xAAAFCAC1, 0x607EA817, 0xC99F5EE7, 0x1F97B95C, 0xAFC0131B, 0xA2A430B4, 0x9C897258},
15403 {0xC71E6E20, 0xE2F35CCA, 0xA987F503, 0xE4FD15B2, 0x355CD7F6, 0x7984BD1C, 0x4164EA36, 0x13F4EC8E} } ,
15404 { {0x9260DC03, 0x553438AE, 0x7FFDCF25, 0xF6A32645, 0xC73F46AB, 0x9395723D, 0x1C5D51E0, 0x0DE95E2C},
15405 {0x5CAD237C, 0xC461B758, 0xBD6D6E2D, 0x40912BAA, 0x9B67BC95, 0xBD322268, 0xD4FA8890, 0x9DBCB523} } } } ;
15406 static const fp12_t var_expected = { { { {0x94FC3B59, 0x8CC31C62, 0x9A9D4DA5, 0x02219691, 0xE0FEBDD7, 0xD9B1CBE9, 0xEB2EB270, 0x44DE5F49},
15407 {0x337366F6, 0x7BE79974, 0xE555C59C, 0x92F75C57, 0xAB58B835, 0xD9B6DD0C, 0x62A282BB, 0x80AEE70A} } ,
15408 { {0x8FB37CCA, 0xCC261334, 0x04B67977, 0xE463D4D2, 0xB7DC8242, 0x7E7B6CFB, 0x170D71F6, 0x59DE8249},
15409 {0x77DEA08C, 0xC771145D, 0x4619802D, 0xD6CB4D88, 0xAAFC52B1, 0x28CCAC04, 0xCD526C6D, 0x1250CE50} } } ,
15410 { { {0x77C11D58, 0x38706AB2, 0x1F2EB6F8, 0x597B472C, 0xA03A8BA9, 0x4CD20B0A, 0xAE912F45, 0x8A7BD0F0},
15411 {0x1741B182, 0x74926093, 0x527D9780, 0x36C088AE, 0xAE30F439, 0x3C5BCC11, 0x0FF0A669, 0x349C8D4E} } ,
15412 { {0x64D706B4, 0x6180A9E1, 0xACE6578E, 0x7BE76775, 0xCA015B7F, 0x9BF65730, 0xEB158E89, 0x1E6518C9},
15413 {0x18577ECF, 0x5A17E05B, 0x0FE86F82, 0x9EDF5CCC, 0x2C7DDF68, 0xCA561579, 0x2560E33A, 0x0BDC85B9} } } ,
15414 { { {0x9BF24789, 0x56710BD2, 0xEC8570E8, 0x802D112D, 0xEB4CE904, 0x641FC9CA, 0x05298540, 0x7EFF45EF},
15415 {0x8E3CDC40, 0xC5E6B995, 0x530FEA07, 0xC9FA2B65, 0x6AB9AFED, 0xF3097A38, 0x82C9D46C, 0x27E9D91C} } ,
15416 { {0x24C1B806, 0xAA68715D, 0xFFFB9E4A, 0xED464C8A, 0x8E7E8D57, 0x272AE47B, 0x38BAA3C1, 0x1BD2BC58},
15417 {0x572E125D, 0x89D4E4FF, 0xA662FD14, 0x6E10AAB4, 0xE2ECEF75, 0x7F03E865, 0x69D634F8, 0x8165CB85} } } } ;
15419 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3789 a000");
15420 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3790 a001");
15421 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3791 a010");
15422 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3792 a011");
15423 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3793 a100");
15424 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3794 a101");
15425 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3795 a110");
15426 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3796 a111");
15427 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3797 a200");
15428 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3798 a201");
15429 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3799 a210");
15430 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3800 a211");
15433 static const fp12_t var_a = { { { {0x65C9EABD, 0x39943BF8, 0x3DF3C71E, 0x1EA23B76, 0xE10180AD, 0xE256B61D, 0xDFCDC5DB, 0x23A53C9C},
15434 {0x73D88F87, 0x7B61AB4F, 0xD9618C0B, 0xAD36B902, 0x97A0C801, 0x467A0280, 0xC719646C, 0xB28BD84C} } ,
15435 { {0x8E4FE6A1, 0x9E5F00A2, 0x68B75876, 0x2378BE85, 0x2CEEDA82, 0x5615B6D4, 0xE8181E3D, 0xAD1C4B08},
15436 {0xBF529E63, 0x71E30037, 0x6C084CFD, 0x2BE40E17, 0x8E28959E, 0xED065A6F, 0xB6A89A35, 0x43693611} } } ,
15437 { { {0x9E0CED5C, 0x0EEFB6ED, 0x633F373E, 0xFF5792CC, 0x0B485445, 0xF1FB42E4, 0xF56027B0, 0x4ADD1064},
15438 {0x38E6901D, 0x4FC4F067, 0x21FB7F7B, 0xFD11DA8E, 0x25440AEA, 0xCB2CBB35, 0x7FB0F82F, 0x803B36EB} } ,
15439 { {0x8C618776, 0x5399B739, 0x4F45DBC6, 0x2632D607, 0x1346E38D, 0xE8C96E3A, 0xC22B7E5F, 0x04167ED7},
15440 {0xAE987F5E, 0xFE6DAEA6, 0x13205914, 0x8FB8DD95, 0xEDC8E4F2, 0x3F17ECEB, 0xFF0CA5E5, 0x21C359A7} } } ,
15441 { { {0x2C91C016, 0x758B50DE, 0xBA38979D, 0x3A8026AB, 0xCBD7F543, 0xB5DDD683, 0x0CBA2E00, 0x6C58153E},
15442 {0xBDD4C513, 0xA5123111, 0xEAD5BFB9, 0xDDBA1CB5, 0x06D9EA2C, 0xD23D78A0, 0x53D45182, 0x040EB10D} } ,
15443 { {0x943D7EA7, 0xBC46C9AB, 0x70861CB5, 0x1B6625C7, 0xF8D7986E, 0x0F2601FE, 0xD1F57AD8, 0x53BCD4AE},
15444 {0x92DAE08F, 0xB0F8622A, 0xC29349D8, 0x9A2F9834, 0x8778F6A3, 0x70CA312B, 0x18D9EF55, 0x34AD8119} } } } ;
15445 static const fp12_t var_expected = { { { {0xCB93D57A, 0x732877F0, 0x7BE78E3C, 0x3D4476EC, 0xC203015A, 0xC4AD6C3B, 0xBF9B8BB7, 0x474A7939},
15446 {0x8584EA73, 0xF7D4CCED, 0xDE4B38CF, 0x475BC564, 0xDB5F064E, 0x9193A895, 0x4E13ECAF, 0xAB0411D7} } ,
15447 { {0xBA7398A7, 0x3DCF7793, 0xFCF6D1A6, 0x33DFD069, 0x05FB2B4F, 0xB0CB113D, 0x90116051, 0xA024F74F},
15448 {0x7EA53CC6, 0xE3C6006F, 0xD81099FA, 0x57C81C2E, 0x1C512B3C, 0xDA0CB4DF, 0x6D51346B, 0x86D26C23} } } ,
15449 { { {0x3C19DAB8, 0x1DDF6DDB, 0xC67E6E7C, 0xFEAF2598, 0x1690A88B, 0xE3F685C8, 0xEAC04F61, 0x95BA20C9},
15450 {0x0FA0EB9F, 0xA09B571D, 0x6F7F1FAF, 0xE712087B, 0xF6A58C20, 0x9AF919FE, 0xBF431436, 0x4662CF14} } ,
15451 { {0x18C30EEC, 0xA7336E73, 0x9E8BB78C, 0x4C65AC0E, 0x268DC71A, 0xD192DC74, 0x8456FCBF, 0x082CFDAF},
15452 {0x5D30FEBC, 0xFCDB5D4D, 0x2640B229, 0x1F71BB2A, 0xDB91C9E5, 0x7E2FD9D7, 0xFE194BCA, 0x4386B34F} } } ,
15453 { { {0xF6F74B91, 0xEC28180A, 0x9FF94FF3, 0x61EEA0B6, 0x43CD60D1, 0x705B509C, 0xD9557FD8, 0x1E9C8BB9},
15454 {0x7BA98A26, 0x4A246223, 0xD5AB7F73, 0xBB74396B, 0x0DB3D459, 0xA47AF140, 0xA7A8A305, 0x081D621A} } ,
15455 { {0x287AFD4E, 0x788D9357, 0xE10C396B, 0x36CC4B8E, 0xF1AF30DC, 0x1E4C03FD, 0xA3EAF5B0, 0xA779A95D},
15456 {0x25B5C11E, 0x61F0C455, 0x852693B1, 0x345F3069, 0x0EF1ED47, 0xE1946257, 0x31B3DEAA, 0x695B0232} } } } ;
15458 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3801 a000");
15459 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3802 a001");
15460 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3803 a010");
15461 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3804 a011");
15462 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3805 a100");
15463 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3806 a101");
15464 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3807 a110");
15465 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3808 a111");
15466 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3809 a200");
15467 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3810 a201");
15468 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3811 a210");
15469 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3812 a211");
15472 static const fp12_t var_a = { { { {0xB78CA18D, 0xB441D656, 0xAAF055F5, 0xD8AF8CDA, 0x4A79803E, 0xF4514474, 0x0D23BB00, 0x11DB8465},
15473 {0x4A781A0D, 0xC617C7BA, 0xC750955D, 0x416F527E, 0x0F42EC3C, 0x267389E2, 0xEA264907, 0x0DDD94D7} } ,
15474 { {0x4F519B87, 0x2223CCC8, 0x33B692D6, 0x0A3C3295, 0x02073A5A, 0x90401E9B, 0xFD4B3BC2, 0x2347660D},
15475 {0x17990347, 0xCF5C430D, 0xE3A0482A, 0x536A8B0C, 0x85DA327B, 0x4B45079F, 0xE8993DE1, 0x03CBCEAD} } } ,
15476 { { {0xAA7CE250, 0x140DB7BA, 0x463CCE9D, 0x06461FFE, 0x5670C28D, 0x6E7107A9, 0x5FB92A6E, 0x34B891FA},
15477 {0xABCAE0D4, 0xF61EC8AB, 0x9CFD3AED, 0x6BD5BC11, 0x65239ABE, 0x829662F3, 0xEDD6CE4D, 0x51B9ABEA} } ,
15478 { {0x03D2C993, 0xCD3F74F3, 0x2D6CDE80, 0xE76D7340, 0x080873AB, 0x38D495B7, 0xEF78DE54, 0x423D85C4},
15479 {0x1E669BFE, 0xA55F32A7, 0x34EDB204, 0x9D89BD40, 0x67FBC98E, 0x9F74F122, 0xD7ADEF1D, 0xA3766CF7} } } ,
15480 { { {0xAE7F9CFE, 0xD84E5256, 0xF4D4C24E, 0xCD1DEC09, 0x18EE093C, 0xEA982BF9, 0xEAEF4468, 0x5E7D6BEA},
15481 {0x632F912A, 0x829D52D2, 0x56F35B99, 0x2A512D49, 0x31015B8E, 0xBCB5871B, 0x8371EA87, 0x291BC907} } ,
15482 { {0x7D9A2346, 0x01AA3671, 0x41F3A1B9, 0xF4A1CE96, 0x294D7EFC, 0xC31FF649, 0x4ED4A2BC, 0x65DCDCD5},
15483 {0xB1D11CBD, 0x7853AA19, 0xF0D82DE0, 0x9208A707, 0xA9C60EFA, 0x30E8EE4A, 0x0DE66755, 0x552DE403} } } } ;
15484 static const fp12_t var_expected = { { { {0x6F19431A, 0x6883ACAD, 0x55E0ABEB, 0xB15F19B5, 0x94F3007D, 0xE8A288E8, 0x1A477601, 0x23B708CA},
15485 {0x94F0341A, 0x8C2F8F74, 0x8EA12ABB, 0x82DEA4FD, 0x1E85D878, 0x4CE713C4, 0xD44C920E, 0x1BBB29AF} } ,
15486 { {0x9EA3370E, 0x44479990, 0x676D25AC, 0x1478652A, 0x040E74B4, 0x20803D36, 0xFA967785, 0x468ECC1B},
15487 {0x2F32068E, 0x9EB8861A, 0xC7409055, 0xA6D51619, 0x0BB464F6, 0x968A0F3F, 0xD1327BC2, 0x07979D5B} } } ,
15488 { { {0x54F9C4A0, 0x281B6F75, 0x8C799D3A, 0x0C8C3FFC, 0xACE1851A, 0xDCE20F52, 0xBF7254DC, 0x697123F4},
15489 {0x5795C1A8, 0xEC3D9157, 0x39FA75DB, 0xD7AB7823, 0xCA47357C, 0x052CC5E6, 0xDBAD9C9B, 0xA37357D5} } ,
15490 { {0x07A59326, 0x9A7EE9E6, 0x5AD9BD01, 0xCEDAE680, 0x1010E757, 0x71A92B6E, 0xDEF1BCA8, 0x847B0B89},
15491 {0xDAA10361, 0x4BCFDB9C, 0x956384C2, 0x2801CDDF, 0x7C150968, 0x438985D9, 0x6F3D0212, 0x8CD93B2D} } } ,
15492 { { {0xFAD30561, 0xB1AE1AFB, 0x1531A556, 0x872A2B73, 0xDDF988C4, 0xD9CFFB86, 0x95BFACA8, 0x02E73913},
15493 {0xC65F2254, 0x053AA5A4, 0xADE6B733, 0x54A25A92, 0x6202B71C, 0x796B0E36, 0x06E3D50F, 0x5237920F} } ,
15494 { {0x990811F1, 0x0465E331, 0xAF6F642B, 0xD631F08B, 0xFEB87444, 0x8ADF9026, 0x5D8A6950, 0x11A61AE8},
15495 {0x63A2397A, 0xF0A75433, 0xE1B05BC0, 0x24114E0F, 0x538C1DF5, 0x61D1DC95, 0x1BCCCEAA, 0xAA5BC806} } } } ;
15497 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3813 a000");
15498 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3814 a001");
15499 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3815 a010");
15500 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3816 a011");
15501 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3817 a100");
15502 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3818 a101");
15503 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3819 a110");
15504 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3820 a111");
15505 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3821 a200");
15506 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3822 a201");
15507 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3823 a210");
15508 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3824 a211");
15511 static const fp12_t var_a = { { { {0xA74B43EF, 0x4FCE5F58, 0x745858FF, 0x0F985624, 0x10110502, 0x39699345, 0x178F94A6, 0xA2F2C044},
15512 {0x1A0369BF, 0xB19A19ED, 0x5C0428E0, 0x859CFD5E, 0x9E3E6A08, 0x9B826799, 0x93F2129F, 0x1E9E23AA} } ,
15513 { {0xDF43B282, 0x0C314F02, 0x872360FD, 0xECA35496, 0x41CB9766, 0x09C6665B, 0x02754A57, 0x2D359DD1},
15514 {0x7AB236FC, 0x9260CC4F, 0x81A0E37F, 0x3B74E561, 0x7278F959, 0xC7531E5D, 0x7308B320, 0xA23BE88E} } } ,
15515 { { {0x9F102F62, 0xBE631DE4, 0x02A06CAD, 0xE6EB1A38, 0xBA556287, 0x20A72249, 0x0D510EAE, 0x43825D42},
15516 {0x3C6F0551, 0xC9BB8C96, 0xBE46B390, 0xAABB3FDE, 0x7B3578A6, 0xDEF290C5, 0x88A5E78A, 0x2BE77812} } ,
15517 { {0x57BA9694, 0x3158C268, 0xB76713FE, 0x24747DA8, 0xC6418528, 0xC36DDF81, 0xF4FBDA8C, 0x0962CF1B},
15518 {0x1F5350FF, 0x3B731B77, 0x4FD41C85, 0xA07D49CE, 0xEC805B6D, 0x2AEF2B55, 0xF0EE7EE6, 0x12D23345} } } ,
15519 { { {0xDC9A21B6, 0x6E4E0A54, 0x33693365, 0x47D18F29, 0xEA2708D2, 0x6B5B3D47, 0x74461E22, 0x0FD19024},
15520 {0x0F8C1E04, 0x13A3D8BF, 0x0FBCC957, 0x909D4935, 0x9BD02B98, 0x54606DBA, 0x0892874A, 0x1F47AFCB} } ,
15521 { {0x68ADF547, 0xBB644473, 0xBEB78558, 0x6A382B42, 0xE6EDE692, 0xC3219A16, 0x4BC491D3, 0x5350051B},
15522 {0x4972D37C, 0xB93BAE47, 0xC058FAA0, 0xC8F938B6, 0x3D84891D, 0x237663ED, 0x6D8734C5, 0x2C05CD0E} } } } ;
15523 static const fp12_t var_expected = { { { {0xEC6A5343, 0xA0AE34FF, 0x1438D2B7, 0x0C1EFFA8, 0xCC3F804F, 0x7772CA1E, 0xEF004D23, 0x8BD1E1C5},
15524 {0x3406D37E, 0x633433DA, 0xB80851C1, 0x0B39FABC, 0x3C7CD411, 0x3704CF33, 0x27E4253F, 0x3D3C4755} } ,
15525 { {0xBE876504, 0x18629E05, 0x0E46C1FA, 0xD946A92D, 0x83972ECD, 0x138CCCB6, 0x04EA94AE, 0x5A6B3BA2},
15526 {0x9338395D, 0x25D30EED, 0x2EC9E7B8, 0x63D81E22, 0x910F68FD, 0x9345E04F, 0xA5F28A18, 0x8A64325A} } } ,
15527 { { {0x3E205EC4, 0x7CC63BC9, 0x0540D95B, 0xCDD63470, 0x74AAC50F, 0x414E4493, 0x1AA21D5C, 0x8704BA84},
15528 {0x78DE0AA2, 0x9377192C, 0x7C8D6721, 0x55767FBD, 0xF66AF14D, 0xBDE5218A, 0x114BCF15, 0x57CEF025} } ,
15529 { {0xAF752D28, 0x62B184D0, 0x6ECE27FC, 0x48E8FB51, 0x8C830A50, 0x86DBBF03, 0xE9F7B519, 0x12C59E37},
15530 {0x3EA6A1FE, 0x76E636EE, 0x9FA8390A, 0x40FA939C, 0xD900B6DB, 0x55DE56AB, 0xE1DCFDCC, 0x25A4668B} } } ,
15531 { { {0xB934436C, 0xDC9C14A9, 0x66D266CA, 0x8FA31E52, 0xD44E11A4, 0xD6B67A8F, 0xE88C3C44, 0x1FA32048},
15532 {0x1F183C08, 0x2747B17E, 0x1F7992AE, 0x213A926A, 0x37A05731, 0xA8C0DB75, 0x11250E94, 0x3E8F5F96} } ,
15533 { {0xD15BEA8E, 0x76C888E6, 0x7D6F0AB1, 0xD4705685, 0xCDDBCD24, 0x8643342D, 0x978923A7, 0xA6A00A36},
15534 {0x92E5A6F8, 0x72775C8E, 0x80B1F541, 0x91F2716D, 0x7B09123B, 0x46ECC7DA, 0xDB0E698A, 0x580B9A1C} } } } ;
15536 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3825 a000");
15537 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3826 a001");
15538 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3827 a010");
15539 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3828 a011");
15540 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3829 a100");
15541 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3830 a101");
15542 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3831 a110");
15543 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3832 a111");
15544 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3833 a200");
15545 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3834 a201");
15546 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3835 a210");
15547 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3836 a211");
15550 static const fp12_t var_a = { { { {0xC92BDA39, 0xA5DB0C12, 0x15AC8E92, 0x62DAA4D2, 0x6F49B085, 0xD7B1E983, 0xB46D4DE9, 0x0126C78D},
15551 {0x9C3E60FC, 0xD6904AE6, 0x8FAD8B36, 0x4F7BE917, 0x7BEDF3DF, 0xBD68AFDE, 0x3B0E6E5F, 0x3B18BDDB} } ,
15552 { {0x1C6E4A94, 0xF1970E05, 0xD7BE6E41, 0xDA023B8E, 0x1B4E8F4D, 0xCF70D324, 0x2F3A334F, 0x4FA43140},
15553 {0xA04276B4, 0x552E614D, 0x3E662F2B, 0xBBE110B3, 0x8E5A0524, 0x7828C298, 0xD0D31192, 0x79CD46A2} } } ,
15554 { { {0x0FA690F4, 0xABC02D98, 0x1349A692, 0x3C192DAA, 0x72752044, 0x2F1E4F86, 0xB620545F, 0xA102FAB2},
15555 {0xC85A2A91, 0x5DBD5095, 0xFA4A4FD9, 0xCC7DF5C7, 0x9BFA8421, 0xEC0D086F, 0x8A27C5F5, 0x945B45DE} } ,
15556 { {0x1B1667E0, 0x1B892457, 0x6B848B09, 0x7C774546, 0x8EB13BD0, 0xAD8DD3F3, 0x883E98D7, 0x83518E9C},
15557 {0xCB6A8572, 0x578308B2, 0x3189BB9D, 0x8252872C, 0x071028CD, 0xF3C908EE, 0x04EA436D, 0x800703E1} } } ,
15558 { { {0x93838912, 0xCA1A148F, 0xEBFEEB2C, 0xBA1F7716, 0x734C1465, 0x42521228, 0xE10A6A9C, 0x0423283E},
15559 {0x9DAD945A, 0xEDF16745, 0x8E830E1F, 0x202531CF, 0x77403DA9, 0xA4F5ED55, 0x1B5D27A9, 0x6C341980} } ,
15560 { {0x0CB3B3B6, 0x8113CF49, 0xE1E3F80F, 0x57DE6D08, 0x671B8813, 0x27AF1BE6, 0x3F466469, 0x77AF3D2A},
15561 {0x11D8F9E5, 0x08491857, 0x2B29C52E, 0x127B6130, 0x7C0241A2, 0x5F427098, 0xAED42442, 0x105FD5BA} } } } ;
15562 static const fp12_t var_expected = { { { {0x9257B472, 0x4BB61825, 0x2B591D25, 0xC5B549A4, 0xDE93610A, 0xAF63D306, 0x68DA9BD3, 0x024D8F1B},
15563 {0x387CC1F8, 0xAD2095CD, 0x1F5B166D, 0x9EF7D22F, 0xF7DBE7BE, 0x7AD15FBC, 0x761CDCBF, 0x76317BB6} } ,
15564 { {0x38DC9528, 0xE32E1C0A, 0xAF7CDC83, 0xB404771D, 0x369D1E9B, 0x9EE1A648, 0x5E74669F, 0x9F486280},
15565 {0xDE58B8CD, 0xAB6E38E9, 0xA8547F0F, 0x64B074C5, 0xC8D18094, 0xF4F128C5, 0x618746FB, 0x3986EE83} } } ,
15566 { { {0xBD20ED4D, 0x5891D17E, 0x521B6DDE, 0x6520AEB3, 0x9107B6D3, 0x62DC42A1, 0x2C21CC95, 0x87F256A3},
15567 {0x2E882087, 0xBC8C177A, 0x201CC06B, 0x85EA3EEF, 0xE4127E8E, 0xDCB9B473, 0xD430AFC2, 0x6EA2ECFA} } ,
15568 { {0xD4009B25, 0x3823BEFC, 0x029136CB, 0xE5DCDDEC, 0xC97FEDEB, 0x5FBB4B7B, 0xD05E5586, 0x4C8F7E76},
15569 {0x34A8D649, 0xB01787B4, 0x8E9B97F3, 0xF19361B7, 0xBA3DC7E5, 0xEC31B570, 0xC9B5AAB2, 0x45FA68FF} } } ,
15570 { { {0x27071224, 0x9434291F, 0xD7FDD659, 0x743EEE2D, 0xE69828CB, 0x84A42450, 0xC214D538, 0x0846507D},
15571 {0xD92EF419, 0xDCF444D9, 0x488E3CF8, 0x2D38B6FE, 0x9A9DF19D, 0x4E8B7E3F, 0xF69B732A, 0x1E54943D} } ,
15572 { {0xB73B32D1, 0x033914E0, 0xEF5010D8, 0x9CAB2D70, 0x7A548671, 0x53FDDB61, 0x3E6DECA9, 0x354ADB92},
15573 {0x23B1F3CA, 0x109230AE, 0x56538A5C, 0x24F6C260, 0xF8048344, 0xBE84E130, 0x5DA84884, 0x20BFAB75} } } } ;
15575 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3837 a000");
15576 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3838 a001");
15577 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3839 a010");
15578 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3840 a011");
15579 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3841 a100");
15580 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3842 a101");
15581 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3843 a110");
15582 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3844 a111");
15583 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3845 a200");
15584 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3846 a201");
15585 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3847 a210");
15586 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3848 a211");
15589 static const fp12_t var_a = { { { {0x5CB89F52, 0x49151F8A, 0xD9CB6873, 0xF45955C8, 0xEECED862, 0xD4276BAB, 0x5ECAF62E, 0x6CE5F761},
15590 {0xC34B68DB, 0xCFCCA595, 0xB2212881, 0x53048091, 0x36592733, 0xADE9B802, 0xD822C904, 0x4A957CF2} } ,
15591 { {0x9846382B, 0x6B568E64, 0xA18CADB2, 0x73238445, 0xCE42590A, 0x0310383E, 0x3B5ADF62, 0xB4794CFC},
15592 {0xDF759265, 0xAF1AFEE7, 0x3E6DD1B1, 0x98E484C0, 0xBC6B6CBC, 0x7C1D31D1, 0x3810C6A8, 0x24A2C1A2} } } ,
15593 { { {0x1500FF9A, 0x7031B51D, 0x45093EAA, 0xF5C50AF8, 0x0BCE0EB1, 0xAD1B0AB1, 0x147276A0, 0x60F7BB07},
15594 {0xE2BD1D60, 0x4CB0F4B8, 0xCE437802, 0x6ED2739A, 0x0213AE9B, 0xD037910A, 0xA900EFA4, 0xB754872F} } ,
15595 { {0x069A7173, 0x22C68206, 0x3E8B14BC, 0xC7C47A47, 0x96AFBC63, 0x108F3549, 0x23F8F40C, 0x08BC14D5},
15596 {0xDB401E3C, 0x927FA1AF, 0xD1DA2060, 0x1D180263, 0xF0F08152, 0x11ABC209, 0x89EEBD6C, 0x4559227E} } } ,
15597 { { {0x650AE29C, 0x87343F93, 0x98E47D96, 0xC3059AB8, 0xF1CE1E56, 0x96AEC550, 0xEBA8B07A, 0x696A942E},
15598 {0xA100A7EF, 0xAAC2C573, 0x4A5C927C, 0x796A2E63, 0x0170C6B7, 0xD3B1018F, 0x74928784, 0x3A2DE705} } ,
15599 { {0x211C656E, 0xEBD60B1B, 0xA09BE4C4, 0x912CE534, 0xE52A0405, 0x068F415E, 0xA3AE550E, 0x28355BF5},
15600 {0xEA5ABC55, 0xFDE09566, 0xA55F69E8, 0x829E6C1A, 0x98ACC8EF, 0xEFFEEC10, 0x09974175, 0x86C7EA24} } } } ;
15601 static const fp12_t var_expected = { { { {0x57450A09, 0x933BB563, 0xDF1EF19F, 0xD5A0FEF0, 0x89BB2710, 0xACEE7AEC, 0x7D771034, 0x1FB85000},
15602 {0x8696D1B6, 0x9F994B2B, 0x64425103, 0xA6090123, 0x6CB24E66, 0x5BD37004, 0xB0459209, 0x952AF9E5} } ,
15603 { {0xCE603BBB, 0xD7BE9317, 0x6EA17C1D, 0xD3355BEA, 0x48A2285F, 0x0AC01412, 0x3696E29B, 0xAEDEFB36},
15604 {0xBEEB24CA, 0x5E35FDCF, 0x7CDBA363, 0x31C90980, 0x78D6D979, 0xF83A63A3, 0x70218D50, 0x49458344} } } ,
15605 { { {0xC7D5CA99, 0xE174E088, 0xB59A9E0D, 0xD878694F, 0xC3B993AE, 0x5ED5B8F6, 0xE8C61118, 0x07DBD74B},
15606 {0x634E0625, 0x9A735FC0, 0xC80F10BD, 0xCA933A94, 0xB044D381, 0xA50EC5A8, 0x11E30320, 0xB4956F9D} } ,
15607 { {0x0D34E2E6, 0x458D040C, 0x7D162978, 0x8F88F48E, 0x2D5F78C7, 0x211E6A93, 0x47F1E818, 0x117829AA},
15608 {0xB6803C78, 0x24FF435F, 0xA3B440C1, 0x3A3004C7, 0xE1E102A4, 0x23578413, 0x13DD7AD8, 0x8AB244FD} } } ,
15609 { { {0x67E9909D, 0x0F79F575, 0x5D511BE6, 0x72F988D0, 0x8FB9B2F8, 0x31FD2E36, 0x973284CC, 0x18C1899B},
15610 {0x42014FDE, 0x55858AE7, 0x94B924F9, 0xF2D45CC6, 0x02E18D6E, 0xA762031E, 0xE9250F09, 0x745BCE0A} } ,
15611 { {0x4238CADC, 0xD7AC1636, 0x4137C989, 0x2259CA69, 0xCA54080B, 0x0D1E82BD, 0x475CAA1C, 0x506AB7EB},
15612 {0x7289440F, 0xFCD2A11C, 0x7646F48A, 0xF22B2B94, 0xDD770829, 0xE49D7BB5, 0xD30FA6C2, 0x537C3585} } } } ;
15614 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3849 a000");
15615 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3850 a001");
15616 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3851 a010");
15617 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3852 a011");
15618 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3853 a100");
15619 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3854 a101");
15620 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3855 a110");
15621 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3856 a111");
15622 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3857 a200");
15623 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3858 a201");
15624 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3859 a210");
15625 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3860 a211");
15628 static const fp12_t var_a = { { { {0xF37A1C6B, 0xD6279A8B, 0x395F250B, 0x665F6724, 0xCA0A238D, 0x5565EC58, 0xCBA91259, 0x0EB4F071},
15629 {0xAA843969, 0x33EEC2DA, 0x8F31FB11, 0x7BCB43B1, 0x5CA6198A, 0x7FAD8955, 0x2388C51F, 0x5CBDA12D} } ,
15630 { {0x6E2597E1, 0x11A76057, 0xAF84DF24, 0xA3FC6063, 0xE5DDCCEC, 0xBC36E064, 0xDFE4C1EE, 0x6E911AAD},
15631 {0x16DA3471, 0x353AFE79, 0xF5A3ED45, 0xE35AA369, 0x30904DD3, 0xDBD0AD55, 0xE0A28B8E, 0x2B5204F3} } } ,
15632 { { {0x06BD6F82, 0xA76A0011, 0xBBD63734, 0xD4AB2DE1, 0x688C47EF, 0xB8683A33, 0x5D242D86, 0x1E997337},
15633 {0xA32E184F, 0x2DE18052, 0x04DE6245, 0x7D189C0E, 0x3B202F55, 0x9D042F10, 0x9EA5B9EB, 0xA487D6E5} } ,
15634 { {0xF6B32823, 0xDC54DBA3, 0xA8BC06C6, 0x15C37070, 0x1333CCAD, 0xF5305A0F, 0x011373C0, 0x1E30BCC9},
15635 {0x061D6DC3, 0x845B9795, 0x292CB9FE, 0x48427D04, 0xE0DF660A, 0x9CFCD4C5, 0xF79F8558, 0xB92D1454} } } ,
15636 { { {0x6CE11E02, 0x3D582873, 0x055C1110, 0x4EAC01E7, 0xF09B659B, 0x7965F9DE, 0x48D95AC3, 0x4F958B4F},
15637 {0x35575DBE, 0xE20D3150, 0x11D0DE35, 0x869855DA, 0xC57B960A, 0xF3141057, 0xCBC2ECA2, 0x9BF2809B} } ,
15638 { {0xFE61A2DD, 0x9364B45C, 0x1F9ED93F, 0xDF8D9509, 0x4382FE9D, 0x7E6C6430, 0xAF06D2B0, 0x03AD6003},
15639 {0x01CAB175, 0x32EAE9F5, 0xD55859E2, 0xA55C2BDC, 0x7B315EFE, 0xFF811751, 0xF611E1ED, 0x005EBD9D} } } } ;
15640 static const fp12_t var_expected = { { { {0xE6F438D6, 0xAC4F3517, 0x72BE4A17, 0xCCBECE48, 0x9414471A, 0xAACBD8B1, 0x975224B2, 0x1D69E0E3},
15641 {0x550872D2, 0x67DD85B5, 0x1E63F622, 0xF7968763, 0xB94C3314, 0xFF5B12AA, 0x47118A3E, 0xB97B425A} } ,
15642 { {0x7A1EFB27, 0x246036FD, 0x8A91DF01, 0x34E71426, 0x77D91024, 0x7D0D645E, 0x7FAAA7B4, 0x230E9699},
15643 {0x2DB468E2, 0x6A75FCF2, 0xEB47DA8A, 0xC6B546D3, 0x61209BA7, 0xB7A15AAA, 0xC145171D, 0x56A409E7} } } ,
15644 { { {0x0D7ADF04, 0x4ED40022, 0x77AC6E69, 0xA9565BC3, 0xD1188FDF, 0x70D07466, 0xBA485B0D, 0x3D32E66E},
15645 {0xE42FFC03, 0x5CD476F3, 0x3544E543, 0xE71F8B7B, 0x225DD4F5, 0x3EA801B5, 0xFD2C97AE, 0x8EFC0F08} } ,
15646 { {0xED665046, 0xB8A9B747, 0x51780D8D, 0x2B86E0E1, 0x2667995A, 0xEA60B41E, 0x0226E781, 0x3C617992},
15647 {0xAA0EA6EB, 0x09C8A578, 0x7DE194B6, 0x7D734D67, 0x6DDC425F, 0x3E994D20, 0xAF202E88, 0xB84689E7} } } ,
15648 { { {0xD9C23C04, 0x7AB050E6, 0x0AB82220, 0x9D5803CE, 0xE136CB36, 0xF2CBF3BD, 0x91B2B586, 0x9F2B169E},
15649 {0x088286E1, 0xC52BD8EF, 0x4F29DD24, 0xFA1EFF13, 0x3714A25F, 0xEAC7C444, 0x5766FD1C, 0x7DD16275} } ,
15650 { {0xFCC345BA, 0x26C968B9, 0x3F3DB27F, 0xBF1B2A12, 0x8705FD3B, 0xFCD8C860, 0x5E0DA560, 0x075AC007},
15651 {0x039562EA, 0x65D5D3EA, 0xAAB0B3C4, 0x4AB857B9, 0xF662BDFD, 0xFF022EA2, 0xEC23C3DB, 0x00BD7B3B} } } } ;
15653 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3861 a000");
15654 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3862 a001");
15655 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3863 a010");
15656 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3864 a011");
15657 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3865 a100");
15658 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3866 a101");
15659 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3867 a110");
15660 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3868 a111");
15661 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3869 a200");
15662 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3870 a201");
15663 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3871 a210");
15664 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3872 a211");
15667 static const fp12_t var_a = { { { {0x45B6303E, 0xE60CD32C, 0x2C8DD17F, 0x8F4D8526, 0x3A050142, 0x726C5A46, 0x7442A537, 0x3FF829E4},
15668 {0xA59F8F78, 0x9ABBC9A9, 0x4B524439, 0x8CA4F9D1, 0xD0A887E2, 0x50609966, 0x54AD1DBD, 0x0E349B57} } ,
15669 { {0xF33F08CC, 0x7E6BA58E, 0x25C22849, 0x2D45CCCF, 0x4581C344, 0x14FBBFFF, 0x537F9C4F, 0x1C42F870},
15670 {0xD5AC0A19, 0x830B2EAD, 0xDEBDF90F, 0x3C1AFCAD, 0x27D8CBAA, 0xBD64EFF4, 0x830983EC, 0xB61DFE80} } } ,
15671 { { {0xC06012A2, 0xE45C496C, 0xEB9A5E0F, 0xECACA80D, 0xBD5A465E, 0x5992310C, 0xCA6704BA, 0x62178800},
15672 {0xC3CA75BD, 0x99B169D0, 0x95E2BF44, 0xCF01C0F7, 0x7E54BE8B, 0x6B6CE518, 0xE0BF27B7, 0xB4B8FBBF} } ,
15673 { {0x1BCFA497, 0xE4759F75, 0x4E2C57E2, 0xF43FAC15, 0xECF10802, 0x86D5E28C, 0x94729689, 0x355594C3},
15674 {0x04FB706E, 0xC40E1A91, 0x2F74593A, 0xDBA8FAF1, 0x0E0DDECD, 0xADEC116F, 0xC8F5FA2D, 0x340F3B5D} } } ,
15675 { { {0x61C30D70, 0x83D8BDFD, 0x2B435674, 0x330E3222, 0xA6B2E065, 0x0350DED5, 0x710AD306, 0x0E2166C2},
15676 {0xACDF991E, 0x2DF31D32, 0x070B758C, 0x0C1C0187, 0xA82EB7EF, 0x21A3574B, 0x58942713, 0x2D414186} } ,
15677 { {0x80DF1CAE, 0x0EB26EF7, 0xD5A136D0, 0x5199DBB8, 0xB5086B00, 0x97B6922E, 0x9BA8B059, 0x90D57A90},
15678 {0x35E2F8A1, 0x3CD4EDC3, 0x30506A13, 0x8A8C6723, 0x59E3DBAF, 0x9804C159, 0xACB3631D, 0x02F819CE} } } } ;
15679 static const fp12_t var_expected = { { { {0x8B6C607C, 0xCC19A658, 0x591BA2FF, 0x1E9B0A4C, 0x740A0285, 0xE4D8B48C, 0xE8854A6E, 0x7FF053C8},
15680 {0x4B3F1EF0, 0x35779353, 0x96A48873, 0x1949F3A2, 0xA1510FC5, 0xA0C132CD, 0xA95A3B7A, 0x1C6936AE} } ,
15681 { {0xE67E1198, 0xFCD74B1D, 0x4B845092, 0x5A8B999E, 0x8B038688, 0x29F77FFE, 0xA6FF389E, 0x3885F0E0},
15682 {0x492BDF97, 0x0727D3AA, 0xE90412D8, 0x65244CBA, 0xFBCF0D9F, 0x7F69837C, 0xC5F42BB0, 0xB2285E3E} } } ,
15683 { { {0x1E93F0A9, 0xC9CA0928, 0x02BCDCD8, 0xC647A37B, 0x26D20308, 0xB7C405AE, 0x54AF2D4B, 0x0A1B713F},
15684 {0x2568B6DF, 0x347449F0, 0x574D9F42, 0x8AF1D54E, 0xA8C6F362, 0xDB796DC5, 0x815F7345, 0xAF5E58BD} } ,
15685 { {0x379F492E, 0xC8EB3EEA, 0x9C58AFC5, 0xE87F582A, 0xD9E21005, 0x0DABC519, 0x28E52D13, 0x6AAB2987},
15686 {0x09F6E0DC, 0x881C3522, 0x5EE8B275, 0xB751F5E2, 0x1C1BBD9B, 0x5BD822DE, 0x91EBF45B, 0x681E76BB} } } ,
15687 { { {0xC3861AE0, 0x07B17BFA, 0x5686ACE9, 0x661C6444, 0x4D65C0CA, 0x06A1BDAB, 0xE215A60C, 0x1C42CD84},
15688 {0x59BF323C, 0x5BE63A65, 0x0E16EB18, 0x1838030E, 0x505D6FDE, 0x4346AE97, 0xB1284E26, 0x5A82830C} } ,
15689 { {0x9F9204C1, 0x1E76543D, 0xD6CA8E59, 0x90220AD0, 0x162E4C4B, 0x340CC7F2, 0xF732848A, 0x6797565E},
15690 {0x6BC5F142, 0x79A9DB86, 0x60A0D426, 0x1518CE46, 0xB3C7B75F, 0x300982B2, 0x5966C63B, 0x05F0339D} } } } ;
15692 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3873 a000");
15693 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3874 a001");
15694 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3875 a010");
15695 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3876 a011");
15696 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3877 a100");
15697 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3878 a101");
15698 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3879 a110");
15699 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3880 a111");
15700 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3881 a200");
15701 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3882 a201");
15702 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3883 a210");
15703 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3884 a211");
15706 static const fp12_t var_a = { { { {0x306612D1, 0x0B10ABCA, 0x2AF796C4, 0x80A1C56C, 0x7260D025, 0x35A2950D, 0x91FC9D50, 0x87F65732},
15707 {0x3287F1A8, 0x9ACD19B9, 0x84F4F133, 0x83FD9032, 0x724F64F4, 0x2D923685, 0x63B01E3E, 0x2E0048CD} } ,
15708 { {0x06AD6FD4, 0x44C5FA1E, 0x79571517, 0x23E0DE68, 0x2010EDF8, 0x173BF37D, 0xCF1F9656, 0x42D91125},
15709 {0xD760E1DD, 0x31DF1A57, 0xF2692658, 0x7992688C, 0xD86B456A, 0x39DF8100, 0x98739C89, 0x1FA81FE8} } } ,
15710 { { {0xD6983A3E, 0xC3E89370, 0x4F84E143, 0xDB282BD1, 0x4789A303, 0xB629E6FF, 0x128531F8, 0x54C9305C},
15711 {0xFA63A828, 0x28870FD8, 0x78AEA9FE, 0x3EA4D46B, 0x0456F433, 0x532BACAF, 0xE94CF4EC, 0x40D0B4E7} } ,
15712 { {0xB6ED3FB2, 0xCF657485, 0x79BC82C6, 0x87793E17, 0xA9A8995D, 0xCA26784E, 0x58C8AEF6, 0x8D189B5B},
15713 {0x8E8A1302, 0xEB944E69, 0xDC3DCDEC, 0xAE87C08E, 0xB21C563A, 0x5C6DB878, 0x733BF391, 0x0FAC7FF6} } } ,
15714 { { {0x9972547F, 0xF49D75EA, 0x2F14D218, 0x37F8F002, 0xF9246087, 0x532B09A2, 0x9D5FF345, 0x441A851E},
15715 {0xE9290B54, 0x214E620C, 0x9FB01731, 0x1C0A652A, 0xDD5486C4, 0x6824AA21, 0x527EEB06, 0x76485676} } ,
15716 { {0xD6F2D47F, 0xF7AF960A, 0x6624667E, 0x724C4D33, 0x24633FA0, 0x7E7FEDD4, 0xDEE8AD87, 0x3E871A44},
15717 {0xDE662D95, 0xB5581B37, 0xDB34BE32, 0xF8277AA6, 0x1603247C, 0xD50766CA, 0x65C76222, 0x2D38B5CA} } } } ;
15718 static const fp12_t var_expected = { { { {0xFE9FF107, 0x1732CDE2, 0x81774E41, 0xEE31DE37, 0x90DF1695, 0x6FE4CDAF, 0xE3DA5E77, 0x55D90FA2},
15719 {0x650FE350, 0x359A3372, 0x09E9E267, 0x07FB2065, 0xE49EC9E9, 0x5B246D0A, 0xC7603C7C, 0x5C00919A} } ,
15720 { {0x0D5ADFA8, 0x898BF43C, 0xF2AE2A2E, 0x47C1BCD0, 0x4021DBF0, 0x2E77E6FA, 0x9E3F2CAC, 0x85B2224B},
15721 {0xAEC1C3BA, 0x63BE34AF, 0xE4D24CB0, 0xF324D119, 0xB0D68AD4, 0x73BF0201, 0x30E73912, 0x3F503FD1} } } ,
15722 { { {0xAD30747C, 0x87D126E1, 0x9F09C287, 0xB65057A2, 0x8F134607, 0x6C53CDFE, 0x250A63F1, 0xA99260B8},
15723 {0xF4C75050, 0x510E1FB1, 0xF15D53FC, 0x7D49A8D6, 0x08ADE866, 0xA657595E, 0xD299E9D8, 0x81A169CF} } ,
15724 { {0x0BAE4AC9, 0x9FDC5F5A, 0x1F012646, 0xFBE0CF8E, 0xFF6EA905, 0x98EC9431, 0x717281C4, 0x601D97F4},
15725 {0x1D142604, 0xD7289CD3, 0xB87B9BD9, 0x5D0F811D, 0x6438AC75, 0xB8DB70F1, 0xE677E722, 0x1F58FFEC} } } ,
15726 { { {0x32E4A8FE, 0xE93AEBD5, 0x5E29A431, 0x6FF1E004, 0xF248C10E, 0xA6561345, 0x3ABFE68A, 0x88350A3D},
15727 {0x7025E20D, 0x43AE3A68, 0x6AE84F1B, 0x25031DB4, 0x66C683D3, 0xD4E8F7D8, 0x64DEF9E3, 0x327D0E2A} } ,
15728 { {0xADE5A8FE, 0xEF5F2C15, 0xCC48CCFD, 0xE4989A66, 0x48C67F40, 0xFCFFDBA8, 0xBDD15B0E, 0x7D0E3489},
15729 {0xBCCC5B2A, 0x6AB0366F, 0xB6697C65, 0xF04EF54D, 0x2C0648F9, 0xAA0ECD94, 0xCB8EC445, 0x5A716B94} } } } ;
15731 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3885 a000");
15732 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3886 a001");
15733 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3887 a010");
15734 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3888 a011");
15735 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3889 a100");
15736 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3890 a101");
15737 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3891 a110");
15738 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3892 a111");
15739 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3893 a200");
15740 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3894 a201");
15741 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3895 a210");
15742 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3896 a211");
15745 static const fp12_t var_a = { { { {0x47B075BE, 0xE266EBD3, 0xAC833769, 0xD84F6596, 0xAE641FAE, 0xC56F0788, 0xDA5889A4, 0x0C21432A},
15746 {0x098B65FC, 0xCCDE8E58, 0x372D4D32, 0x3B843E4F, 0x7A3805C3, 0x2ED74E89, 0xC7C6899B, 0x131F021B} } ,
15747 { {0x37B35EA6, 0x01C0CF88, 0x2696B644, 0x2528530D, 0xB40D15CA, 0xEAD277B7, 0x0BD58FDC, 0x0CCC12D4},
15748 {0x9576AFAD, 0xD4E3FEC5, 0xD0DB0E07, 0x99BB650C, 0x23A927EF, 0x5ECA75DE, 0x16A3699D, 0x30DE616A} } } ,
15749 { { {0x61F87110, 0xDA2A3DE6, 0xB4B452D4, 0x8BA78920, 0x90E59456, 0xE2836512, 0xEF159AAB, 0x07FD0793},
15750 {0x0180F505, 0x71CBB447, 0xA732B2D4, 0xA079F8FA, 0x033F2AD3, 0x6DC104C0, 0x2F9EC02E, 0x9EDADA5C} } ,
15751 { {0x580FF688, 0x385CD952, 0xA41D3AB2, 0x6E19F6D8, 0x87DCC0B6, 0xE76CC047, 0x04BFE4E2, 0x507B5087},
15752 {0x5B2F6767, 0x90EDC4EA, 0x28A86430, 0x997E5FE5, 0x052703BF, 0xC0348ABC, 0x6F1067BB, 0xA0D6F65F} } } ,
15753 { { {0xF296782A, 0x22CD3475, 0x833C8B7B, 0x6C6363DD, 0x1D7E5B19, 0x6F781B24, 0x064DC010, 0x7784CEE8},
15754 {0x7A75EA0E, 0x596AD2A8, 0x57231EA6, 0x56755220, 0xA0DA3009, 0xEDE470E8, 0x7290632C, 0xA0E5B0E2} } ,
15755 { {0x448DB0A6, 0xE34A04F1, 0x1D7ABAED, 0x6815158A, 0x174125FB, 0x36216D5D, 0xF2E5395E, 0x4DDC22F2},
15756 {0x141EEE50, 0x340F39EA, 0x9F799867, 0xD9A86811, 0x3B04C0D5, 0xCC8A7472, 0xD7269197, 0x90149669} } } } ;
15757 static const fp12_t var_expected = { { { {0x8F60EB7C, 0xC4CDD7A6, 0x59066ED3, 0xB09ECB2D, 0x5CC83F5D, 0x8ADE0F11, 0xB4B11349, 0x18428655},
15758 {0x1316CBF8, 0x99BD1CB0, 0x6E5A9A65, 0x77087C9E, 0xF4700B86, 0x5DAE9D12, 0x8F8D1336, 0x263E0437} } ,
15759 { {0x6F66BD4C, 0x03819F10, 0x4D2D6C88, 0x4A50A61A, 0x681A2B94, 0xD5A4EF6F, 0x17AB1FB9, 0x199825A8},
15760 {0x2AED5F5A, 0xA9C7FD8B, 0xA1B61C0F, 0x3376CA19, 0x47524FDF, 0xBD94EBBC, 0x2D46D33A, 0x61BCC2D4} } } ,
15761 { { {0xC3F0E220, 0xB4547BCC, 0x6968A5A9, 0x174F1241, 0x21CB28AD, 0xC506CA25, 0xDE2B3557, 0x0FFA0F27},
15762 {0xA0D5B56F, 0xE4A8DEDC, 0x79ED8661, 0x2DE24554, 0xB29BCBF2, 0xE021AD14, 0x1F1EA433, 0x83A215F6} } ,
15763 { {0xB01FED10, 0x70B9B2A4, 0x483A7564, 0xDC33EDB1, 0x0FB9816C, 0xCED9808F, 0x097FC9C5, 0xA0F6A10E},
15764 {0x54329A33, 0x22ED0023, 0x7CD8E91A, 0x1FEB1329, 0xB66B7DCA, 0x8508B90C, 0x9E01F34E, 0x879A4DFC} } } ,
15765 { { {0x8300BBB9, 0x46ABDF3A, 0x320137AF, 0xC5B51B1A, 0xE71A2C7D, 0xE38FD9DC, 0xCC7CA3F7, 0x34F5FF0D},
15766 {0x92BF9F81, 0xB3E71B9F, 0xD9CE5E05, 0x99D8F79F, 0xEDD1D65D, 0xE0688565, 0xA501EA30, 0x87B7C302} } ,
15767 { {0x891B614C, 0xC69409E2, 0x3AF575DB, 0xD02A2B14, 0x2E824BF6, 0x6C42DABA, 0xE5CA72BC, 0x9BB845E5},
15768 {0xC611A805, 0x692FEA22, 0x6A7B5187, 0xA03F2382, 0x2226F7F6, 0x9DB48C79, 0x6E2E4706, 0x66158E11} } } } ;
15770 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3897 a000");
15771 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3898 a001");
15772 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3899 a010");
15773 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3900 a011");
15774 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3901 a100");
15775 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3902 a101");
15776 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3903 a110");
15777 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3904 a111");
15778 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3905 a200");
15779 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3906 a201");
15780 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3907 a210");
15781 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3908 a211");
15784 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15785 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
15786 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15787 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
15788 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15789 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
15790 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15791 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
15792 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15793 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
15794 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15795 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
15796 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15797 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
15798 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15799 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
15800 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15801 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
15802 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15803 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
15804 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
15805 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
15806 { {0x1AFF8D67, 0x18ACC3D3, 0xC921D386, 0xBFF2D33D, 0x619BE7B5, 0x85273BCE, 0xBFCD5226, 0x3D830ED9},
15807 {0x472CA734, 0xE641C5DE, 0x0B560BC0, 0x531ED963, 0xF246A1FF, 0x7639209C, 0x80518A02, 0x7C908FE8} } } } ;
15809 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3909 a000");
15810 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3910 a001");
15811 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3911 a010");
15812 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3912 a011");
15813 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3913 a100");
15814 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3914 a101");
15815 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3915 a110");
15816 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3916 a111");
15817 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3917 a200");
15818 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3918 a201");
15819 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3919 a210");
15820 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3920 a211");
15823 static const fp12_t var_a = { { { {0x40735FF1, 0x03995474, 0xAA942D22, 0x6F6799C4, 0x27F4A386, 0x38A1B7A5, 0xC60ABC3F, 0x29C8BC1F},
15824 {0x1C4C2FA9, 0xCAD57659, 0xAFB5111E, 0x6326160F, 0x79B1007B, 0x76C704D2, 0x793DC206, 0xA18EC4F3} } ,
15825 { {0xA27AA580, 0x4AA77D58, 0xF7C62145, 0x1CA48DF1, 0x8D7E1926, 0xA1661FC6, 0xBEFEABB3, 0x8A864206},
15826 {0xC9C9FDB3, 0x05740FBD, 0x73E7C3F4, 0x75CD6056, 0x40A32592, 0x45B40F99, 0x766F5B75, 0x43AD6F76} } } ,
15827 { { {0xB6EE37C1, 0xC3E6FB3D, 0x3E72BD5D, 0xC371757E, 0x7E6BD068, 0xFC797EB6, 0x974A1968, 0x1A7BBC38},
15828 {0x8F583441, 0x0DEC7351, 0x18F4F070, 0xCF5FF917, 0xB69D57AE, 0xD072908D, 0x2B5942AA, 0x28088881} } ,
15829 { {0x1C192C6A, 0xB5D0C9AC, 0x9CF3D3B4, 0x92F109DD, 0x118C5DBF, 0xEEB7A384, 0x4F529C9F, 0x90757296},
15830 {0x2301E555, 0x4C1CEEAB, 0x0B6682A4, 0x7491B83D, 0x3EB83C3F, 0xF2BCE183, 0x356820AB, 0x4185879E} } } ,
15831 { { {0x9CD59596, 0xAB8B985B, 0xCEF6BD3F, 0x5DAE77EA, 0xF9132300, 0x865C96DE, 0x22406104, 0x17774771},
15832 {0x19378496, 0x6C6106BE, 0x24C45E41, 0x9006D429, 0x2ACB69AE, 0xC8147847, 0x318D1D9C, 0x0454C278} } ,
15833 { {0xF672B0F0, 0x6D7C2C7E, 0xA04B49A6, 0xBEBB75AD, 0x76317AD9, 0xEC33670B, 0x4E9EAE0E, 0x2CF4E37D},
15834 {0xCA0607AD, 0x52CC285D, 0xCFBD898A, 0xDFBD7FEE, 0x5B2B83B3, 0x9D348A7A, 0xFBA2176E, 0x1065962B} } } } ;
15835 static const fp12_t var_expected = { { { {0x40735FF1, 0x03995474, 0xAA942D22, 0x6F6799C4, 0x27F4A386, 0x38A1B7A5, 0xC60ABC3F, 0x29C8BC1F},
15836 {0x45E004F2, 0x34191358, 0x24C2CE28, 0xAFEB9691, 0xDA318939, 0x84995798, 0xC6E11A22, 0x1884D9CE} } ,
15837 { {0x7E0E8B75, 0x2D1CA932, 0xA245A203, 0x02175DAB, 0x7698CD5D, 0x4E2D1166, 0xD812C9F0, 0x451B65C7},
15838 {0xE754B9AC, 0xA8F1EDE8, 0xBF4634AA, 0x03C564ED, 0xC9F9B7C6, 0x45E602CE, 0x0E954C4E, 0x9B417F08} } } ,
15839 { { {0xDF619026, 0xCB54F0E9, 0x38D59BBA, 0x4DA19905, 0x0DC64A75, 0x352D3022, 0x05894599, 0x0C026248},
15840 {0xEE2B1052, 0xD6756D17, 0xA48A36B6, 0xC1E925B3, 0xB6F5243F, 0x2B57CEA7, 0x50F40D3B, 0x166A3366} } ,
15841 { {0x227234A6, 0xB47C2FCE, 0xEE447F20, 0xBD90C62D, 0x911D7ABC, 0xF7B2B1CB, 0xE3BA2293, 0x22C322B3},
15842 {0x79689E48, 0x808E34DB, 0x84D139A1, 0x6E3EC77A, 0x731419F3, 0x030C201A, 0x00F33A91, 0x42DDF748} } } ,
15843 { { {0xF7247E77, 0xBF99EDE3, 0x2DC383A3, 0x8068711A, 0x7DB35682, 0x821B3529, 0x96298064, 0x31005C5F},
15844 {0x7332BB33, 0x1A119E91, 0xEE61FA2D, 0xEC09FE55, 0xD6398565, 0xE46B9BF7, 0xC8F12B06, 0x7495A730} } ,
15845 { {0x3CD14962, 0x6004D581, 0x19A4BD24, 0xFA11FBA3, 0x357B2BF8, 0x279C78A9, 0xE44232D3, 0x860B4390},
15846 {0x927B8117, 0x8B1CB548, 0x83D41076, 0x0499CD25, 0xF91A9A5B, 0xA6B7E45F, 0x74E3B17A, 0x9C87B385} } } } ;
15848 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3921 a000");
15849 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3922 a001");
15850 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3923 a010");
15851 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3924 a011");
15852 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3925 a100");
15853 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3926 a101");
15854 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3927 a110");
15855 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3928 a111");
15856 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3929 a200");
15857 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3930 a201");
15858 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3931 a210");
15859 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3932 a211");
15862 static const fp12_t var_a = { { { {0xFB4628F0, 0x037BD409, 0x9B07FA0F, 0x57115A86, 0x10905943, 0x9A6A22E1, 0x8EF3C0C8, 0x631F0548},
15863 {0x257D62E9, 0x2B77AFD6, 0xE5CAF058, 0xD45A31A4, 0xA640338A, 0x1D7EB76C, 0xF0F16C40, 0x3096CD62} } ,
15864 { {0xFF33C733, 0xB75B4C98, 0xE6CDE59C, 0xE2AC81EA, 0xE277DC5B, 0x537D174C, 0x61B1EFE0, 0x16044FFA},
15865 {0x66912568, 0x5D0CF3B2, 0x280B6461, 0xBD3FC7BF, 0xC0189657, 0x0D2FD4F7, 0xB0C56F0A, 0x3BF94BA9} } } ,
15866 { { {0xB7CC392D, 0x13204C7D, 0x61F62FC7, 0x93FC5007, 0x4598E5C0, 0x0AA9C6ED, 0x44A01642, 0x11032CBC},
15867 {0x5DDB8BE0, 0x945A352F, 0xC40B1108, 0xA298DA31, 0x5274F0CD, 0x9547A6B4, 0x55777176, 0x35AD3D47} } ,
15868 { {0xB9F723F2, 0xDFCFC13B, 0x5A7EB880, 0xCCA60225, 0x7FC8DCB5, 0xFAFAD84D, 0xB23216BD, 0xA68EC7D6},
15869 {0x9FCBAA62, 0xB72892AA, 0x7DBE294F, 0x172803A4, 0x95D0DBC9, 0x0A44C8D9, 0x3D8A6830, 0x48D2903E} } } ,
15870 { { {0xD96A74A4, 0x23F740D5, 0x5D503D9A, 0x2DACBBD3, 0x143B1293, 0x9A40298E, 0x6A7474DC, 0x644FC261},
15871 {0xA31D0024, 0xEF1A55D1, 0x7EF2378D, 0xDD01AFBC, 0xAE4B4865, 0x03C88983, 0xC4E4376A, 0x2632A2CF} } ,
15872 { {0x2DFBB603, 0x2A366CAB, 0x3814B0B7, 0x9877D69F, 0xCACD8B29, 0xA497B477, 0x69DAF509, 0x1E34EC5F},
15873 {0xBB28BEEA, 0xA743060A, 0x62245C48, 0xE199C04C, 0xAEF4A3EA, 0x612F6196, 0x499F90AD, 0x06512A0D} } } } ;
15874 static const fp12_t var_expected = { { { {0xFB4628F0, 0x037BD409, 0x9B07FA0F, 0x57115A86, 0x10905943, 0x9A6A22E1, 0x8EF3C0C8, 0x631F0548},
15875 {0x3CAED1B2, 0xD376D9DB, 0xEEACEEEE, 0x3EB77AFB, 0xADA2562A, 0xDDE1A4FE, 0x4F2D6FE8, 0x897CD15F} } ,
15876 { {0xFD1B8E1C, 0xFBB8F6B6, 0x7C4953BA, 0xDCE25E47, 0xE55742D2, 0x6DCE587F, 0x7280127F, 0xA924EEA6},
15877 {0xD4DCBA7C, 0xCA2A9FD1, 0x46F1FC03, 0xD90EA33B, 0x65E16D2B, 0xEAACFC45, 0x7F7EC99E, 0x6BB3DC6F} } } ,
15878 { { {0xBA6B2AC1, 0xC40C80D3, 0xA5690CB6, 0xEEBCDD6D, 0x79D747C9, 0xE120F4F9, 0xE0FC86B6, 0x3C120B25},
15879 {0x6B4C081D, 0x017E2BAE, 0xF7AAA717, 0x8F31ECB1, 0x53BDC100, 0x3D84F4CA, 0x0E04C716, 0x12DA40EF} } ,
15880 { {0xA83510A9, 0x1F1EC875, 0x79F926C6, 0x466BAA7B, 0xD419ACFF, 0x0065841D, 0x8DECC56B, 0x1384D6EB},
15881 {0x9FCBAA62, 0xB72892AA, 0x7DBE294F, 0x172803A4, 0x95D0DBC9, 0x0A44C8D9, 0x3D8A6830, 0x48D2903E} } } ,
15882 { { {0xBF0F3477, 0x0FD433DF, 0x5585A7B9, 0x360FFCE4, 0xA597414F, 0xF797D2E7, 0x7B3AA4BE, 0x93E0FBF2},
15883 {0x88C1BFF7, 0xDAF748DB, 0x7727A1AC, 0xE564F0CD, 0x3FA77721, 0x612032DD, 0xD5AA674C, 0x55C3DC60} } ,
15884 { {0xF4654F93, 0x4A53B624, 0xE66D7A11, 0x83858850, 0x8691ABDC, 0x87A4BF1A, 0x2B55B208, 0xB167C6A3},
15885 {0x2866A1FD, 0xA22E8832, 0x616FFA90, 0x8D22B15D, 0xD2ECA08E, 0x5B44D207, 0x74FEB70B, 0x8C6FD3A4} } } } ;
15887 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3933 a000");
15888 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3934 a001");
15889 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3935 a010");
15890 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3936 a011");
15891 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3937 a100");
15892 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3938 a101");
15893 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3939 a110");
15894 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3940 a111");
15895 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3941 a200");
15896 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3942 a201");
15897 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3943 a210");
15898 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3944 a211");
15901 static const fp12_t var_a = { { { {0xE4B42EB5, 0x0BFF1085, 0xA85A0387, 0xE4ECF2A4, 0xDA0B87FA, 0xA9F96A88, 0xD0DFF2BB, 0x2FFE6BC9},
15902 {0x07E4D128, 0x0209D62C, 0x8559267B, 0x50A57E03, 0x9F2EEC40, 0x36872766, 0x2BFEF402, 0x677075F8} } ,
15903 { {0x2A09136A, 0x0444AD88, 0xE141B224, 0xE8A2B7DC, 0x4D7FA447, 0xEB026B7F, 0x19E29B61, 0x6CD50CF8},
15904 {0x187C9CDE, 0x873D9817, 0x74FBE83D, 0xBBBCFC80, 0x5E2464EB, 0x2EE482C0, 0xCBB070EB, 0x7C442C30} } } ,
15905 { { {0x1C420A7D, 0xF21247FC, 0x64C44B0B, 0x98BF4EC0, 0x9A343382, 0x2089F89F, 0x36B2CA1B, 0xACB25AF6},
15906 {0xE8F1A302, 0x21AA304D, 0x9D8CA5EF, 0xA3265F78, 0xF1C95AFE, 0x1139C356, 0xD30BE9B3, 0x2546B6FD} } ,
15907 { {0x0FFC8F77, 0xE7CBAF08, 0x4DEAFD67, 0xD3111065, 0xF4C1ACA7, 0x09976072, 0x216D977A, 0xA5E43975},
15908 {0x2657C272, 0x87203043, 0x93A666FB, 0x627ADFFA, 0x062C4A2B, 0x48843C7A, 0xDFAD2F7D, 0x44FE1777} } } ,
15909 { { {0x31C69CF3, 0x389073D6, 0x2529F245, 0xA723B32C, 0x7D9508FC, 0xAC129933, 0xD2310FF8, 0x961E97A7},
15910 {0xE7E971C0, 0xAB92B53B, 0xAA771032, 0xCBBB1FE7, 0x86C053B7, 0x6D46EFF1, 0x8577E79B, 0x2C923383} } ,
15911 { {0x94316AA1, 0x7D926412, 0xDFF2CF28, 0x4E0B1E22, 0x42056041, 0x530CC4F9, 0x44B0BBEB, 0x4248F7AA},
15912 {0x5C15C061, 0xC3D2BB89, 0xF67E4738, 0xB8B9D425, 0x9E28051E, 0x6C974241, 0xE06A66A9, 0x3E1CF39A} } } } ;
15913 static const fp12_t var_expected = { { { {0xE4B42EB5, 0x0BFF1085, 0xA85A0387, 0xE4ECF2A4, 0xDA0B87FA, 0xA9F96A88, 0xD0DFF2BB, 0x2FFE6BC9},
15914 {0x07E4D128, 0x0209D62C, 0x8559267B, 0x50A57E03, 0x9F2EEC40, 0x36872766, 0x2BFEF402, 0x677075F8} } ,
15915 { {0x2A09136A, 0x0444AD88, 0xE141B224, 0xE8A2B7DC, 0x4D7FA447, 0xEB026B7F, 0x19E29B61, 0x6CD50CF8},
15916 {0x187C9CDE, 0x873D9817, 0x74FBE83D, 0xBBBCFC80, 0x5E2464EB, 0x2EE482C0, 0xCBB070EB, 0x7C442C30} } } ,
15917 { { {0xC1A9E514, 0x549AE957, 0x0C3DA87C, 0xB3689DA3, 0x1EAB4D65, 0x57E83524, 0x393F3DA9, 0x0B21C583},
15918 {0xA570BB08, 0xB0C8DE48, 0x4A08F7FD, 0x536F638C, 0x60E4AEF4, 0xB38C5AB2, 0x8893D11B, 0x0BE143C7} } ,
15919 { {0xDB9DEC9A, 0xC800CE1C, 0x11BDF9E7, 0x941B84AE, 0xFE0AFA5C, 0xBC87BCA5, 0x59942302, 0x8626E330},
15920 {0x0C1A405F, 0xC2004CDE, 0x06831052, 0x6FB08E88, 0xB89FD87F, 0x9F8BE34A, 0xF60266F2, 0xA271839A} } } ,
15921 { { {0xF9D70DAE, 0x662DCE8D, 0x7D1C65D8, 0xF1EF9CE0, 0xD6F0F953, 0x6ADF729A, 0x1A0E9A37, 0xA3A2BC75},
15922 {0xFB580DC0, 0x775B121F, 0xAEE36D79, 0x8A68DBBA, 0x47DD170C, 0x25D4E208, 0x649D4086, 0xAABB3E0B} } ,
15923 { {0xCB23E483, 0xD16C8C59, 0x73C50408, 0x5F12CD9E, 0x1A36BAE3, 0x2D6B02F6, 0xEF6B887A, 0x6412FF03},
15924 {0xB4ED8C7B, 0xE4B7EFA9, 0x9CFA0DB0, 0x0574BFB0, 0x200F5D6C, 0x12AF93EA, 0xE931EE88, 0x1FB1D58B} } } } ;
15926 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3945 a000");
15927 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3946 a001");
15928 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3947 a010");
15929 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3948 a011");
15930 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3949 a100");
15931 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3950 a101");
15932 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3951 a110");
15933 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3952 a111");
15934 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3953 a200");
15935 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3954 a201");
15936 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3955 a210");
15937 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3956 a211");
15940 static const fp12_t var_a = { { { {0x93E388A7, 0x0DBF648E, 0x860C0620, 0x059D1AAC, 0x8D90A3CE, 0xDDCA262B, 0x73F37BD6, 0xAE55C17D},
15941 {0xF4FB1C60, 0xB57AAC95, 0x6F0C2493, 0x5F6C485F, 0x155FE4A7, 0x684BF73D, 0x232D3F68, 0x0EB5316B} } ,
15942 { {0x52BFDBA0, 0x6833241E, 0x6B432551, 0x60420A88, 0xF85140D2, 0x373C335E, 0xE01C9B8E, 0x0AA44CC1},
15943 {0x876A1644, 0x3FC44ECC, 0xE3C548DA, 0xE1A417B0, 0x258F9F97, 0x2EDFB6B4, 0xC371DFCE, 0x96135F02} } } ,
15944 { { {0x126717F5, 0x3763AFBE, 0x822359DD, 0x4E014AD5, 0xB03F5D86, 0xC3327090, 0x9BDC4297, 0x91FA8925},
15945 {0xA0C0831A, 0xAF6ECFAE, 0x951A23C1, 0xC0FB2ADC, 0xAD85D7C5, 0x94FD7975, 0x2AD6D6B7, 0xA34FDD7E} } ,
15946 { {0xF2EE5AF8, 0xEC64C630, 0x5EEAAF08, 0x98343148, 0x021691FD, 0xE3AF5EF7, 0xE8F05D32, 0x7B89EC7F},
15947 {0x5EC4488F, 0x967CC082, 0x90FD309E, 0xF70CE2FB, 0xEC3E99F5, 0x15741E62, 0x7FDB69F2, 0x491B5511} } } ,
15948 { { {0x4EACD641, 0x38CD8F70, 0xD564C6FE, 0x467BB7DC, 0x7A3E7E50, 0x37CFB62A, 0x4D334709, 0x4201E822},
15949 {0xBE39163E, 0xC3070A2C, 0x4821AA59, 0xB0EF3BE9, 0x11E9C307, 0x74D1CD5F, 0xE526A1CB, 0x205DC8DD} } ,
15950 { {0xC2059F23, 0x0BBF3491, 0xFB3E8ABC, 0xA3480EEC, 0xE69F18B9, 0xA0D66205, 0x8EE80642, 0x9F22113C},
15951 {0xFEDDF9BE, 0x4940826B, 0x73BF1B16, 0x53D7BFDA, 0x8797C29F, 0xB0D6A600, 0xC2F0BC98, 0x01D4D3E9} } } } ;
15952 static const fp12_t var_expected = { { { {0x93E388A7, 0x0DBF648E, 0x860C0620, 0x059D1AAC, 0x8D90A3CE, 0xDDCA262B, 0x73F37BD6, 0xAE55C17D},
15953 {0x6D31183B, 0x4973DD1B, 0x656BBAB3, 0xB3A56441, 0x3E82A50D, 0x9314652E, 0x1CF19CC0, 0xAB5E6D57} } ,
15954 { {0x96563580, 0xF39A5CB3, 0xFAC453C6, 0xCB8EDBD8, 0xEBE8B56B, 0x53AF38CE, 0x3FAB5953, 0x5A379E1B},
15955 {0xBAAFD469, 0x2BA3DD5B, 0x2EF8C367, 0xD416F103, 0xD03EB594, 0x664011E9, 0x34FE685A, 0x3DECEFB8} } } ,
15956 { { {0xBBE10F61, 0x1BE56C00, 0x14279F03, 0x13C77A3D, 0xE67E9D0C, 0xE79E73CB, 0xD91863AD, 0x03CEAD4F},
15957 {0xB196F6A2, 0x9F3F4949, 0xF3088E7E, 0xDD31F01C, 0x429FE5C2, 0x48A924D8, 0xAA603E7E, 0x534CB323} } ,
15958 { {0xD566F8B5, 0xF4EF63D2, 0x651F84E9, 0x4D0A6DE2, 0x83676A52, 0xD501780C, 0xC261AAB3, 0x5C396F31},
15959 {0xCA89EFD2, 0x89C43882, 0x84EB62F2, 0xE9B868A4, 0xC6AC4B53, 0xA10710E4, 0x3B9ED54A, 0xA26BE391} } } ,
15960 { { {0x1CAA9E60, 0xA5B9B869, 0xCFE3E5F0, 0x107815E5, 0x5D999D05, 0x07D71832, 0x0907BD65, 0x78CAAC26},
15961 {0x17E23B29, 0xB3FB5318, 0xA66E76C0, 0x55EED4DA, 0x2B8A34CE, 0xF4070C6C, 0xFDF064B4, 0x601FABF7} } ,
15962 { {0x0ED1D104, 0x4ECA5585, 0xC7D320BB, 0xD934D73F, 0x79F74721, 0x8CE7A6A0, 0x41348CC3, 0x402944B9},
15963 {0xF5F44D64, 0x57E55967, 0xCB6B9B0A, 0x12E4373B, 0x12D168DA, 0xA779B34A, 0x029FD360, 0x192C220E} } } } ;
15965 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3957 a000");
15966 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3958 a001");
15967 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3959 a010");
15968 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3960 a011");
15969 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3961 a100");
15970 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3962 a101");
15971 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3963 a110");
15972 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3964 a111");
15973 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3965 a200");
15974 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3966 a201");
15975 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3967 a210");
15976 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3968 a211");
15979 static const fp12_t var_a = { { { {0x06A715B6, 0x2C43D3FC, 0x97FBA0F7, 0x2754302F, 0x3774BE1B, 0x536EFF4A, 0x40465EFB, 0xB010849E},
15980 {0xDCEA4F82, 0x9B4905B6, 0xA304BFC4, 0xF1D82C18, 0x36C132AC, 0x01B1F454, 0xCC689248, 0x0140A22A} } ,
15981 { {0x25C922A3, 0xAA6E8EF2, 0x797A86BE, 0xD9ECB19C, 0x77E6BFDA, 0x129B8E4A, 0x37C99CBC, 0x40A30A48},
15982 {0x33CB79AF, 0x4F660440, 0xE048CEDD, 0x32D61EF5, 0x3D708CFD, 0x5FA9CE1A, 0x0738A52F, 0xB6A170AA} } } ,
15983 { { {0xBB3B4AFE, 0x97E0DDAE, 0x0958E83D, 0x0C57E00F, 0x14B6C650, 0xA723D254, 0xA6C3215A, 0x342DE17C},
15984 {0xBEE2DD8E, 0x1D056881, 0x80008CB2, 0x5E2540B8, 0x42435342, 0xDE9CD708, 0x238323D4, 0x1C95A96B} } ,
15985 { {0xA1BB3DB2, 0x8F643242, 0x3993DF66, 0xD7DB902C, 0x57473BC9, 0xDE064E5F, 0x6FC13E39, 0x53C33A59},
15986 {0x0264BBB2, 0x3AA00CFF, 0xE43362ED, 0x7680925A, 0xFE07F7B5, 0xDAD88882, 0x21ED4395, 0x8112E01F} } } ,
15987 { { {0x2D5B88D1, 0x7309D7B6, 0x9113F5A4, 0x670F6DBF, 0x21DC67A2, 0xCE0AA8B0, 0x329002BD, 0x2E48389A},
15988 {0x0FBC5CB2, 0x29399C4F, 0xE10A6ED5, 0x3642EC43, 0x1C4816A5, 0x0EF8FC47, 0x82C78A15, 0x5CA446B3} } ,
15989 { {0xB7BA9E58, 0x5EADE404, 0x83A30F0E, 0x526997FA, 0x3BB25174, 0xC615D6B1, 0x51C2FCA0, 0x08155ADA},
15990 {0xC00952F7, 0xA562DA10, 0xDD020184, 0xE7705B88, 0xDC92B45F, 0x62DE8EC0, 0x066FE443, 0x4C9BD346} } } } ;
15991 static const fp12_t var_expected = { { { {0x06A715B6, 0x2C43D3FC, 0x97FBA0F7, 0x2754302F, 0x3774BE1B, 0x536EFF4A, 0x40465EFB, 0xB010849E},
15992 {0x8541E519, 0x63A583FA, 0x31731F82, 0x21398088, 0x1D215708, 0xF9AE6817, 0x73B649E0, 0xB8D2FC97} } ,
15993 { {0xC3DB2903, 0x1FCE15B5, 0xC33C1662, 0x32661A26, 0x9E59AE52, 0xE08F4D04, 0xD1C36A8E, 0x1D2D0129},
15994 {0xE360878C, 0x43B7F14B, 0xED124FF9, 0x619443C6, 0x02FB272C, 0x2E6574B7, 0xB18ED5A8, 0x63C809E7} } } ,
15995 { { {0x7C4A41DF, 0x2A223232, 0x2E844769, 0x288F0D80, 0x70ADA6E9, 0x091F21A0, 0xBBF41F77, 0x9E6832F1},
15996 {0x8EC44B39, 0xBDED2C2D, 0xCC5ACEF4, 0x50B3736C, 0x4B1DCC27, 0x3D18E37A, 0xE4F544BE, 0x811D2AAC} } ,
15997 { {0x8912A636, 0xBCE414BE, 0x470DF499, 0x9FDC73C8, 0xB0C37FA7, 0xA383986A, 0xB4DBEE6E, 0x21AC6F1E},
15998 {0xA881C31D, 0xCBEAF9DC, 0xF859DD36, 0x8ECFA45E, 0x474A9D41, 0x357DB927, 0x0E97FC6C, 0x8F231863} } } ,
15999 { { {0x68BE02DB, 0x6E4B753F, 0xA3086BC9, 0xD175F22F, 0x8902B4A7, 0x5B216BF9, 0x5B1A8DD1, 0x5751B4F1},
16000 {0xF6BCD0C5, 0x9A82671C, 0x12EA4FE3, 0x0B386AED, 0x1E921C93, 0x1DF6C746, 0x0CBBCEAB, 0xB67FBE7A} } ,
16001 { {0x8FE2B920, 0x0C320AF7, 0x263F4896, 0x68BABA73, 0x06782E4B, 0xD951B64E, 0x9C7B1DBA, 0x3DAE3B79},
16002 {0x75EEB1C8, 0x8D1A2C15, 0x338E9154, 0x5A994158, 0xAE814664, 0xCE8FD18F, 0x8631E09D, 0x2EA7EB53} } } } ;
16004 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3969 a000");
16005 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3970 a001");
16006 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3971 a010");
16007 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3972 a011");
16008 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3973 a100");
16009 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3974 a101");
16010 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3975 a110");
16011 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3976 a111");
16012 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3977 a200");
16013 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3978 a201");
16014 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3979 a210");
16015 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3980 a211");
16018 static const fp12_t var_a = { { { {0x76F6E8C1, 0xFEC40D22, 0xABBCE5F3, 0x3C6EE748, 0xA5A68B12, 0xAA71782F, 0x425E5171, 0x2CE35005},
16019 {0x70B6D886, 0xCFCFAC1E, 0xAC6A16F3, 0xA7A7CD31, 0xFCB86CF0, 0x65A1E5CD, 0x03A44759, 0x70C461FC} } ,
16020 { {0xDD9BF58A, 0xB6C9DE95, 0x26229A8C, 0x1ED34415, 0xE994E141, 0xC06859AB, 0xDEB3D6AC, 0x2A5875E1},
16021 {0xF03061BF, 0x36C32F16, 0xA6A0D448, 0x3F0A48C2, 0xD8EBAAD1, 0x256954DE, 0x1EA72E7F, 0x0546E2B6} } } ,
16022 { { {0xEA59F57D, 0x597C4F8A, 0x535194DC, 0x535E4134, 0x2E9FC91E, 0x507385EF, 0x23917691, 0x20FD48C8},
16023 {0x82EFEBA5, 0x2B01C478, 0x8D7CF7C5, 0x2E26D9F9, 0x6BBB6050, 0xB78B7517, 0x21F8F937, 0x3687004B} } ,
16024 { {0x81598678, 0x3FFB6503, 0x4F0A4FD4, 0x4D319772, 0x095DC9BF, 0x233FDE8E, 0x5E748342, 0x712B89ED},
16025 {0x87F0BB59, 0x29532C38, 0xA1C0B32D, 0xCB469293, 0xEF32FA31, 0x122745A6, 0x37F16C76, 0x54711032} } } ,
16026 { { {0x056E7C2F, 0x03953366, 0xCE221B2D, 0x9689A7BF, 0xA6EA66B2, 0x4CBE65A4, 0x9B0611CA, 0x48F37EAC},
16027 {0xC0DF99E5, 0xEA1C25A3, 0xDF7FDA75, 0xEAAF5D21, 0xD7FC55CE, 0x5FC4F818, 0x8E1FA0E4, 0x210F505E} } ,
16028 { {0x3C43F2D2, 0x7EF9587D, 0x42A84939, 0x3326230E, 0x6FAE0794, 0x0F97DA40, 0xE88C7677, 0x4089BBF2},
16029 {0xFB3A3B81, 0x65FE7427, 0x2D764BB5, 0xBFA10B10, 0x82CB6787, 0x008C0482, 0x13F44A11, 0x1284455F} } } } ;
16030 static const fp12_t var_expected = { { { {0x76F6E8C1, 0xFEC40D22, 0xABBCE5F3, 0x3C6EE748, 0xA5A68B12, 0xAA71782F, 0x425E5171, 0x2CE35005},
16031 {0xF1755C15, 0x2F1EDD92, 0x280DC853, 0x6B69DF6F, 0x572A1CC4, 0x95BE769D, 0x3C7A94CF, 0x494F3CC6} } ,
16032 { {0x6A3F96A2, 0x230F8F82, 0x3D9BFEC6, 0xA89F75CC, 0xB77DB539, 0x209ACDA7, 0x7E3697B9, 0x77C31FCB},
16033 {0x47C81FBC, 0x3595427B, 0xEE5F5666, 0xDAE19E03, 0x747D63BB, 0x5D17E6AC, 0xD676EB6B, 0x6C6B6E3B} } } ,
16034 { { {0x6213EF7D, 0x9896A0A5, 0xA5E2EEFB, 0x184F2235, 0xD2C4A507, 0x2F658540, 0x7AEC9AF9, 0x8AC816DD},
16035 {0x5359F1B6, 0x42CF83F5, 0xC814AB31, 0xE68A779A, 0x24F240B0, 0xA234E6FA, 0x9C06555E, 0xA103184D} } ,
16036 { {0x8C4101FD, 0xC72F67C3, 0x43EC0EE2, 0x5EC89488, 0xD31740B5, 0x917A84CB, 0x2ACE0B7D, 0x85EB67F1},
16037 {0x20CE4EBD, 0x0F191104, 0x90058157, 0xCE296C52, 0x67E84236, 0x870B7B6D, 0x42C20A00, 0x2EDB2B72} } } ,
16038 { { {0xAD7BDF2A, 0x74E0A38E, 0xCE0BB658, 0xA8E9924B, 0xFEB1D475, 0x84763D81, 0x20FED274, 0x42673BB6},
16039 {0x91E297DE, 0x59CA5F36, 0xE81CC94E, 0x0B76E823, 0xA5F35381, 0x1BA3C848, 0xB012C160, 0x4DEF3DBD} } ,
16040 { {0xE9777A92, 0x46F645F0, 0xE3D260E2, 0xDBCF114B, 0xA7DBD2DF, 0xEEC15942, 0xD49D8CA2, 0xA4E49BDD},
16041 {0x31CDC2CC, 0xBE051297, 0x6742F91B, 0x10E1EC43, 0x4EF10EF5, 0x8F7F3237, 0x756107F7, 0x28301CB4} } } } ;
16043 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3981 a000");
16044 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3982 a001");
16045 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3983 a010");
16046 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3984 a011");
16047 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3985 a100");
16048 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3986 a101");
16049 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3987 a110");
16050 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 3988 a111");
16051 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 3989 a200");
16052 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 3990 a201");
16053 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 3991 a210");
16054 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 3992 a211");
16057 static const fp12_t var_a = { { { {0x68CEA3F1, 0xCAFBEFD6, 0xC71275CA, 0x88D1BF6C, 0x5513CA2A, 0xB91A3383, 0xF533905D, 0x523A2807},
16058 {0x58963EEE, 0x7AF40CAC, 0xD3AB978A, 0x07F9966A, 0x9C1A0541, 0xE429F1BD, 0x9A502451, 0x7516F8E3} } ,
16059 { {0x30D70F75, 0x96AD8F54, 0x398309E8, 0xBD4642BB, 0x6CCBAB78, 0x18E1B5FD, 0xC7B39D95, 0x251FF13C},
16060 {0x7A72114B, 0xFEC2B204, 0xAF7DE493, 0x82C7F2E7, 0xEDF051B3, 0x8AC11596, 0x211FC553, 0x1D356198} } } ,
16061 { { {0x83B82FCF, 0xC5C2D6FA, 0x98BDB9BD, 0x2BDF86FF, 0xD6655563, 0x66E21479, 0x4E5A57A2, 0x34E4C5E6},
16062 {0xC206D608, 0xAE4A935D, 0xB0A69633, 0x6F316048, 0x94339F71, 0x3D1B55D5, 0xBAB34F12, 0x7B718893} } ,
16063 { {0x885CC5F6, 0xB8F43E82, 0x3AEC8AA2, 0xA8CBA8D3, 0x7F0D5FB0, 0xAC5E5895, 0x93BC740D, 0x7B0266A9},
16064 {0xEECBA6EA, 0x91D0EA04, 0xFB9370B5, 0xF8F71EC9, 0x511452D3, 0xB8040356, 0x8E66558B, 0x419F1EC4} } } ,
16065 { { {0xF7B8F656, 0x1A58153A, 0xE75AF00E, 0xC4A02008, 0x4A607FE8, 0x50255410, 0x1FF9F9BE, 0x1FB0201F},
16066 {0x85329812, 0xE86012FD, 0x48C2858B, 0xD5E55970, 0x6D74DCDD, 0xE0A24F02, 0x05B9B892, 0x4A967DD4} } ,
16067 { {0xDB78BB0B, 0xCAA849B9, 0x480C4E78, 0xE9309E59, 0xF6BCC3AA, 0xD38471EE, 0xBC1CFA83, 0x54E2CF80},
16068 {0x03018C6A, 0x3CC97F96, 0x909FB6CA, 0x88FEB2F1, 0x801DE632, 0xF901109C, 0x48AD977F, 0x553D0956} } } } ;
16069 static const fp12_t var_expected = { { { {0x68CEA3F1, 0xCAFBEFD6, 0xC71275CA, 0x88D1BF6C, 0x5513CA2A, 0xB91A3383, 0xF533905D, 0x523A2807},
16070 {0x0995F5AD, 0x83FA7D05, 0x00CC47BC, 0x0B181636, 0xB7C88474, 0x17366AAD, 0xA5CEB7D7, 0x44FCA5DE} } ,
16071 { {0xA874108D, 0x9E380370, 0x406770FE, 0x23148C96, 0x6EC0B502, 0xDC92CB23, 0x8B52674D, 0x2F56E8FD},
16072 {0x60D4D472, 0x4C0D62C3, 0xFC7B0EB8, 0xEC043B0D, 0xE6BCE79C, 0x1F126AC4, 0x4A205A9D, 0x91DE02A6} } } ,
16073 { { {0xC56D09AD, 0x1D01A15F, 0xF03AAC14, 0x1829AE89, 0xC0E21B1C, 0x3BFF8C43, 0x0493AD7E, 0x097DA5B7},
16074 {0x9746671D, 0x4180C33E, 0x48F12AAC, 0x3F7C5BA4, 0x9F0676A7, 0xD6B6C192, 0x6BC19CDE, 0x546604B8} } ,
16075 { {0x3C6EF5F0, 0x05ADC308, 0x88049290, 0x92CC6AF8, 0xE87379AC, 0xECD3F278, 0x651D0F54, 0x40BC9CB8},
16076 {0xC7B7E539, 0xECE43833, 0xA13B148A, 0x0BBCEEBF, 0x7FE22B70, 0x802F0E86, 0x8200F590, 0x344EDB66} } } ,
16077 { { {0xAC24476A, 0xCDDB47D0, 0xAF483A77, 0xF7F25B3E, 0x527AB6AF, 0x5F5B9BB4, 0x88EC58D7, 0x0B769B5A},
16078 {0x88409571, 0x09774F6C, 0xE14BC4CA, 0x2363764B, 0x6FBFC6F7, 0x9AC9C04B, 0x4520D1D8, 0x89C153B6} } ,
16079 { {0xCC199575, 0xB53B454C, 0xAD69ACB2, 0xD0DC337A, 0x04C862CD, 0x475BD7AD, 0xE7E6B77D, 0x54F514B1},
16080 {0x2C8501BC, 0xA00CCC5E, 0x97B9320E, 0xE1416C5F, 0xF24B4264, 0xE2CA9299, 0x68ABDF2D, 0x51035231} } } } ;
16082 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 3993 a000");
16083 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 3994 a001");
16084 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 3995 a010");
16085 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 3996 a011");
16086 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 3997 a100");
16087 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 3998 a101");
16088 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 3999 a110");
16089 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4000 a111");
16090 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4001 a200");
16091 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4002 a201");
16092 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4003 a210");
16093 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4004 a211");
16096 static const fp12_t var_a = { { { {0x491F92F6, 0xCD72823C, 0xF1A2962F, 0x7A440F0E, 0x3B57FDA7, 0x380BC499, 0x1AFBE82E, 0xB1DD2047},
16097 {0xB611F73E, 0xAB2686C3, 0x7BC68CEA, 0x50B82473, 0xCE0C8A9A, 0xB3489726, 0x33069620, 0x077ACE31} } ,
16098 { {0x93D8F9B0, 0x31A18D06, 0xF48D0CC0, 0x2B3F3352, 0x6A840EB4, 0x568EFB06, 0x34A58BD1, 0x888307D4},
16099 {0xD87C24F4, 0x9DAE795D, 0x558989BF, 0xA5344437, 0x89AAB9C3, 0x0CC33245, 0xC35A1EE4, 0x1FD1AD6A} } } ,
16100 { { {0x7ECDF122, 0x4965E4D3, 0xA26EA026, 0x6056FA04, 0xFF57682C, 0x86244B1B, 0x38911FD5, 0x10C6BBD8},
16101 {0x2D69F083, 0x39505FDE, 0x0E9E1DEB, 0xC98A4C93, 0x39BA48C9, 0xE0FF4F3E, 0x9F7B6513, 0x3827558C} } ,
16102 { {0x1DDDE7F9, 0x936E1E55, 0x5D9CA1F3, 0xAB649CD8, 0x12E8CA20, 0x291A0509, 0x79054343, 0x41E4A75C},
16103 {0x1DBBF49D, 0x239122BF, 0xADC49296, 0xFAFDD294, 0x9F498023, 0xC9C7AF00, 0x39FAF5FE, 0x0D2F9DEA} } } ,
16104 { { {0x163F4445, 0xD485C01B, 0xF9EA23A9, 0x598F2166, 0xB2E19B54, 0x0519CD59, 0xCC8365B7, 0x3A513292},
16105 {0xFD8A8DBC, 0x39266025, 0x4AEFA7EB, 0x42D9FE56, 0x0748AD56, 0x8A0D93F3, 0x0BF2B371, 0xB138EB0D} } ,
16106 { {0x5CF7878E, 0x099EF906, 0x2F008A92, 0x90E07E86, 0xCA91A390, 0xF7DCFD5D, 0x48DF4FD8, 0x2D7609E7},
16107 {0xB48229DF, 0x9EFB19A5, 0x6B04749E, 0x5C10E6C6, 0xB3E6DD52, 0x3FB42A7B, 0x07AD6A2E, 0x5C9F1855} } } } ;
16108 static const fp12_t var_expected = { { { {0x491F92F6, 0xCD72823C, 0xF1A2962F, 0x7A440F0E, 0x3B57FDA7, 0x380BC499, 0x1AFBE82E, 0xB1DD2047},
16109 {0xAC1A3D5D, 0x53C802ED, 0x58B1525C, 0xC259882D, 0x85D5FF1A, 0x4817C544, 0x0D184608, 0xB298D091} } ,
16110 { {0xBEDC57AE, 0xA15E836F, 0x4469210E, 0x8E0A8BF1, 0xE85BF584, 0x2957B999, 0x6CED012D, 0x1CE5923A},
16111 {0xB245B869, 0x8185E4B4, 0x3FAD7306, 0x0AFB2B75, 0x2257092E, 0xEF4F9A4B, 0x230663EB, 0xA74FAFAB} } } ,
16112 { { {0x074E02A8, 0x87F2A44F, 0xF379F5F2, 0x3F6D5602, 0x80ED504A, 0xFA118C6F, 0xD24EE5F5, 0x3868D7ED},
16113 {0x0209A5DA, 0xD75A5161, 0xDF4579B2, 0x481DDFAD, 0x60B6020B, 0x7348BDA0, 0x59A70EF7, 0x6EBE30BE} } ,
16114 { {0x31B79476, 0x625FD6B4, 0x51565B55, 0x0CB9C0DE, 0x99B5776E, 0x17EB6CFE, 0xB57E4561, 0x9D65A27A},
16115 {0xE230F72F, 0x0F901834, 0xA0CD5DDA, 0x0F024829, 0x542F2597, 0xC16789C4, 0x00792FC4, 0x11765E3D} } } ,
16116 { { {0x861D7DA1, 0xA8CD3A89, 0x9CE754F2, 0xCC6BE0A5, 0x63182C8F, 0xA56E3FCF, 0xE9D9A60A, 0x6C0B8FE2},
16117 {0xC3799FA9, 0x358D8A02, 0x539CADF9, 0xC2753D66, 0x4337A34D, 0xCBC0AD54, 0xC3F78605, 0x210B7A09} } ,
16118 { {0xB610A301, 0xC04722D2, 0x30D234EE, 0x54BC375E, 0xE9295221, 0x27CA5B1C, 0xAAC7C666, 0x5DA525FE},
16119 {0x8212372D, 0x65905C24, 0xD4B69F8A, 0x08E01DFD, 0xCC413ED2, 0x7B123403, 0x3C0048B7, 0x07CD3F30} } } } ;
16121 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4005 a000");
16122 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4006 a001");
16123 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4007 a010");
16124 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4008 a011");
16125 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4009 a100");
16126 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4010 a101");
16127 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4011 a110");
16128 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4012 a111");
16129 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4013 a200");
16130 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4014 a201");
16131 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4015 a210");
16132 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4016 a211");
16135 static const fp12_t var_a = { { { {0x733DE863, 0x7707E2B3, 0x75E3A8C5, 0x239E629A, 0x2FD23D8E, 0x3C770450, 0x3E9A5FEF, 0x80C61426},
16136 {0x96B46F6D, 0xEF9EE09B, 0xB27FC7E6, 0x2B55FB49, 0x968BFA57, 0x732DD591, 0x35C9961B, 0x61499390} } ,
16137 { {0xDF948EDD, 0xB727A570, 0x9A10B62C, 0x901958A4, 0xA29A75AD, 0x79CB8198, 0x47376429, 0x4A6090D6},
16138 {0x97C98C6D, 0x3E1CCC7B, 0x170DAB03, 0x0F96D0EA, 0x6962FAFF, 0x045A43C3, 0xFDAED35D, 0x4F6D0C13} } } ,
16139 { { {0xC873F8D8, 0x48B90E71, 0x37D33DCC, 0x9B52AB0F, 0x8267B82D, 0xDDE67CD5, 0xC377C1C3, 0x7A045AFA},
16140 {0xC25E2543, 0x6C74B1D0, 0xADE8465B, 0xDBA6E073, 0x8D7C2CA3, 0x639307BD, 0x698E6F0C, 0x47B6AED5} } ,
16141 { {0x988476CC, 0x96C2DAD3, 0x4FCB5790, 0xA97C59FE, 0xA9FED2EA, 0x07F381F7, 0xA26D59DB, 0x27AA12A3},
16142 {0x3E766E85, 0x88400348, 0xC1D94D81, 0x81D0A711, 0xA83EAB70, 0xD3595FAA, 0x4847AC67, 0x42F51B16} } } ,
16143 { { {0xF7DD6CFB, 0x50BF37A8, 0x219BB77A, 0x5F6ED735, 0x2F4EA353, 0xD2BA9EE5, 0x1689EA0A, 0xA4370B62},
16144 {0xFB776E1D, 0xDBAE2B1D, 0x3291AEE6, 0x806F632C, 0xEF8A2E98, 0xC1361ABC, 0xAD1C6ECA, 0x66E1F02B} } ,
16145 { {0xCF9206EF, 0x62704E10, 0x2FF7B146, 0xA2F140E5, 0x6DFCB28D, 0x5C7A0D32, 0x90A8E34F, 0x86D21EFD},
16146 {0xDA057F1B, 0xF606E507, 0x220B7AAE, 0x238F22A0, 0xDF6F05A3, 0xFACC2868, 0x678CE896, 0xB8A27666} } } } ;
16147 static const fp12_t var_expected = { { { {0x733DE863, 0x7707E2B3, 0x75E3A8C5, 0x239E629A, 0x2FD23D8E, 0x3C770450, 0x3E9A5FEF, 0x80C61426},
16148 {0x96B46F6D, 0xEF9EE09B, 0xB27FC7E6, 0x2B55FB49, 0x968BFA57, 0x732DD591, 0x35C9961B, 0x61499390} } ,
16149 { {0x8297A5BE, 0x47C6E440, 0x3A67291A, 0x82F853FC, 0xB1481407, 0x8194DAD2, 0xF8E777FF, 0x6FB30DEB},
16150 {0xCA62A82E, 0xC0D1BD35, 0xBD6A3443, 0x037ADBB6, 0xEA7F8EB6, 0xF70618A7, 0x427008CB, 0x6AA692AE} } } ,
16151 { { {0x1FE47BDF, 0x1D76825D, 0xE03AA1B5, 0x2CAEDA9B, 0x37A2DF9C, 0x2C6B9D7A, 0x38134128, 0x11B0BAB2},
16152 {0xC34CDC7E, 0x1BE75A92, 0x08D0D373, 0xE5AAA5E9, 0x59ED6724, 0xDD9A9950, 0x5EDAE6B1, 0x8CCDFFE8} } ,
16153 { {0x471C0D47, 0xDBEF6E7E, 0x8D8C843E, 0xE060F678, 0xFC85639A, 0x149AB5A4, 0xF224A00D, 0x12576AF9},
16154 {0x4756CF31, 0x8850114F, 0x8AAD423E, 0xF124BB8D, 0xC25F159F, 0x932940F5, 0xAA9FD5B2, 0x9E3E3D0B} } } ,
16155 { { {0x3F68F049, 0x8ED94380, 0xAC854217, 0x47210100, 0x74E38EBA, 0x7523D50F, 0xC0F8A170, 0x7FAD9096},
16156 {0xC74E7292, 0xBC44E4E4, 0x976E31E1, 0xC6DFC958, 0x38D0DAB9, 0xF4F72006, 0xDD17F9F3, 0x4F8E7E0D} } ,
16157 { {0x6A4E3205, 0x8E7416AE, 0x8A0F66D9, 0xB201CA50, 0x0FC905F8, 0xB822309F, 0x082CDD03, 0x18813555},
16158 {0x16DD4966, 0xA109817A, 0xDE03BDAE, 0xC76F987B, 0x7C104551, 0x6CD57FFD, 0x1CDFE71B, 0xB469CBF8} } } } ;
16160 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4017 a000");
16161 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4018 a001");
16162 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4019 a010");
16163 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4020 a011");
16164 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4021 a100");
16165 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4022 a101");
16166 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4023 a110");
16167 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4024 a111");
16168 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4025 a200");
16169 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4026 a201");
16170 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4027 a210");
16171 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4028 a211");
16174 static const fp12_t var_a = { { { {0x04BB1961, 0x49546411, 0x25337E0E, 0x27A4F8B8, 0x423172E0, 0x02973989, 0xC2905767, 0x0614BD49},
16175 {0x11E34086, 0x88477A7D, 0xA4C55819, 0x484D0FE0, 0x43EE3B07, 0x85991978, 0x74684B03, 0x89972172} } ,
16176 { {0x27D19946, 0xCCA7044F, 0x822D6A7A, 0x43E1C899, 0xA274D0CB, 0xB7070D6E, 0x61E7F4C1, 0x98F42FB7},
16177 {0x22B03D3D, 0x8C9C4ED6, 0xF3C64C6F, 0xC41F2207, 0xE4F4A244, 0xD97022F5, 0x6FEE1B64, 0x233633E9} } } ,
16178 { { {0xEF588D53, 0x032B2A77, 0xAA65821A, 0x8BC35921, 0x6A987219, 0xB45AEC4B, 0x5693590E, 0x48953F0B},
16179 {0x6ED95217, 0xB05855FB, 0x30049ABA, 0xF894DC12, 0x4B1639E1, 0x158F57C5, 0x650D1CFB, 0x868659CB} } ,
16180 { {0xF39E0FD3, 0xD76FF829, 0x5F4A969F, 0x92FA33CC, 0xD33583AE, 0x4D18C6B4, 0xFDD3895B, 0x4242D4C6},
16181 {0xC870F5E0, 0xFE53F821, 0xE7632E6B, 0x841906C5, 0xFE20677C, 0xB24DDD9E, 0x150D3A4D, 0x44DDC84B} } } ,
16182 { { {0xA93A14B5, 0x70E68ED7, 0xCC26E31E, 0x1B86C923, 0x018702A4, 0x1CF058CC, 0xB54B1C8C, 0x37F1274C},
16183 {0x46A78662, 0xBD7ADBF1, 0xE5892220, 0x49840E79, 0xC28EAAD5, 0x685675F4, 0x7B9E2959, 0x2CD52785} } ,
16184 { {0xC48AA74E, 0x385B5D69, 0x5F6BF367, 0x25D87F35, 0x5B99378C, 0xF9A9C214, 0x19EEB8C7, 0x176611B4},
16185 {0x3D1D9A5C, 0x785D8AB4, 0x39A7E388, 0x6926FD03, 0x9BD41694, 0x323373B4, 0xD4AB9044, 0x515FAD0F} } } } ;
16186 static const fp12_t var_expected = { { { {0x04BB1961, 0x49546411, 0x25337E0E, 0x27A4F8B8, 0x423172E0, 0x02973989, 0xC2905767, 0x0614BD49},
16187 {0x5048F415, 0x76A70F34, 0x2FB2872D, 0xCAC49CC0, 0x0FF44EAD, 0x75C742F3, 0xCBB69125, 0x307C7D4F} } ,
16188 { {0x62C63F95, 0x687F5990, 0xDC29E801, 0xDC219BD2, 0x0C67B5E8, 0x50ED1914, 0x100D9A64, 0x6B3786FE},
16189 {0xDAF89842, 0x15265803, 0xE41614E3, 0xDCD29B40, 0x2E34C5B4, 0x293296F3, 0x24C550EC, 0x8022257F} } } ,
16190 { { {0xE96CAF77, 0x1AA57727, 0xBFB6378A, 0x8CB5F02D, 0x283A6408, 0xA4FD364B, 0xB4B38232, 0x9532E7C0},
16191 {0x9F8EC940, 0x9A24279E, 0x7997FD44, 0xB7A6A3B3, 0xAA560575, 0x46305B4F, 0x38FCA465, 0x940343B4} } ,
16192 { {0x6E8E24C8, 0x277E9187, 0x752D48A7, 0x801778D4, 0x80AD0606, 0xAE4795B6, 0x424B52CD, 0x77D0C9FB},
16193 {0xC870F5E0, 0xFE53F821, 0xE7632E6B, 0x841906C5, 0xFE20677C, 0xB24DDD9E, 0x150D3A4D, 0x44DDC84B} } } ,
16194 { { {0x1B84AE39, 0x4173ADC0, 0xEEEEBD26, 0xC98D9E26, 0x9153DEDF, 0x9309E676, 0xC480B2CF, 0x8D3E773C},
16195 {0xB8F21FE6, 0x8E07FAD9, 0x0850FC28, 0xF78AE37D, 0x525B8710, 0xDE70039F, 0x8AD3BF9C, 0x82227775} } ,
16196 { {0x7C221540, 0x576D4C12, 0xE5F47B92, 0x23087FEB, 0x6143F033, 0x2E26A8D0, 0xDC0ECA31, 0xB6F0557A},
16197 {0x2643518B, 0x5AB9648E, 0x528335AB, 0x6A972166, 0xA9EA1CF9, 0x5D239E0A, 0xBA1C3659, 0x0202DEC4} } } } ;
16199 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4029 a000");
16200 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4030 a001");
16201 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4031 a010");
16202 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4032 a011");
16203 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4033 a100");
16204 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4034 a101");
16205 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4035 a110");
16206 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4036 a111");
16207 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4037 a200");
16208 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4038 a201");
16209 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4039 a210");
16210 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4040 a211");
16213 static const fp12_t var_a = { { { {0x03D3E29A, 0x3B05AF1A, 0xD786F303, 0xC67D3213, 0xF3E4703B, 0x849D0B0B, 0xFDB576C1, 0x07D00FB3},
16214 {0x9F181577, 0x41327062, 0xF6C0A90B, 0x2E4A7124, 0x44DB43AE, 0xCEB2CA30, 0x47DEF4ED, 0x9E2808EE} } ,
16215 { {0xD2FD09BC, 0x42875D6B, 0x379ED41B, 0xEC88149D, 0x04339037, 0x6337D97B, 0x81BCF8F4, 0x9CF723D3},
16216 {0x6875F18E, 0x2855A487, 0x422EADD6, 0x512EAF8B, 0x7C187688, 0xE18459A9, 0x21525F75, 0x95E1F040} } } ,
16217 { { {0x91332762, 0x4EA55BA1, 0x81E24EA6, 0x004DD2DA, 0x1AEB33E2, 0x1BCEAFE9, 0x1F2E5B22, 0x342CEA98},
16218 {0x61F63BD7, 0x07540F16, 0xA3821031, 0x700CCB33, 0xF1FDE39B, 0x989128DF, 0x78191FE1, 0xB64C1C68} } ,
16219 { {0x515EAFA0, 0x15FBA3BD, 0x1C31576F, 0x6DEFB855, 0x36E8018D, 0x13DC0ADF, 0xAFD3810B, 0x6EC63BD2},
16220 {0xBB56DCD2, 0x32ACDDC0, 0xA47F15B2, 0x986AB6D5, 0xC46519B8, 0xF95AC0C8, 0x47DFAC77, 0x3F59493C} } } ,
16221 { { {0x610EDAC1, 0x8A7B1363, 0xB49368DD, 0xE2CA0D5A, 0x99C740DB, 0xEE3EFDD1, 0x4A5E2815, 0x25801D7D},
16222 {0xE67F53C0, 0x3FDAD909, 0x0C5B0557, 0x156CB4E7, 0x57F440DE, 0x48EE11DA, 0xC5FED5E7, 0xAC3F758B} } ,
16223 { {0x538A97D1, 0xE4C0AD9C, 0x30D067AC, 0x4B3F86C6, 0xC4F88C70, 0x9287D031, 0x49F7ACE9, 0x77445A3A},
16224 {0x326D2F0C, 0x04BC611C, 0x11D71779, 0x62904F35, 0xF645E1D6, 0x0FD453DC, 0x2BF46DBB, 0x013D6154} } } } ;
16225 static const fp12_t var_expected = { { { {0x03D3E29A, 0x3B05AF1A, 0xD786F303, 0xC67D3213, 0xF3E4703B, 0x849D0B0B, 0xFDB576C1, 0x07D00FB3},
16226 {0xC3141F24, 0xBDBC194E, 0xDDB7363B, 0xE4C73B7B, 0x0F074606, 0x2CAD923B, 0xF83FE73B, 0x1BEB95D3} } ,
16227 { {0x79F0A53A, 0x9B4C9CF5, 0xFE1FD7B3, 0x648DAC2E, 0x07F10A73, 0x89CA5635, 0xD549F3CF, 0x648912CA},
16228 {0xB80803E6, 0xF260AC47, 0xBF87BB39, 0x3A00CFB5, 0xCCA962EC, 0x756D84A7, 0xC86F2EF6, 0x5AD01060} } } ,
16229 { { {0x1CA4F030, 0xA892F8AD, 0x59F3401D, 0x801403E6, 0x6A255BA0, 0x16FC98C6, 0x74A0CB5C, 0x6E1D41F3},
16230 {0x14640B4F, 0x94FA468E, 0x609B805F, 0xFA34F36F, 0xE592A364, 0x563CE0FA, 0x0FCCA7F8, 0x2E821502} } ,
16231 { {0x1DCF0748, 0x548453A4, 0xFD951F38, 0xC0F75628, 0x1765372A, 0x2359035A, 0x3DB81291, 0x9BA2EDAD},
16232 {0x85DF629D, 0xC6FB337E, 0x5588A704, 0x57CE5369, 0x5AF12452, 0x04B7FCFC, 0x4BC98A0E, 0x91820DE6} } } ,
16233 { { {0x200E75DE, 0xC1084412, 0xF4988430, 0x1FBE398F, 0xC5D731A0, 0x4EE426CD, 0xB773F627, 0x7A912EFE},
16234 {0x9736A493, 0x8B5808BA, 0x12F6A922, 0x681F6148, 0x2B6CDD24, 0x5428D6DF, 0x66D2FF10, 0x82FEFE36} } ,
16235 { {0xF8A130DC, 0xF2A24428, 0x8F4FA7A7, 0x77C78DB2, 0x167D89C5, 0x3C7BD5C2, 0x4014EF65, 0x3F1A5263},
16236 {0xE0E4F65A, 0x834AB545, 0x6E1CF573, 0xB635D8E3, 0x91870DAB, 0x72BFFADC, 0xEFA3D9AF, 0xA04E138D} } } } ;
16238 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4041 a000");
16239 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4042 a001");
16240 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4043 a010");
16241 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4044 a011");
16242 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4045 a100");
16243 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4046 a101");
16244 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4047 a110");
16245 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4048 a111");
16246 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4049 a200");
16247 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4050 a201");
16248 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4051 a210");
16249 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4052 a211");
16252 static const fp12_t var_a = { { { {0x67CAA65E, 0xF9DE2A12, 0x975C95FD, 0xB9F88A68, 0xD58153E9, 0x78CDF1F6, 0x244A185B, 0x46D09EA3},
16253 {0x3E43A834, 0xB72B52AF, 0xBE0EE5E6, 0x6617690E, 0x30F5E232, 0x830A5CF7, 0xC62220E7, 0x3B74C838} } ,
16254 { {0xEF9D4DAA, 0x62EF670B, 0x5927B8EF, 0xB9FB44B2, 0xED6CC2F7, 0xB589661D, 0x0A6E39F7, 0x19B310F9},
16255 {0xF0F29F59, 0x7CD48969, 0x43CAD447, 0x50DD72DE, 0x50EC57FB, 0x151E6DF8, 0x3EA14BE1, 0x582B5544} } } ,
16256 { { {0x6E1D6F31, 0xE2960B74, 0x49194FFF, 0xC62188F3, 0xEC6DE638, 0xC3135303, 0xA75E8963, 0x217E105E},
16257 {0x6E2D084E, 0x581DC1E0, 0xD3967331, 0x1EFFAA17, 0xD1B2D9D8, 0x75507E52, 0xB9931726, 0x15A2BBF8} } ,
16258 { {0x63786003, 0x0771694F, 0x46797521, 0xEEE66DD3, 0x67DD842A, 0x178445BD, 0x61D82D1A, 0x2C02FEA7},
16259 {0x3989B55F, 0xFB92BE26, 0xC504B4CD, 0x179E63D7, 0x3D55EBF7, 0x3348E3EB, 0x7CC87FD8, 0x1953D99D} } } ,
16260 { { {0x6B8260A0, 0xA3555B49, 0xEF5DAA63, 0x471A20C6, 0x37863A5F, 0x77F575F4, 0x1D7DD6FC, 0x17206FFD},
16261 {0xEF282B47, 0x54844C04, 0x291C93D6, 0x807959B1, 0x61B9BBD1, 0x32BA82C0, 0x4B23FBA2, 0x1D8B4B7F} } ,
16262 { {0x2561BE62, 0xC70EBC91, 0xCF54B4A9, 0x4ECD35F7, 0x1ED71C64, 0xE2749733, 0x80C06560, 0x77B6AD90},
16263 {0xA9B7B53C, 0x97004DD4, 0xAE249B6D, 0xBC902960, 0xA147C8C4, 0x9DCFC839, 0xAB0040E0, 0xA60D32AB} } } } ;
16264 static const fp12_t var_expected = { { { {0x67CAA65E, 0xF9DE2A12, 0x975C95FD, 0xB9F88A68, 0xD58153E9, 0x78CDF1F6, 0x244A185B, 0x46D09EA3},
16265 {0x3E43A834, 0xB72B52AF, 0xBE0EE5E6, 0x6617690E, 0x30F5E232, 0x830A5CF7, 0xC62220E7, 0x3B74C838} } ,
16266 { {0xEF9D4DAA, 0x62EF670B, 0x5927B8EF, 0xB9FB44B2, 0xED6CC2F7, 0xB589661D, 0x0A6E39F7, 0x19B310F9},
16267 {0xF0F29F59, 0x7CD48969, 0x43CAD447, 0x50DD72DE, 0x50EC57FB, 0x151E6DF8, 0x3EA14BE1, 0x582B5544} } } ,
16268 { { {0xF492C111, 0x513526DE, 0x7A38E8A3, 0xAD2D74F9, 0x1AA55414, 0x4E1213FF, 0xFFFB3C46, 0x8B25A1C6},
16269 {0x08BED9C8, 0xE98D5780, 0x2643B1F8, 0x25C4DB37, 0x11E6C2CA, 0x2E015BD2, 0xF5987B6E, 0x2E96EE75} } ,
16270 { {0xCC835E07, 0x93D6BF39, 0x77B52EE0, 0x803035B3, 0xD69EB8E9, 0x1DE4D5A0, 0xEB7BB8AB, 0x6253150F},
16271 {0x8D8F14B9, 0xDE7C1AF1, 0xDBFD27E4, 0x1156D4C0, 0x8C119778, 0x9086C98C, 0x4A21351C, 0x46AB1201} } } ,
16272 { { {0x8CD100EE, 0xFF9F1CC7, 0x8574460D, 0x1B45ED75, 0xEC69659D, 0xEB987A6C, 0x65B00D70, 0x3FF1699C},
16273 {0x1C28C6B3, 0xFC2AC078, 0x9EBA129C, 0x4E6CAC7F, 0x2BBA80AE, 0x73F69A6B, 0xF198F394, 0x753F0EBE} } ,
16274 { {0x2E3E20A6, 0x6502B6B9, 0x18C42E81, 0xA58231A1, 0x3FA5D265, 0xC9EE7FFA, 0xAF4496C0, 0x9816225B},
16275 {0x422ECEAE, 0xBD7429A3, 0x633EBC62, 0x97D40E2C, 0x63EBF00E, 0x83DFE1AA, 0xE8E1F5AF, 0xABE2E044} } } } ;
16277 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4053 a000");
16278 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4054 a001");
16279 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4055 a010");
16280 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4056 a011");
16281 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4057 a100");
16282 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4058 a101");
16283 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4059 a110");
16284 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4060 a111");
16285 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4061 a200");
16286 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4062 a201");
16287 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4063 a210");
16288 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4064 a211");
16291 static const fp12_t var_a = { { { {0xA60CB348, 0x497EBB98, 0xC4C23198, 0x335B6FBE, 0x86895194, 0x1F5187B9, 0xA03185D0, 0xAF9B6544},
16292 {0x96A91B39, 0xE616AB01, 0x339205C0, 0xBD4C3AE9, 0xA90D1EEB, 0x9F30BCF9, 0xCF1F02B7, 0x222780B6} } ,
16293 { {0x3538F730, 0xF7730A36, 0x58209622, 0x0FEC423B, 0x9664A99D, 0x82401650, 0xEEAE604E, 0x1584DA52},
16294 {0x01FABB67, 0x027D2879, 0xDA92C4B7, 0x2B1A5DF3, 0x4F8C5DC1, 0xE7AE8A16, 0x693B4C4B, 0x3499CCCC} } } ,
16295 { { {0x3246BEF1, 0x29D13E59, 0xCE0DEB8E, 0x13C69876, 0xA3BC0BA4, 0x63E4F7E8, 0x4DEBA6E1, 0x05A69CE5},
16296 {0x0A8C4F64, 0x9B71290A, 0x7D2A5660, 0x0C32A10E, 0xF6BC017D, 0x47BA4E8C, 0x4D1D3EF5, 0xA704C0B4} } ,
16297 { {0x6FBC89A2, 0x20CA158A, 0xBDF88688, 0xBA085032, 0x1BF8342D, 0x40611ABA, 0xFEA190A8, 0xB6842504},
16298 {0xCBD3602F, 0x8F9DBE24, 0x4C5F14A3, 0xB5A8DB4D, 0x29F404B3, 0xCCD7B471, 0x9B3A1795, 0x7F124039} } } ,
16299 { { {0x89461F3C, 0x575410F0, 0x4994D1A8, 0x0C2F7690, 0xFBF641EB, 0xBF509B8F, 0x8189AC8A, 0x861962C5},
16300 {0x9B7D53FC, 0xF99A98C2, 0xB9251BA2, 0xBD51D339, 0xB0BAB3D9, 0xC2E9780B, 0xB492D20C, 0x02B73220} } ,
16301 { {0xF7624076, 0x8B50DBB3, 0x03928C35, 0x3E0A9FCF, 0x2B321243, 0xCFB1617F, 0x59CCF7B5, 0x5CBCA6A7},
16302 {0x15FE2217, 0x37C5E65F, 0x7470A061, 0xF70F2FDA, 0x935DA2EE, 0xB7FFF7AF, 0x3ABF1DCB, 0xB4812704} } } } ;
16303 static const fp12_t var_expected = { { { {0xA60CB348, 0x497EBB98, 0xC4C23198, 0x335B6FBE, 0x86895194, 0x1F5187B9, 0xA03185D0, 0xAF9B6544},
16304 {0xCB831962, 0x18D7DEAF, 0xA0E5D986, 0x55C571B7, 0xAAD56AC9, 0x5C2F9F71, 0x70FFD971, 0x97EC1E0B} } ,
16305 { {0xF857AA3F, 0xCE11B1A8, 0xE3B67C89, 0x0C545EDF, 0xB96B172D, 0x793C861A, 0x86426B82, 0x4E64FA1E},
16306 {0x04D7A7A6, 0xA9B1AE86, 0xF7781FE7, 0x4A9CEA77, 0xE322746F, 0x9071D87D, 0x377B73D2, 0x41589D44} } } ,
16307 { { {0x0E885DE2, 0xCE0A3D1F, 0xD6D8D351, 0x4A434250, 0x30B6A13F, 0x2C2E93C9, 0x61B32F49, 0x5DFB58AC},
16308 {0xCFD3E1F9, 0x2C7DFE01, 0x54F349C4, 0x96A7BA30, 0xFB76534C, 0x6054DC1F, 0x38C8FD6C, 0x28EC7B61} } ,
16309 { {0x79AD993E, 0x955D47D0, 0xAA328DEC, 0x92663572, 0xF41B6A69, 0x1BA4279E, 0x5A5265B5, 0x7B95B501},
16310 {0xB9CD4C22, 0x00441A85, 0x8413CFFF, 0x1F1B63E4, 0xCB247185, 0x89657905, 0xD179AB5F, 0x306D4A4D} } } ,
16311 { { {0x173C00E7, 0x895BB108, 0x20E36833, 0x543A6D87, 0x3E402DB2, 0xC37F3297, 0xA33507F5, 0x10664F9F},
16312 {0xE4DB6F89, 0x2C9BA474, 0xF4251534, 0x6A53EFEE, 0x238065D1, 0x5B67EB87, 0x63DD0D11, 0x141FF06B} } ,
16313 { {0xB6FEE976, 0x554EAC2D, 0x8D948CDB, 0x4DD61055, 0x73821DA2, 0xE7ADD62E, 0x692D75FA, 0x576D6F0B},
16314 {0x45F2CF97, 0x9652938D, 0x8C3E5372, 0xBCF26CB1, 0xE5086408, 0x9A4DE12C, 0x6FBB935A, 0x7FFE9C4A} } } } ;
16316 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4065 a000");
16317 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4066 a001");
16318 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4067 a010");
16319 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4068 a011");
16320 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4069 a100");
16321 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4070 a101");
16322 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4071 a110");
16323 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4072 a111");
16324 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4073 a200");
16325 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4074 a201");
16326 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4075 a210");
16327 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4076 a211");
16330 static const fp12_t var_a = { { { {0x5BEDF42A, 0x7320DF2A, 0xBA48C138, 0xBD29FD3D, 0xC522F9A6, 0xD52EE9B9, 0x9C18764A, 0x45378374},
16331 {0xEBAB416F, 0x1122E5F6, 0xE5088A29, 0x704070B7, 0x79259816, 0x1D7E26C5, 0x7726D6F2, 0x0D043442} } ,
16332 { {0xFBAF497E, 0xF5AD62A0, 0x1F4067B0, 0x8629DAD7, 0x57086AAB, 0x610E8A63, 0x937E9209, 0x4749A0DD},
16333 {0xADB842B1, 0xA99E1036, 0xE2B39B5D, 0xDBB48C51, 0x988310E5, 0xD6A15426, 0x1038B845, 0x4F5F9D0B} } } ,
16334 { { {0xD90A320B, 0xB8EA2F2E, 0x3A835D57, 0xB005DEB3, 0xE8A15E74, 0x781E574E, 0x6112465D, 0xA143726C},
16335 {0x89F3EB75, 0x34A18769, 0x4945481B, 0x291BF2E4, 0xE81A7DFA, 0x87C2812B, 0xCEAB117B, 0x6099D1B9} } ,
16336 { {0x18EE5D12, 0x3507EBA3, 0xF0FFA4F0, 0xBAD74F99, 0x599AC620, 0x0909190B, 0xB2E8D105, 0x182644DA},
16337 {0x40783F43, 0x4E70DC5E, 0xA3C61ED7, 0xF6EDD234, 0xEB48DB3C, 0x3E7DEC10, 0xFF472AAF, 0x274120D5} } } ,
16338 { { {0xA5268ECC, 0x20C03EA0, 0xBF6C458D, 0xADC33EA5, 0x1B21F9C0, 0x2E44F408, 0x7668BC4D, 0x9C21FDEF},
16339 {0x5F67F656, 0xCDA6950E, 0x0CEEF027, 0x6D3A00E8, 0xB293DF22, 0x34871459, 0x308960A2, 0xB41E37DE} } ,
16340 { {0xFBC6C0B1, 0x79AA3A42, 0x90F2BFE5, 0x4E4B911A, 0x9475BEF6, 0x63829C94, 0x17C34551, 0x45CF0836},
16341 {0x014E7E3A, 0xCC7E97CF, 0x0DD20FBC, 0x71F3B52F, 0x414039DC, 0x0813D030, 0x6D24BE2E, 0x3F699B49} } } } ;
16342 static const fp12_t var_expected = { { { {0x5BEDF42A, 0x7320DF2A, 0xBA48C138, 0xBD29FD3D, 0xC522F9A6, 0xD52EE9B9, 0x9C18764A, 0x45378374},
16343 {0x7680F32C, 0xEDCBA3BA, 0xEF6F551D, 0xA2D13BE8, 0xDABCF19E, 0xDDE235A5, 0xC8F80536, 0xAD0F6A7F} } ,
16344 { {0xCD846BA3, 0x7BC0FD32, 0x46B0E501, 0xC097CF30, 0x893C6558, 0xCC3B6BAA, 0xE6CB6027, 0x3A089CA6},
16345 {0x4D8FC656, 0xAB0309D9, 0xDCE43CA7, 0x9F43CBF7, 0x2E202C27, 0xB5DA3DB1, 0x5E7BB6F0, 0x5142BD7B} } } ,
16346 { { {0x4B9C03A9, 0x56B5DB2E, 0x22577CF3, 0xCF18123B, 0x1479173F, 0x6CD7BAB0, 0x20620E99, 0x2D0DDFE5},
16347 {0x33FCF4C0, 0xECB69E35, 0xE2228864, 0x80575928, 0xC53B9763, 0x5F241D64, 0x16DD6522, 0x81C0962B} } ,
16348 { {0x493DD789, 0xC9E69E0E, 0xE3783A56, 0x583A5D06, 0xFA47C394, 0xF257435F, 0x8D360B23, 0xA1ED59E7},
16349 {0x40783F43, 0x4E70DC5E, 0xA3C61ED7, 0xF6EDD234, 0xEB48DB3C, 0x3E7DEC10, 0xFF472AAF, 0x274120D5} } } ,
16350 { { {0x02C43E45, 0x3147F4A3, 0xC788EF1F, 0xA5D7ABB8, 0xA14EAA92, 0xC6D94811, 0x0F957B86, 0x05F566E4},
16351 {0xBD05A5CF, 0xDE2E4B10, 0x150B99B9, 0x654E6DFB, 0x38C08FF4, 0xCD1B6863, 0xC9B61FDB, 0x1DF1A0D2} } ,
16352 { {0x06E5278A, 0x52BEF9A2, 0x96262D25, 0x8569D61B, 0x6A764ED3, 0x5EBDCA45, 0xFBA791B5, 0x6495036E},
16353 {0xC23C0FF5, 0xC92A0269, 0x5BADE171, 0x93ADE556, 0x94628C14, 0xEC1F5307, 0xA525620D, 0x5E95B0E8} } } } ;
16355 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4077 a000");
16356 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4078 a001");
16357 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4079 a010");
16358 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4080 a011");
16359 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4081 a100");
16360 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4082 a101");
16361 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4083 a110");
16362 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4084 a111");
16363 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4085 a200");
16364 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4086 a201");
16365 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4087 a210");
16366 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4088 a211");
16369 static const fp12_t var_a = { { { {0x11042F7F, 0xE70B901E, 0x73BF0513, 0x32020883, 0x3A634633, 0x0789FA7E, 0x3EE2ED60, 0x4499B7A3},
16370 {0xD9ADC09E, 0x940FB79F, 0xA26253BB, 0x17B58E7E, 0xC306FFA5, 0x7FE5F6BF, 0x6E0F4713, 0x04A2FBF9} } ,
16371 { {0x9E5CF57D, 0xC91C6809, 0x8CF5AA78, 0xE51E2013, 0xC97821DB, 0xAFFCF17B, 0xB6DEB6A5, 0x28F68B6F},
16372 {0x2EA6385C, 0x19AD7E27, 0x1603B296, 0xF4C3FD10, 0x847F98EE, 0x4718A8D5, 0x3DE9C3C6, 0x074A2D5E} } } ,
16373 { { {0x815DE429, 0xC7390BA0, 0x7A0B1EEF, 0x7BD43C87, 0xE0477AFF, 0x54363E93, 0xF0FEE719, 0x32777D4E},
16374 {0x66275760, 0x5228335E, 0x7C880047, 0x5160336D, 0xB4CC99A4, 0xF659DE4C, 0x7CE28C12, 0xB2AD99B8} } ,
16375 { {0x76EA7397, 0xE8442FCA, 0x61FB141C, 0x1C1F1816, 0x3AAE650C, 0xB0DF7BAA, 0x1467250C, 0x136BCBF0},
16376 {0x38134295, 0xE9B0D610, 0x9E480B7D, 0xBDDCB027, 0x35B2F093, 0xF2D2706A, 0xB165C859, 0x2901F1DE} } } ,
16377 { { {0x09E3043A, 0x6DE38927, 0xFBCA91E3, 0x80085E42, 0x2639C04E, 0xAAF912CB, 0x8C64AF3A, 0xA828F52E},
16378 {0xAE004485, 0xBF21C94C, 0x2350EA62, 0xA2C911F6, 0xC8BC04CB, 0xC02E9FB4, 0xA6CB565D, 0xA237E991} } ,
16379 { {0xB2767E2F, 0xDE81865F, 0x40771ECF, 0x2ACDF88E, 0x385E2B23, 0x856CBFC3, 0x80C50CAA, 0xAF0FDB92},
16380 {0x63B22C26, 0xFD4FB572, 0x2BF2D71B, 0x24BBC5FC, 0x2100ABD6, 0x41470B03, 0xA31617F5, 0x7CA16DFE} } } } ;
16381 static const fp12_t var_expected = { { { {0x11042F7F, 0xE70B901E, 0x73BF0513, 0x32020883, 0x3A634633, 0x0789FA7E, 0x3EE2ED60, 0x4499B7A3},
16382 {0x887E73FD, 0x6ADED211, 0x32158B8B, 0xFB5C1E22, 0x90DB8A0F, 0x7B7A65AB, 0xD20F9515, 0xB570A2C8} } ,
16383 { {0x7E6B4897, 0xCD4EFE9D, 0xF1062F53, 0x2A08C1A5, 0x36F0F8BE, 0x2D77F7AE, 0x2923A2A7, 0x6FDBC00F},
16384 {0x6A96F5D2, 0x9A6A11EC, 0x1DB02986, 0xA147C82A, 0xE0DAEE8D, 0x84AC3F11, 0x4ECBCA8B, 0x618C7E2A} } } ,
16385 { { {0x425EE3F4, 0x7C5A1FE0, 0xF21D3C50, 0x4391FD3C, 0x277FB953, 0x95F7F13A, 0xD38FE61C, 0x51D85D74},
16386 {0x111ED369, 0x371652FA, 0x968D1493, 0x023071E5, 0x3B482DD3, 0x16EDE1BC, 0xB0CF59AE, 0x5CDD65E6} } ,
16387 { {0xEB41C104, 0x16AA59E6, 0x727CCB2A, 0xF6F2948A, 0x193424A8, 0x4A80E0C1, 0x2BB7B71C, 0xA6A7D2D2},
16388 {0x38134295, 0xE9B0D610, 0x9E480B7D, 0xBDDCB027, 0x35B2F093, 0xF2D2706A, 0xB165C859, 0x2901F1DE} } } ,
16389 { { {0xB42BF016, 0x3FCCC064, 0xB126F4E4, 0x70489AAA, 0x8B2684E9, 0x3B31BCB6, 0x995385CB, 0x17DBB530},
16390 {0x58493061, 0x910B008A, 0xD8AD4D63, 0x93094E5D, 0x2DA8C966, 0x506749A0, 0xB3BA2CEE, 0x11EAA993} } ,
16391 { {0x4F23CEF6, 0xA9CD5BBC, 0x7D8F3FD1, 0x92DB0A23, 0x826E1C64, 0x327D82AB, 0x3757ABFF, 0x29EC48B3},
16392 {0x452A86FC, 0x80961C56, 0x468063DC, 0xBBD2EB68, 0x2CEB0CF8, 0x1563A4EA, 0xE6D10377, 0x6D4C369F} } } } ;
16394 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4089 a000");
16395 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4090 a001");
16396 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4091 a010");
16397 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4092 a011");
16398 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4093 a100");
16399 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4094 a101");
16400 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4095 a110");
16401 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4096 a111");
16402 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4097 a200");
16403 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4098 a201");
16404 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4099 a210");
16405 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4100 a211");
16408 static const fp12_t var_a = { { { {0x3D9F0AD3, 0xB4F0E223, 0x00F0B688, 0xBF28AEA6, 0x2B57A25F, 0x946260D5, 0xB117057F, 0x5AA1EB44},
16409 {0x348A537F, 0xBA0E7678, 0x05A0DA1A, 0x60757DE3, 0xF2DE97F9, 0x86EB3EEC, 0x85953AC4, 0x33DA0404} } ,
16410 { {0xF3097C4B, 0x30EAB955, 0xD80A2387, 0x7171B900, 0xBFB83448, 0x4EFF210F, 0xE341EE35, 0x824C20B8},
16411 {0x6B16E472, 0xF562F1B3, 0xA9325C52, 0xC93F6021, 0x978F403D, 0x2C88E3C2, 0xA282B72E, 0x241A7A5A} } } ,
16412 { { {0xEA170A44, 0x88869777, 0xAAFAC756, 0x8F53D587, 0x630DD7AA, 0xB45307AC, 0x1049A862, 0xA207D12D},
16413 {0xC6275CDB, 0x924A534D, 0x4A7B7652, 0xF93758FA, 0x2AA28875, 0x7751549A, 0xEDB3B369, 0x6D61D8BD} } ,
16414 { {0xB02C5BB6, 0x5C835371, 0xFB82810C, 0x91D1AF17, 0xD5495216, 0x58F5612C, 0x6EF277D8, 0xA38FC952},
16415 {0xEA728FCB, 0x557B4FC9, 0xBD69A80B, 0x3C8F28D2, 0xB97C85C7, 0x291B7AAA, 0x3B03C12F, 0x2F6EE8FC} } } ,
16416 { { {0x12A9594E, 0x8D48241D, 0x9152E723, 0x317E5052, 0x110C3A23, 0x0C00C8ED, 0x70BA6101, 0xACADD297},
16417 {0xCC7449BB, 0x3DD11A9E, 0xB6BF025B, 0xB85B5CE1, 0x31291659, 0x22CB9FC2, 0xA0A31940, 0x9BF8E5E6} } ,
16418 { {0x1CBB2D44, 0x3DF89DC1, 0x70531E3F, 0x680C9D46, 0x546BE92C, 0xDF2542DA, 0xCD248616, 0x29C70DB8},
16419 {0xF4AD93C5, 0x8C67273C, 0x605BBB2D, 0x4C23AE5D, 0x73E29AA5, 0xA0C4D97A, 0xB29C5023, 0x0C0C6BF3} } } } ;
16420 static const fp12_t var_expected = { { { {0x3D9F0AD3, 0xB4F0E223, 0x00F0B688, 0xBF28AEA6, 0x2B57A25F, 0x946260D5, 0xB117057F, 0x5AA1EB44},
16421 {0x2DA1E11C, 0x44E01339, 0xCED7052C, 0xB29C2EBD, 0x6103F1BB, 0x74751D7E, 0xBA89A164, 0x86399ABD} } ,
16422 { {0x4932BD47, 0xB89012CD, 0xBABCA22E, 0x7D23B3CE, 0xA7C04071, 0x0616D515, 0xE32309F2, 0x4C869DA9},
16423 {0x6C97844D, 0x9E5DB6DE, 0xB0DA9F4A, 0xD5A95E83, 0x68EABE85, 0xDAD4C83E, 0xAE61C567, 0x6140D3AF} } } ,
16424 { { {0xFD08AD6A, 0xEB6FC918, 0xD03C00BC, 0xC485A989, 0x12642B91, 0x95C3D867, 0xCCCE07FB, 0x3E0748BD},
16425 {0x6A700398, 0x09DD345A, 0x50A394E0, 0x5DA7F2C6, 0x7E58CD55, 0xC45E98A1, 0x50C24577, 0xB0A0C054} } ,
16426 { {0x6D2F5E95, 0x6A7CE1BF, 0x6FBC9113, 0xF498C74F, 0xFE535504, 0x1C48B3EB, 0x0147F5E3, 0x7D2A84A2},
16427 {0x194FECBF, 0x447CC400, 0xC985767B, 0x24E3E211, 0xE1FC43FA, 0xC198B4C4, 0xDA0E2FF6, 0x565CC4FA} } } ,
16428 { { {0x1B128400, 0x36C51650, 0x1BB08B6B, 0xE09DB697, 0x5656566E, 0x1A6A9B47, 0x9EB68D63, 0x94589FB4},
16429 {0x00F73DCB, 0xAF0BD174, 0xBEA4D162, 0xF1BD1651, 0x7ACE7F39, 0x26DEBD58, 0x3C518829, 0x9647B0E8} } ,
16430 { {0x9F071AF1, 0x8B144780, 0xEE5E7566, 0xBD33F57E, 0xE8B1E1BF, 0xFABD24B2, 0xDABD4908, 0x82BE6B3D},
16431 {0x8962433F, 0x018D08FB, 0x38DAF01B, 0x6287338A, 0x18B32FDB, 0x2C50484B, 0x40234FD2, 0x194E2441} } } } ;
16433 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4101 a000");
16434 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4102 a001");
16435 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4103 a010");
16436 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4104 a011");
16437 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4105 a100");
16438 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4106 a101");
16439 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4107 a110");
16440 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4108 a111");
16441 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4109 a200");
16442 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4110 a201");
16443 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4111 a210");
16444 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4112 a211");
16447 static const fp12_t var_a = { { { {0x057B075F, 0x1C2E4BE8, 0xCC7E9549, 0xDEFA9DBD, 0x6FDF2101, 0x1BC85383, 0x24BF1D7F, 0x790C3268},
16448 {0x5DEF9B7B, 0xAF51F604, 0xC3E34643, 0x73ADE618, 0x6428C176, 0xEF9DFB6D, 0x10190D93, 0x457291E8} } ,
16449 { {0x8F076BA1, 0x9E3A938E, 0xDCA2E77A, 0x5F99E9CE, 0xBE9A1E20, 0x249CA9F2, 0x6BDA62BC, 0xAAF3A20A},
16450 {0x27E65CFC, 0x2B3DFAEA, 0xA4DF9108, 0x14B2AD09, 0x99A4CEE0, 0x0470651B, 0x22B84417, 0x30D8511C} } } ,
16451 { { {0x90DB9A2E, 0x71680114, 0x789D4566, 0xA6989145, 0xBCD04D0E, 0x6FEA7551, 0x452E1254, 0x193FE0BA},
16452 {0x88C8FE12, 0xD6F27D75, 0x2EE7EE63, 0xA8B834AA, 0xC469254A, 0x4D3E97D6, 0xC8DF5A28, 0x862160B0} } ,
16453 { {0xBBF63E9F, 0x9E04A206, 0x40811CC1, 0xF02531B4, 0x5CF92574, 0x2EEFB368, 0x83C02F2F, 0xABED021C},
16454 {0x28794733, 0x5B6A69D0, 0xA38873C4, 0xD3B31650, 0xFF71C008, 0xA88FF860, 0x332C6943, 0x9C90492C} } } ,
16455 { { {0xAE0274AF, 0x76A5964C, 0x179C575A, 0x49CD4A0B, 0xDB3459D4, 0xE92F5EEF, 0xB7C78BDA, 0x2619DF7F},
16456 {0xF0D6CE62, 0xA9E0F50B, 0x8464295F, 0x7C8954C0, 0xA26FA19A, 0x325C04A1, 0xD3A75C85, 0x09A7F403} } ,
16457 { {0xD69E20F5, 0x8546E13C, 0x7235689B, 0x4A7E8A54, 0x08A94A3E, 0x590BF546, 0xB0E96125, 0x7915CF08},
16458 {0x0A4D769E, 0xECA78934, 0x913D37D9, 0xC662B80D, 0x465DEF31, 0x48DD075F, 0x5ADBAD3B, 0xA0756F09} } } } ;
16459 static const fp12_t var_expected = { { { {0x057B075F, 0x1C2E4BE8, 0xCC7E9549, 0xDEFA9DBD, 0x6FDF2101, 0x1BC85383, 0x24BF1D7F, 0x790C3268},
16460 {0x5DEF9B7B, 0xAF51F604, 0xC3E34643, 0x73ADE618, 0x6428C176, 0xEF9DFB6D, 0x10190D93, 0x457291E8} } ,
16461 { {0x8F076BA1, 0x9E3A938E, 0xDCA2E77A, 0x5F99E9CE, 0xBE9A1E20, 0x249CA9F2, 0x6BDA62BC, 0xAAF3A20A},
16462 {0x27E65CFC, 0x2B3DFAEA, 0xA4DF9108, 0x14B2AD09, 0x99A4CEE0, 0x0470651B, 0x22B84417, 0x30D8511C} } } ,
16463 { { {0x7CEE4FB5, 0x9820C673, 0x6432C749, 0xE8C0E0C6, 0x3BFCC16F, 0x80922FA7, 0xA0A3EC3A, 0x397EDED2},
16464 {0xF4966B1E, 0xE187858A, 0xB935DC00, 0xF3D29485, 0x1283B79E, 0x1D01FA60, 0x77F13B5E, 0x8BCFE5E8} } ,
16465 { {0x84CF1911, 0x9D6837F2, 0xD4B85978, 0xD88CEC6D, 0x80FFE3E4, 0x1707C322, 0xF9C51FD0, 0x43553938},
16466 {0x7C388D6C, 0x0F051B6A, 0x63560515, 0xF842EAC1, 0x2A871286, 0x9A4C1D17, 0x70DA2BC1, 0x9FC0D45C} } } ,
16467 { { {0x7C47C14F, 0xA427234F, 0x48729981, 0x2E93BA74, 0x8DC1DC5B, 0xC8BC897A, 0xF7B51860, 0x2F5AD6B0},
16468 {0xA6A6E1D2, 0xE0EB2F54, 0x0522C601, 0x85D5E9F0, 0x28FDD7E8, 0x23FEDCDD, 0xFF1668DF, 0xB9B43CB0} } ,
16469 { {0x127D98AC, 0x055D5C5E, 0x82A1E6D9, 0x885A6D63, 0xBA73DD5B, 0x67AB69EB, 0x41301819, 0x9F324FCB},
16470 {0xE1F61F08, 0xBECA3442, 0xE3A41AC9, 0x25587E9D, 0xCDDF2FF9, 0x42990DDB, 0x04285AC2, 0x8803C0F4} } } } ;
16472 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4113 a000");
16473 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4114 a001");
16474 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4115 a010");
16475 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4116 a011");
16476 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4117 a100");
16477 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4118 a101");
16478 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4119 a110");
16479 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4120 a111");
16480 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4121 a200");
16481 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4122 a201");
16482 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4123 a210");
16483 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4124 a211");
16486 static const fp12_t var_a = { { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16487 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16488 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16489 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16490 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16491 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16492 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16493 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16494 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16495 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16496 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16497 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
16498 static const fp12_t var_expected = { { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16499 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16500 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16501 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16502 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16503 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16504 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16505 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16506 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16507 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16508 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16509 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
16511 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4125 a000");
16512 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4126 a001");
16513 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4127 a010");
16514 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4128 a011");
16515 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4129 a100");
16516 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4130 a101");
16517 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4131 a110");
16518 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4132 a111");
16519 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4133 a200");
16520 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4134 a201");
16521 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4135 a210");
16522 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4136 a211");
16525 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16526 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16527 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16528 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16529 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16530 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16531 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16532 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16533 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16534 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16535 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16536 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
16537 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16538 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16539 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16540 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16541 { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16542 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } ,
16543 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16544 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16545 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16546 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16547 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16548 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
16550 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4137 a000");
16551 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4138 a001");
16552 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4139 a010");
16553 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4140 a011");
16554 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4141 a100");
16555 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4142 a101");
16556 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4143 a110");
16557 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4144 a111");
16558 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4145 a200");
16559 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4146 a201");
16560 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4147 a210");
16561 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4148 a211");
16564 static const fp12_t var_a = { { { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16565 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16566 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16567 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16568 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16569 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16570 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16571 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
16572 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16573 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
16574 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
16575 {0x622C349A, 0xFEEE89B1, 0xD477DF46, 0x1311ACA0, 0x53E289B5, 0xFB605C6B, 0x401EDC28, 0xBA139EC2} } } } ;
16576 static const fp12_t var_expected = { { { {0x30D05622, 0x28DFE20E, 0x39F51C1A, 0x203EDA9C, 0x96121F7F, 0x8EFD7808, 0x2E16F2E4, 0x0EE2D980},
16577 {0x55B25AE6, 0x1E1F2E63, 0x95B3C4B7, 0xE1B7FA45, 0x1A7EDC79, 0xE8EE483C, 0x42A0A43F, 0x6833F281} } ,
16578 { {0x49C4098A, 0xEA7E98AA, 0xB77D5139, 0x82F23F52, 0x08D979F5, 0xB3E1A067, 0x291362B6, 0xB2A23202},
16579 {0xB7530728, 0x6FDEF27F, 0x099DFCEB, 0x2235AF7E, 0x46A31B78, 0x06E9384D, 0x9ECE8A09, 0x85F9A581} } } ,
16580 { { {0x8682B107, 0x46FF1071, 0xCFA8E0D1, 0x01F6D4E1, 0xB090FBF9, 0x77EBC044, 0x70B79724, 0x7716CC01},
16581 {0x24E204C5, 0xF53F4C55, 0x5BBEA89C, 0xC1791FA9, 0x846CBCFA, 0x59F0D033, 0x1489B15B, 0x59511901} } ,
16582 { {0x9EEADC17, 0x5B6F0178, 0xECA36EDE, 0x9216422F, 0xFB9A0BB8, 0xBF6A7C48, 0x87C31096, 0x7E8838C1},
16583 {0xCFBB3239, 0x844EE386, 0x26988AF8, 0xB2551CCC, 0x91AC2B37, 0x4E67F451, 0xB5DA037B, 0x8D6B1241} } } ,
16584 { { {0x49388131, 0x3D4FD315, 0x56EFAA27, 0xB05E47EA, 0xE11B2F3E, 0xD67C340C, 0x45226C56, 0x16544640},
16585 {0x008B8859, 0xAD2EC595, 0x608DA712, 0xD293F768, 0x27BE4AB6, 0xDD656C5A, 0xE3F0F65F, 0x9C4DEBC1} } ,
16586 { {0x0C79D9B5, 0xE0CF5B4E, 0x3EC41A8F, 0x3159B25B, 0x3963AD3B, 0x1272142F, 0xFD7E37E9, 0x51DFAC40},
16587 {0x30D05622, 0x28DFE20E, 0x39F51C1A, 0x203EDA9C, 0x96121F7F, 0x8EFD7808, 0x2E16F2E4, 0x0EE2D980} } } } ;
16589 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4149 a000");
16590 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4150 a001");
16591 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4151 a010");
16592 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4152 a011");
16593 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4153 a100");
16594 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4154 a101");
16595 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4155 a110");
16596 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4156 a111");
16597 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4157 a200");
16598 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4158 a201");
16599 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4159 a210");
16600 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4160 a211");
16603 static const fp12_t var_a = { { { {0x77ECF12E, 0x7C12CFFE, 0x97723DD1, 0x334728E6, 0xB881E678, 0x9AAAC29D, 0x7CA97E45, 0x41B4B699},
16604 {0xBCE16EDD, 0xDE62E4CC, 0x91F72759, 0xCD086E0E, 0x18FCAC16, 0xC50DD9C5, 0x865D35EF, 0xB8DD3C53} } ,
16605 { {0xE22A140E, 0x29093EBF, 0xB90143AE, 0x7A05D860, 0x96DBBC64, 0x8B2E1C25, 0x8D2B7F4D, 0x79CB81EE},
16606 {0x5684D578, 0x174C0487, 0x45BC744D, 0x77FD39D5, 0x15F58867, 0x37BC3B61, 0xCB080BC6, 0x20645176} } } ,
16607 { { {0x77CF38E9, 0xA6224270, 0x3AE91394, 0xA8EE2041, 0x2C9B388A, 0x145A2DB4, 0x0C7C695A, 0xABF99F3F},
16608 {0x1C3DD258, 0x9B78893F, 0xF5674C34, 0x12A5F7E0, 0xA4204E86, 0xF59B0DA8, 0x32BC0D34, 0x01D2BEEA} } ,
16609 { {0x0B482B1C, 0xFC822B31, 0xA50B1E96, 0x5FDBFC1D, 0xFD2AAB07, 0xAE12740A, 0xB31EE44A, 0x673F6966},
16610 {0x837F9ED6, 0x95247792, 0xCEC1EF1F, 0x5DEBAC23, 0xE8D4DCEC, 0x98688CCC, 0x19D6D7C5, 0x0C492C81} } } ,
16611 { { {0xB321F230, 0x7562AF49, 0xC708F106, 0x7F0E81C9, 0xCEA0D956, 0x118E861D, 0x8100E285, 0x7FE3EAE3},
16612 {0x4086BB3D, 0x6EE8ABC5, 0x3DB6C354, 0x5A2E2650, 0x483B9B36, 0xFAF52F6D, 0x1D067C05, 0x33B98026} } ,
16613 { {0xC358D50D, 0x989D553A, 0xAE0D2845, 0x29458D73, 0xA40D3EAA, 0x37E2C72C, 0xB2478F57, 0x0283C50D},
16614 {0x49A37236, 0xCE4871C3, 0xEF26A5FB, 0x4A4E775D, 0x67A09046, 0x32C06014, 0x1B1D3C9A, 0xA7F072E8} } } } ;
16615 static const fp12_t var_expected = { { { {0x377D7183, 0x710910F0, 0xEAFCC00F, 0x0C1857BC, 0x0644F180, 0x60A5B3C8, 0xE6402CE7, 0x0CB49BB0},
16616 {0x1E42E4D1, 0x4EA53624, 0xE8A2136E, 0xB81F64A2, 0x7B94CEDF, 0x0AE1BA03, 0x3B80D4B4, 0xA3CDC39F} } ,
16617 { {0x916417DA, 0xF2056BCE, 0xC6B04EFE, 0x4F4B56EB, 0xDFF9483B, 0xCF9C5CFA, 0x47979999, 0x1900350B},
16618 {0xB629184D, 0x338E4BC6, 0xF9E6FDF7, 0x75ACB953, 0xB63ACAA4, 0xCE8AABA1, 0x13B9FE9E, 0x34DEFCA5} } } ,
16619 { { {0x89520F65, 0x709FEE27, 0xA792FCD4, 0x7E6ADD85, 0xFEB33050, 0x9AAD007E, 0x86033BB3, 0x1B540ED1},
16620 {0xA6E54FFA, 0x70BC9BC5, 0x494955CA, 0x43693FB0, 0x89E242AC, 0x4660ACF3, 0x15D1B9C7, 0x655D7A81} } ,
16621 { {0x39FA4768, 0x1FD0BC9B, 0x901F9F4A, 0xBAA5AF28, 0x21EF68AA, 0x2DE407BB, 0x457E15D3, 0x2D58BCD2},
16622 {0xAF528032, 0x13B969A5, 0x2FBBBB97, 0x99C35C6A, 0xD01089A2, 0xCC5AD7F8, 0x9088405E, 0x0AA6891C} } } ,
16623 { { {0x5427A116, 0x15DE07C7, 0x9C198D3B, 0x12419B2A, 0x8A4A5BC2, 0x9F39B701, 0x33C6DF0A, 0x377B02DD},
16624 {0x9EE9C5A3, 0x59461584, 0x05D5D069, 0xA4B82C49, 0x1E8D1654, 0x2CA0BA03, 0x7F8AD256, 0x861B47DB} } ,
16625 { {0x0559BA9B, 0x00C31134, 0x396D0C34, 0xA6641ADF, 0x5539C994, 0xBE041D34, 0x0244EE6C, 0x827AE867},
16626 {0xD7826836, 0x189758D7, 0x5C55F391, 0x6D9E23EE, 0x81B0AB4B, 0xE8A6B027, 0xDF2E0BCB, 0x3CF5B97E} } } } ;
16628 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4161 a000");
16629 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4162 a001");
16630 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4163 a010");
16631 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4164 a011");
16632 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4165 a100");
16633 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4166 a101");
16634 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4167 a110");
16635 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4168 a111");
16636 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4169 a200");
16637 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4170 a201");
16638 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4171 a210");
16639 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4172 a211");
16642 static const fp12_t var_a = { { { {0xD1A898F1, 0x2F456A03, 0xA7A467D6, 0xBFC65E16, 0xC6CD3C5D, 0x5995606B, 0xC42312A3, 0x4221AF6E},
16643 {0x7062D476, 0x9F578567, 0xFD42F109, 0x9BAC338B, 0xD7E26AB5, 0xA11B95E6, 0xEFBEB6DA, 0x1E979EBB} } ,
16644 { {0x50B0B497, 0x443FE99A, 0x6A0D9036, 0xCF625ACD, 0x62F5C367, 0xF3CD1EEE, 0x327E439D, 0x1723FAC9},
16645 {0x4FBCAA86, 0x08EF63BB, 0x10AE5E9C, 0x479118B3, 0xB92933C3, 0xCEA462AE, 0xB7C9976C, 0x78A577A6} } } ,
16646 { { {0x7A1E03F8, 0x1D82294E, 0x41644038, 0x71DBC8FB, 0x3B111AAA, 0xB4C2C425, 0xBC6664CB, 0x7FC67A7E},
16647 {0x78A001C5, 0x75EB7EAF, 0x1AA25281, 0x1690F745, 0x7667626D, 0xA310DBDB, 0x51F7A754, 0x78A60FEB} } ,
16648 { {0x8047815B, 0x474EF7BC, 0xBCC35553, 0x8F4053D6, 0x5A958C66, 0x9F8A31B0, 0xDCAAC148, 0x5D63BE17},
16649 {0x3F0B8BD9, 0x8D1141BD, 0x9A6D3F70, 0x5C438AEF, 0x08772F40, 0x327CF800, 0xD8DB760A, 0x08966C9C} } } ,
16650 { { {0xF4043A18, 0x89267047, 0x294B14B7, 0x8AA33BA7, 0x032C4F47, 0xEF0BA89C, 0x11BF815D, 0x0236B5B5},
16651 {0xDB7299D1, 0x3AF3FFD7, 0x7FEC7E4A, 0x990686E7, 0x52053D16, 0xD71C55F3, 0x691E6436, 0x9A89B114} } ,
16652 { {0xD4007FEF, 0xEA5A8356, 0x90EE8813, 0x3B22647B, 0xB70070DD, 0x0E912077, 0xD78E89CB, 0x2D6F684E},
16653 {0x5D17D889, 0xA57FA440, 0x21581E3B, 0x7D0575F4, 0x26E06D3A, 0x2CD07B44, 0x23484FC8, 0x25C086D2} } } } ;
16654 static const fp12_t var_expected = { { { {0xDEF83C68, 0xAD22F92E, 0x9CB2E32A, 0xD27503E9, 0x97D6E792, 0x8837356D, 0x1BC1F6B9, 0x00A7D9E6},
16655 {0xA12669A2, 0x88DA6F7D, 0x2884FFDE, 0x3A9AAFB6, 0x8B53A45A, 0x3FC4D6F1, 0x5EB858D8, 0x421FA044} } ,
16656 { {0x547235C2, 0x8C7ABF14, 0xCF66D20B, 0x03F864F0, 0x6FAE794D, 0xE0D36A4A, 0x8BB552D3, 0x002A37E3},
16657 {0xFC65BCF6, 0x6D088082, 0x3279377B, 0xF5FB9EC5, 0xE41D5AA0, 0x55C3DC9D, 0xF505C309, 0x5EA4013D} } } ,
16658 { { {0x64ADF398, 0xBC7AD662, 0x0378A09D, 0x2DC31990, 0xB60379E2, 0x0BB2F29D, 0x37B3853B, 0x8EB49F56},
16659 {0xEB97914E, 0x4E6BC4CF, 0xC01AAA6F, 0x79FE2510, 0x323EFC5A, 0xC9084C2D, 0x36AB1CCD, 0x986680EE} } ,
16660 { {0x2516D519, 0x35C0AA85, 0x14357533, 0xB561B94E, 0xC0430A6E, 0xE41CF76A, 0x70D7907D, 0x5BC47DAE},
16661 {0x47F664F2, 0x6F73013F, 0xC1776B59, 0x85860487, 0x1E284292, 0x0F7AE2D0, 0xC51F84C7, 0x87F8F21B} } } ,
16662 { { {0x4437316C, 0xEA563355, 0xE1015DC7, 0x7750B8A3, 0xD9A9F9A8, 0xBB2744C5, 0xDF7B5FCF, 0x3D9B1B41},
16663 {0xE8DAC3A7, 0x085D4382, 0x8139A361, 0x1DE51842, 0xBF5ACF0D, 0xD51228DA, 0x77DD8FF8, 0xA5F6CDB4} } ,
16664 { {0xB4F9A7B9, 0x85C0F17E, 0xFFAEF468, 0xC3E02E5B, 0x815B1FE9, 0x89EB1265, 0x5843F311, 0x1CC51C0F},
16665 {0x5D21D7A8, 0x9EF57BD1, 0xEA985F7D, 0x8733962C, 0xF521F340, 0xEF6DEDC6, 0xCA39543D, 0x0C64044C} } } } ;
16667 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4173 a000");
16668 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4174 a001");
16669 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4175 a010");
16670 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4176 a011");
16671 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4177 a100");
16672 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4178 a101");
16673 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4179 a110");
16674 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4180 a111");
16675 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4181 a200");
16676 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4182 a201");
16677 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4183 a210");
16678 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4184 a211");
16681 static const fp12_t var_a = { { { {0x0D808643, 0xB73B2C3E, 0x431024F2, 0x4A5E24B9, 0x401CF668, 0xC3EE8F88, 0x6B3378EE, 0x8189BC3A},
16682 {0x40098C9E, 0x364F7994, 0x93F6BC02, 0x2D94A812, 0x91CF4EBB, 0x052C6717, 0x22120AFA, 0x0D062285} } ,
16683 { {0xF537E6F8, 0x7806CEC5, 0x4F881E66, 0xD9262F53, 0xA2A8923C, 0x087E0515, 0x0BDDF05A, 0x1015082A},
16684 {0x7991AA29, 0x95883269, 0x87931D8E, 0xEBE4738D, 0x377A2A7D, 0x772E9499, 0x4294672E, 0x8458DB4A} } } ,
16685 { { {0x47A37253, 0xF17A4FE2, 0x7C6F17EC, 0x818840AD, 0x1F4676F4, 0x07A7BE40, 0xF3A2FB4A, 0x57C2B008},
16686 {0x778BADFD, 0xAE7097A6, 0x3E50B8E7, 0x12183B52, 0x57B52EFD, 0xE6CD92F7, 0x211FDD10, 0x87FF00B5} } ,
16687 { {0x4F95393D, 0x331542AE, 0x084B0ADE, 0x9731FCBE, 0xEB79C085, 0x4CB1E934, 0xE11BA18B, 0x01AE4532},
16688 {0x128E2515, 0xA8A5F066, 0xBACA29AE, 0x76A63301, 0x6940C60A, 0xE7683706, 0x5C9ED795, 0x80FBEA04} } } ,
16689 { { {0x48F7A8A6, 0x81AA9117, 0x3C6051F5, 0x3675D568, 0xC868BDFE, 0x84984E25, 0x91DEFC75, 0x0C850D47},
16690 {0x008B217A, 0xEDF29ABF, 0x680E6AD1, 0x1829827E, 0xD28B870E, 0x51D64A3A, 0x90F09839, 0x61C79A79} } ,
16691 { {0x8A5CF67D, 0x65ADB41B, 0x24DBBF86, 0x7EABB08D, 0xBA4A3944, 0xA4D2A1B4, 0x402381A7, 0x89CF6CC2},
16692 {0x354B543E, 0x25D05062, 0xF5DBEE3C, 0x397B17B5, 0x37EB4991, 0x3F55CD86, 0x9AD5BBCB, 0x5A7C9A2A} } } } ;
16693 static const fp12_t var_expected = { { { {0xC58EAC41, 0xB933706A, 0x7ECFF988, 0x7C71978E, 0x89D8655D, 0x1CD66456, 0x1CB6FE00, 0x0377942D},
16694 {0x42C8B0D6, 0x1D075401, 0x4CCF63ED, 0x07F3FC7A, 0xE714DE7B, 0x36FBA8A6, 0xE7CD3019, 0x62086328} } ,
16695 { {0x488F85DC, 0x05E05983, 0xD352AE0A, 0xDBFE903A, 0x5B335031, 0x061D6CCA, 0x80ECC6AF, 0x17190C1E},
16696 {0xF0872B99, 0x0418B90A, 0x2D0A4F54, 0xEECC6FD1, 0x87603512, 0x1D9EF04E, 0xE08B8502, 0x57669D54} } } ,
16697 { { {0xB18AA6DF, 0x5B63C384, 0x33772885, 0xA3C965AB, 0x390B18D8, 0xDD7982A1, 0x6500F238, 0x651FD6A8},
16698 {0xD433E11B, 0xAC7B3C11, 0xE75E0CF6, 0x9F357C50, 0x9A0C4661, 0xB826A6ED, 0x7D2F0F59, 0x9D2A5627} } ,
16699 { {0x45A55506, 0x437B847F, 0x83F63691, 0x8C26492E, 0xCE08149B, 0x32C1B80A, 0x9CC3C527, 0x46AA7568},
16700 {0x7D7BBF0A, 0x2D0117A2, 0xD8EEBE68, 0x29451605, 0x2AADD0CE, 0x7ADCB1D3, 0x6A018ACC, 0x5157E5B7} } } ,
16701 { { {0xEFD70802, 0x24DA142D, 0xFCFD7827, 0x534F91FC, 0x1047A13D, 0x8FEA24CC, 0x6694772F, 0x61A70D13},
16702 {0x37E541BE, 0x54F3EEEC, 0x72886DAD, 0xD1581D36, 0x0BB31F33, 0x141FEF25, 0x05DADCC4, 0x012A53D7} } ,
16703 { {0x57E331C9, 0x27318A16, 0x3C4FB91D, 0x87B36F41, 0x7982AC9E, 0x5FFA2E1E, 0xA6A8B535, 0xA877F7EE},
16704 {0x3319D8B7, 0x66C57120, 0xD9753880, 0xBF1A72E7, 0xE498C988, 0x3AD7F348, 0x1F921640, 0xA9C5C143} } } } ;
16706 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4185 a000");
16707 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4186 a001");
16708 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4187 a010");
16709 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4188 a011");
16710 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4189 a100");
16711 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4190 a101");
16712 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4191 a110");
16713 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4192 a111");
16714 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4193 a200");
16715 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4194 a201");
16716 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4195 a210");
16717 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4196 a211");
16720 static const fp12_t var_a = { { { {0xE37EFE15, 0xABA26256, 0x65156FCE, 0xAB52D2DB, 0x5F9EAEDF, 0xF149FF28, 0xEBA883AC, 0x5514AC01},
16721 {0x84928399, 0x3C0363CB, 0x7A01A48C, 0x47B89946, 0x29029B12, 0x0EBD452B, 0x569F51DF, 0x23CDC22E} } ,
16722 { {0x283FF41F, 0x5A7357DC, 0x8D454397, 0x5D67BA9C, 0x3C0206DE, 0xE466CD52, 0x50073333, 0x01384FB4},
16723 {0x894DEA9C, 0x54D63651, 0xA181B450, 0x3BA6B98E, 0xC884E318, 0x49EDF805, 0xE29D82A4, 0x9B7DD96D} } } ,
16724 { { {0x9526A7C1, 0xBAE50B45, 0xE5C6DC97, 0xAE86DC34, 0x0F67B26F, 0x2606C9D0, 0x2B9DCBEE, 0x8DA02DAC},
16725 {0xD1253195, 0xDD5BA48D, 0x59B5CF9C, 0xDF10D76C, 0x7FA6EB30, 0xD79D8A14, 0x1BB78D8E, 0x84A310CC} } ,
16726 { {0xF5F1BF78, 0x56E1FE6A, 0x293B0873, 0x7449CD16, 0x9187C5B5, 0xC63E5E19, 0xB9272B41, 0x208059A2},
16727 {0x53610DCD, 0x7E5BA9FF, 0x51529819, 0x727CCE0B, 0xF1690F9B, 0xD14E291D, 0xDE508630, 0x10716536} } } ,
16728 { { {0x07541495, 0xF7077198, 0x22E73581, 0x4851881B, 0x019DF9F2, 0xEC3AEDA6, 0x3848DADD, 0x3AF8957F},
16729 {0x07068070, 0x1FF8AE4B, 0x1BC2ED9D, 0x9C237196, 0xAE04843E, 0x8777F156, 0xC7FDBDEC, 0x2430F5B7} } ,
16730 { {0x9D8E5048, 0xA1EFBB7E, 0x5FD90BB1, 0xCCA3696E, 0xE5D2B2C8, 0x1208B05B, 0x641B4D9A, 0x6E6981D4},
16731 {0x62782964, 0xE88235CC, 0xE917258D, 0x1EBF6297, 0xD6B07302, 0x909BF924, 0x36D5F311, 0x70FFA126} } } } ;
16732 static const fp12_t var_expected = { { { {0xE9EE035D, 0x515787C4, 0x8DAF0E4A, 0xAB7A71D3, 0xB24B4E38, 0x43E7B2F6, 0x3E842421, 0xA1230E07},
16733 {0x1FB0DBF1, 0x50704F46, 0xCF911938, 0x88AA0ADA, 0xC5C04FE1, 0x61EEA671, 0x71641F89, 0x647A8BAC} } ,
16734 { {0x75E7A0A2, 0x3429A9B0, 0x3182AA1F, 0xB5CD1D62, 0x1D801867, 0x7441F8F9, 0x0DC4522E, 0x8309CD63},
16735 {0x820C0753, 0xD45FC04E, 0xC66AEBF6, 0x57823B32, 0x0C9DF342, 0xCE4B26FD, 0xEC4EF74F, 0x17EBCDD2} } } ,
16736 { { {0x1A470A51, 0xBC19D3EC, 0xFCC3C263, 0x730E99DC, 0x8270599B, 0xCA8BA506, 0xA16B1097, 0x9B7772D8},
16737 {0xF770A740, 0x203F28CC, 0xEAD0112E, 0x11129A20, 0x062A8203, 0xC251EC2C, 0xE21CC37D, 0x4E8B1FC2} } ,
16738 { {0x877E2102, 0x8B749E80, 0x6BA9D1FC, 0x011A457C, 0xD423B97F, 0x09D3927D, 0x9B8A1217, 0x2A0C13E3},
16739 {0x8B9AF309, 0xDD1E0E6D, 0x18D4E8EB, 0xF8958A7F, 0xCE617B1F, 0xD0A8A897, 0x3F76E7FB, 0x6C87FDDB} } } ,
16740 { { {0x42A1A038, 0x7E459C23, 0x98278318, 0x6AC4188B, 0xEB1C2831, 0xD89CA638, 0xFD024CF3, 0x9CFA1AD0},
16741 {0xAC2F03A0, 0xB2BC4DBA, 0x3E6DDB38, 0x31FAC4F9, 0x59918FB6, 0xE5E96B09, 0x05BA00E1, 0x57C7C756} } ,
16742 { {0xF5D4AF5C, 0xF2526289, 0x8B248B55, 0xB5BAF1A3, 0x8BF4FA28, 0xF58BF065, 0x52338564, 0x39D283DF},
16743 {0xC76A4E18, 0x01BFE7C0, 0x08630FD4, 0xC2EA819A, 0x0A344604, 0xEB02691B, 0x509D39E4, 0x174A8826} } } } ;
16745 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4197 a000");
16746 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4198 a001");
16747 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4199 a010");
16748 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4200 a011");
16749 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4201 a100");
16750 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4202 a101");
16751 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4203 a110");
16752 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4204 a111");
16753 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4205 a200");
16754 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4206 a201");
16755 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4207 a210");
16756 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4208 a211");
16759 static const fp12_t var_a = { { { {0x09E603A3, 0xA4AA0B27, 0x0328B53F, 0xBACC7577, 0x5A79E728, 0xFA7DCD23, 0xBB285E1E, 0x168D48A3},
16760 {0x56CB2524, 0x450BBA48, 0x7BD66277, 0xD395FC1E, 0x2AF3B424, 0xD1D0946F, 0x44434741, 0x72E24451} } ,
16761 { {0x9FA89121, 0x870A4D78, 0x1BA9D01B, 0x33368880, 0x63E29876, 0x9F57D8F8, 0x78AF458B, 0x44DDC6F4},
16762 {0x39EEA65A, 0xDE993DCD, 0x5521D20F, 0x0FE7040E, 0xA35BA7E4, 0x5D39279D, 0x1170CB42, 0x15392E42} } } ,
16763 { { {0x1CA5AAD9, 0x0F1FF998, 0x723ADECB, 0xD24A6759, 0x4395A2FF, 0x292374B6, 0xDA95C1C0, 0x77B87CB6},
16764 {0xDD1F2F6B, 0x9C157CD2, 0x8F30C45E, 0x40A1025E, 0xD0692207, 0x92AE22ED, 0x7877D520, 0x0F688D40} } ,
16765 { {0x2CF5F6FE, 0x4968F8E5, 0x17520E8E, 0xFEE2F4DD, 0x83A01A85, 0x216999E9, 0xDE1F7EFF, 0x13B7ECBF},
16766 {0xDF43C842, 0xA56D0E02, 0xD2F0F74C, 0x60D95FE8, 0xD325BF47, 0xFC91BF3C, 0x97F31361, 0x4065D3D1} } } ,
16767 { { {0x49FFD188, 0x7EB259A7, 0xAB86A8A6, 0xAB091CF6, 0x3BCBE12A, 0x3B060C01, 0xC0F7A7A6, 0xA18A6C60},
16768 {0xCE809CE3, 0x66D3F2EB, 0x0F257F9B, 0x36302E4D, 0x16A3061E, 0x809DB347, 0x4A9438C9, 0x6BF847DA} } ,
16769 { {0xC6ED2BD1, 0x350069F4, 0x3C037DA0, 0xFBB17E9B, 0x717413F9, 0x6FD69C57, 0xBD616CFC, 0x34A6476F},
16770 {0xFF416A94, 0x86A0DFEC, 0xC7E4AC0C, 0x188DC094, 0x901DC621, 0x3333E459, 0xB027286B, 0x7A9A30E9} } } } ;
16771 static const fp12_t var_expected = { { { {0xB15FE0D7, 0xA8A7C93C, 0x0B5325FE, 0x94B623E4, 0xFECC6BB4, 0xE20E93C2, 0x9D073727, 0x8314826B},
16772 {0x3396EE00, 0x1818CB7D, 0x339394CA, 0x924E9249, 0x214035C7, 0x9B2A1239, 0x173586F8, 0x289FFADC} } ,
16773 { {0x28F6AAE8, 0x0F5A5F5B, 0xDD295467, 0x0CAC70D5, 0xC3C09A5D, 0xF3C4C243, 0xFAC045B7, 0x16056C57},
16774 {0x6F54D0AE, 0xA4C9E099, 0x79194B48, 0x6992076C, 0x9D1D8DB1, 0x33E7E310, 0xD0AA051F, 0xB7615209} } } ,
16775 { { {0x6553754D, 0x48C76297, 0xF8BA9E3D, 0x234EC879, 0xEA6ACDB2, 0xD2CFE7ED, 0x42564CCA, 0x1DBD0A4A},
16776 {0xB37AC718, 0x935495DE, 0x796A29A8, 0x237610CF, 0x07FFDE07, 0x68730637, 0x709310B6, 0x27C15C8B} } ,
16777 { {0xC08D3FBE, 0x0D0903B2, 0xD951318E, 0xF5865C23, 0xB54F5697, 0xEFC0B930, 0x8385FB76, 0x8346ABD2},
16778 {0x3360B3D0, 0x9C16EC30, 0xB475899B, 0x3CE18175, 0x027D9860, 0x8F8D2750, 0x29973917, 0x20CCECA4} } } ,
16779 { { {0x99C9F0A7, 0x313882BA, 0x010A5A2F, 0xF12783DF, 0x2ECEF54D, 0xE7D18C11, 0x05F52191, 0x628E8F76},
16780 {0xF4E19C13, 0xFDEBA528, 0x5F714AC1, 0x41912DE1, 0x25290D86, 0x1868EDE4, 0x2A129C62, 0x1B83850A} } ,
16781 { {0xB32E367F, 0x1278FB26, 0x1E9DF189, 0xF4A07CE6, 0x972EDB2F, 0x82F6F47F, 0xA3B7BB3C, 0xAFCF2F6C},
16782 {0x0D5838D7, 0x4EFBD578, 0x5E4D3541, 0x978484A6, 0x000422C8, 0x9D56B9B8, 0x671E6FB8, 0x09FD1B7C} } } } ;
16784 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4209 a000");
16785 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4210 a001");
16786 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4211 a010");
16787 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4212 a011");
16788 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4213 a100");
16789 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4214 a101");
16790 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4215 a110");
16791 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4216 a111");
16792 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4217 a200");
16793 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4218 a201");
16794 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4219 a210");
16795 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4220 a211");
16798 static const fp12_t var_a = { { { {0x392AD89C, 0x39088CD5, 0x17D0A0BC, 0x4ED915FF, 0x69C6A423, 0xF7A5DFAA, 0x522B76F8, 0x1C6340B1},
16799 {0x47825A35, 0xF04CFBD7, 0x129CA0D3, 0x72C6E6F2, 0xD401478C, 0x72AD172E, 0xA4AEBC76, 0x250A2A86} } ,
16800 { {0x1581A6A8, 0x92D68DBA, 0xF42A8007, 0x33855C11, 0x5423E518, 0x51616AC3, 0xFD5C86A6, 0x2FFC77B6},
16801 {0x3F250349, 0xCA980F91, 0x9CAFDE57, 0x3F1DA4AD, 0x008571F6, 0xCB2EB90C, 0x45E82CC6, 0x4AD31A05} } } ,
16802 { { {0x944FEFC9, 0x8807AAB4, 0x1CAE4137, 0xC32D67F2, 0xF4E527E0, 0x27858801, 0x7AA10985, 0x6F05AFB5},
16803 {0x798BD98C, 0x7FC6214A, 0x54948519, 0x48987943, 0x8027B7FD, 0x2272A9C9, 0x6EE9056A, 0xAD99582F} } ,
16804 { {0x83EB01C1, 0xA7127D71, 0x4DFA4669, 0xD4071E3B, 0xFEEDD269, 0x868E5D2C, 0x06C8BFB9, 0x0299475C},
16805 {0x499E6C09, 0xB780D581, 0xBA578C7A, 0xDFC89928, 0x4CD24A1C, 0x8C1AF796, 0x3D25ABF0, 0x39EE5EF0} } } ,
16806 { { {0x028D27E9, 0xB3DB7A56, 0x248C6DCC, 0x111FD583, 0x053D4ED4, 0x922AC100, 0x1F5F926D, 0x2399FF71},
16807 {0xE54144B7, 0x5CBFBE28, 0xBC137DC9, 0x85805C67, 0x49C0A9E7, 0x636300D5, 0xCEA04410, 0x5EFC577B} } ,
16808 { {0xBC04AEC7, 0xBA41BFC7, 0xB2864264, 0xE5609E2E, 0x95FECDCC, 0xD4267D07, 0xC1B4733C, 0x3393B9EE},
16809 {0x61A5786D, 0x98586980, 0xB3BF2164, 0xEAE077FD, 0x48CD5029, 0x43B02191, 0x40C34D61, 0x1499E46F} } } } ;
16810 static const fp12_t var_expected = { { { {0x319D009D, 0xEF2331F0, 0x5D052989, 0xCCDFF8CE, 0x7EF43098, 0xC0718459, 0x0ECB0269, 0x76C9ADB6},
16811 {0xB63A24BC, 0x7787550E, 0x89209724, 0xCBA51294, 0xCDD873A5, 0x64086D0A, 0x9BFF3E95, 0xACF656C0} } ,
16812 { {0xF4D9DC20, 0x4C0C0557, 0x058BFE1D, 0xF558B329, 0xE3795372, 0x139EAEF1, 0x215B163C, 0x53A5D978},
16813 {0xFBEC18CF, 0x88D9BF2E, 0x54F0E14A, 0x61C86386, 0x786A131A, 0x5FFB47D7, 0xAD30B487, 0x804FE29C} } } ,
16814 { { {0x8026B684, 0xA403BFDB, 0xF3207420, 0x2DD872D1, 0xF1CCA72A, 0xA74AF35C, 0xEAA7F4F7, 0xA0C91DD7},
16815 {0xB6520530, 0x2A4FC29C, 0xBFB98DC2, 0xECF4CEAC, 0x7DBF921D, 0x575E51EA, 0x43E075A1, 0x45B1D744} } ,
16816 { {0x3079A7E2, 0x149E3F92, 0x10D1BD89, 0x1AA043DA, 0x44AA8591, 0x5518E8B9, 0xE7D63B15, 0xB20ECC26},
16817 {0xF66CB808, 0xCB25ABBC, 0x4E270821, 0xF3568817, 0x4110FBB2, 0x0F2F4A27, 0x07E6EEB9, 0x3ABDC5E4} } } ,
16818 { { {0x5D165D9B, 0x9001B183, 0x7F12BE2C, 0x724FA793, 0x77DFF4FF, 0x7765095B, 0x225330D7, 0x0A080D35},
16819 {0x1CD92721, 0x2FAB3419, 0xD5179BA3, 0x21DD9C84, 0x1245F1B5, 0x0A062C83, 0x7705F1C9, 0x36768046} } ,
16820 { {0x96A0E325, 0xE16FAC8C, 0x1488936E, 0xE900838A, 0xA639092D, 0xEF6737C2, 0x3E3EB729, 0x28051EE7},
16821 {0x4BD5119C, 0x0D93F8C4, 0xE82353A1, 0xF75AA4DC, 0xB62B636D, 0x795893E9, 0xF6D21FF3, 0x9BBBDA06} } } } ;
16823 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4221 a000");
16824 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4222 a001");
16825 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4223 a010");
16826 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4224 a011");
16827 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4225 a100");
16828 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4226 a101");
16829 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4227 a110");
16830 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4228 a111");
16831 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4229 a200");
16832 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4230 a201");
16833 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4231 a210");
16834 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4232 a211");
16837 static const fp12_t var_a = { { { {0xC8C84407, 0x0505DA6F, 0xC332090B, 0x2E584C9D, 0x70AF81BA, 0x04C0DB40, 0xE9DE909D, 0x05956CC3},
16838 {0x977008EF, 0xD03616C4, 0x8A571C7F, 0x47C6FE9D, 0xAA319056, 0xF9FCF024, 0xEEC1C4E6, 0x7ABA2388} } ,
16839 { {0x3F134E81, 0x176937E4, 0x0C5149EF, 0x352BF9E0, 0x468FCB75, 0x13D77AFB, 0x5567E1E1, 0x1D2DE3A9},
16840 {0x5658C50B, 0xB19C6704, 0x6EFD09D6, 0xA4229F2A, 0x17FBCDFD, 0xAAADE24C, 0xF637C82F, 0x92B88B81} } } ,
16841 { { {0x545E9948, 0xBF14D6D4, 0x06A1F3D4, 0x485AB842, 0x058044DF, 0x3E96FFC9, 0x418A2083, 0x1212A338},
16842 {0x352A1C62, 0x2201D804, 0x23789B01, 0x94C2C9FC, 0xCA33EEFF, 0xACDED55C, 0xB52EBBE5, 0x882C55CA} } ,
16843 { {0x3D884C27, 0x0357F825, 0x15F946CA, 0x1A20EAD9, 0x88C116E2, 0xF8EF9B5E, 0xAA9324E3, 0x2F9AA91E},
16844 {0xAA3E731E, 0x4CF91F9E, 0xD5AB3810, 0xD9021A68, 0xE7C62909, 0x97140A1E, 0x8851D7AD, 0x0C99B7CB} } } ,
16845 { { {0xEA1DD70A, 0x2F145D5F, 0x864C434A, 0x531B1352, 0x98F85FE1, 0x09DFE010, 0xCE03A929, 0x175005F2},
16846 {0x68F57B48, 0x9AB6DB3E, 0xF1E16EBE, 0x75F22F45, 0xD2B28EB2, 0x442CFD9D, 0x0CDD3B75, 0x118F0444} } ,
16847 { {0xD5664D2A, 0xC8ABA237, 0xE42E1987, 0x4D0E4FAE, 0x355225E9, 0x5DC6A2BA, 0xA9879F0F, 0x09CDF0D0},
16848 {0x03D8CEDA, 0xB3A82147, 0x502134E5, 0x94509460, 0xDE76E165, 0xD18A554B, 0xDD5097DD, 0x0BA9A873} } } } ;
16849 static const fp12_t var_expected = { { { {0xEBB66F0B, 0x12F4A3E7, 0x83FC3523, 0x3119C686, 0x7C8A0D39, 0x941272D3, 0x4CE56522, 0x46FDB22C},
16850 {0xA6D5C53B, 0x28F1315C, 0x74A9F951, 0x233E578E, 0xA8D23F12, 0x64F2A87C, 0x28A036BD, 0x132DE8FA} } ,
16851 { {0x70709B4C, 0x659CC4ED, 0x8BE3962B, 0xA2BC1A29, 0x63B05E0C, 0x4F83795E, 0xB7692A4E, 0x2CC23C83},
16852 {0xDC2A4852, 0xB3016B21, 0x2EDC07F9, 0xF7E6E60E, 0xA6E776EF, 0x24A77609, 0x8A553746, 0x4F1B5208} } } ,
16853 { { {0x59E0671E, 0x0FA64F3E, 0x157B28E6, 0xE8CE9511, 0xBC1F6E10, 0xE1998A79, 0x022BC678, 0x7EF7B903},
16854 {0x11759094, 0xC314D202, 0x2FD98E2E, 0x4F518A51, 0x438A5D42, 0xC73F2EB3, 0xE46B213B, 0x1EB0A1AE} } ,
16855 { {0xD364ABD0, 0xE8F77904, 0x2F0F5714, 0xC33BB3B1, 0x3D1BCC6D, 0x314AA410, 0xA633492B, 0x115BD5F9},
16856 {0x30BFAC21, 0x0A915A15, 0xB7753EED, 0x912C2A07, 0x1E39FC16, 0x8E283F25, 0xB7B71EE2, 0x3E6A502C} } } ,
16857 { { {0x8762C81C, 0x1487B7F3, 0x68BE5686, 0x9D8D3DE5, 0xE6F3DF4D, 0x9DB9F2F4, 0x57E7A1F9, 0x0617285A},
16858 {0xF489A8B3, 0xA73089F7, 0x39D8F8A3, 0x9DC2BAEC, 0x1425C00B, 0x49B0E7CA, 0x660D3BA7, 0x87BD4418} } ,
16859 { {0xB6E8648C, 0xCF891CBA, 0xE8F1B91C, 0x45BBB42E, 0xA10F6AFA, 0x0C248E95, 0x50689774, 0xA5D32374},
16860 {0xB8532DA1, 0xC662E4F2, 0x500811B7, 0xA2B610DE, 0xDDFBB0A0, 0xBE01D0D4, 0x2BE2DFED, 0x593F8216} } } } ;
16862 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4233 a000");
16863 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4234 a001");
16864 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4235 a010");
16865 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4236 a011");
16866 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4237 a100");
16867 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4238 a101");
16868 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4239 a110");
16869 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4240 a111");
16870 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4241 a200");
16871 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4242 a201");
16872 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4243 a210");
16873 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4244 a211");
16876 static const fp12_t var_a = { { { {0x95201E79, 0x992AEA6C, 0x7C641D99, 0x6A51ED0C, 0xA4DFFF27, 0x2C924756, 0xB8BE047C, 0x5718D21C},
16877 {0xD8CC74CC, 0x7FB35254, 0x5B550162, 0xF1F60EF4, 0xEBCE2DAE, 0x898DBABB, 0xDAD6534E, 0x9C020B42} } ,
16878 { {0x390505CD, 0xACBF70BE, 0x32358A32, 0x25F599E0, 0xC3C81FED, 0xF8B2E667, 0x391F2185, 0x1DC20EB6},
16879 {0x33A115FB, 0x2A73E8B5, 0xC36F59F5, 0x14353D5D, 0x212CB76A, 0x135A0770, 0x9EE422CD, 0x45793EB4} } } ,
16880 { { {0xD7C2CCD1, 0x4B0E36F8, 0xD311F2F7, 0x5D1582C1, 0x5724E218, 0x7B27CFC5, 0x284832CE, 0x2B4B6298},
16881 {0x2D1FEEDF, 0x1B18FA59, 0xC9E66D55, 0x119511AA, 0x3ADC2218, 0x432E79E0, 0x073A23F1, 0xB28B44E2} } ,
16882 { {0x875079E5, 0xFAB8137A, 0x15684E97, 0x5CEDA224, 0x0B4D2E27, 0xA411E04D, 0x42D07781, 0x08355C66},
16883 {0xBA7A6B0F, 0xFC50BF34, 0x1B2E3091, 0x289193E4, 0xDCED0146, 0x331038B9, 0xF2196657, 0x130222A0} } } ,
16884 { { {0xDF8BCCAD, 0x843A1C87, 0x4597951F, 0x809E4301, 0x279EA84D, 0xABC1A575, 0x0599A383, 0x04BA05CE},
16885 {0xACA37EE3, 0xB6D9C28A, 0xD0865A5A, 0xC9A364CC, 0x967F8058, 0x3F5E70B8, 0x3C1A1B06, 0x1FFF3420} } ,
16886 { {0xF088D411, 0xF575BAB6, 0x47B6F675, 0x464016BA, 0x85CDFBDB, 0x1546401A, 0xAC9E8E04, 0x3DE7A7F1},
16887 {0xA16EAEEC, 0x70B6CBE6, 0x93266983, 0xECB10A5F, 0x8B803ADB, 0xF33E0460, 0x018B5B42, 0xB872BEDF} } } } ;
16888 static const fp12_t var_expected = { { { {0x98BCFD28, 0x7A3867B3, 0xE580B58F, 0x9D901C33, 0x650F4981, 0x5ECD64D9, 0xB6B262B9, 0x65C55BC8},
16889 {0xB20C7247, 0x4A9EB135, 0xF5804BC1, 0x1DC58267, 0x2C0DDA28, 0x13E83300, 0x5E8BA556, 0x7E644AF8} } ,
16890 { {0x365F3325, 0x3161FD8F, 0x2DC36844, 0x1D114090, 0xC41AE1E6, 0x72D1531B, 0x1180B683, 0x19E0C0AC},
16891 {0x14C88543, 0xC4D7493D, 0x2709A128, 0x74B90237, 0xB580558D, 0x873D642D, 0xF7041785, 0x88A7D563} } } ,
16892 { { {0xF4B74D55, 0x4911535B, 0x36ACD44E, 0xB26603D0, 0x16696966, 0xFFA918DA, 0xDE2323AD, 0x0F2E80B8},
16893 {0x999ECED8, 0xB5280C9D, 0xD4E2231A, 0x08495EFA, 0x9AB0374F, 0x189D6868, 0x75AA4EB4, 0x57B059A8} } ,
16894 { {0xB5B38940, 0xE266494A, 0xE1F3A414, 0xE1E26FFE, 0xDB9F220F, 0xB232FCF9, 0xF6AAF744, 0x198B776D},
16895 {0xFFAAFCA6, 0x0410348E, 0xCA24A37E, 0x04043866, 0xF44A1FAA, 0x524E56C7, 0x634A8495, 0x43067C29} } } ,
16896 { { {0xA6D1680D, 0x7B56152B, 0xC509E052, 0xA6B46DF0, 0x230008A5, 0xFB00F935, 0xD422450E, 0x46337704},
16897 {0x304B83D2, 0x82014251, 0xFFD34845, 0xAAF96F06, 0x3273538E, 0x07FC8231, 0xEDFF75BD, 0x7EB5B6EF} } ,
16898 { {0x46B6C2A6, 0xB101EECD, 0xE09FFE31, 0xBFCA0FB9, 0x054B6212, 0xAA94EC3A, 0x3CBDF87B, 0x8690BBFF},
16899 {0xAB81E0C5, 0x2FCF473E, 0x235CD6AE, 0x56E5100C, 0xF72CA125, 0x2B62339E, 0x019AA0D4, 0x76E91332} } } } ;
16901 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4245 a000");
16902 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4246 a001");
16903 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4247 a010");
16904 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4248 a011");
16905 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4249 a100");
16906 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4250 a101");
16907 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4251 a110");
16908 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4252 a111");
16909 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4253 a200");
16910 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4254 a201");
16911 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4255 a210");
16912 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4256 a211");
16915 static const fp12_t var_a = { { { {0x31C0B78A, 0x94ECF7FE, 0xBDC4771D, 0xA14A8A49, 0x41A2C29B, 0x94E04C54, 0x77640EB3, 0x3C0A512A},
16916 {0x2533C0DD, 0x956DB5E5, 0x53590FB5, 0x5B667A42, 0x221F70CF, 0x37718891, 0x1F18644F, 0x9D645B3A} } ,
16917 { {0xF6ACD6AE, 0xEA9573E0, 0xB496D29D, 0xB35DFCCB, 0x5DBC9552, 0x2212DA17, 0xA047E1B4, 0x1473661B},
16918 {0x2EA106A4, 0xCFFE88B6, 0xBF87D691, 0x55E4DE49, 0x0217E9B4, 0x223BF410, 0x73A878A4, 0x01B6484E} } } ,
16919 { { {0xD5492B30, 0xC05D8DCB, 0x781DC2D6, 0xDC63251D, 0x20C7B9BF, 0xF78B6C4A, 0xA66EBB3B, 0x1498F5B3},
16920 {0x18168607, 0x0373C065, 0x3E077694, 0x95D7A9A2, 0x09017993, 0x00FFC621, 0xDA325F3B, 0x833151F9} } ,
16921 { {0x40347303, 0x20C6018E, 0xC1BFA4FC, 0xAB90146B, 0xBBE6AEC3, 0x925F8F7D, 0x067A6F76, 0x15116BFC},
16922 {0x315CEE67, 0x5E05B5D1, 0x83B3E3F5, 0xA3E1000B, 0x63A50F4A, 0x7861B88C, 0xF1737189, 0xA5E93B3F} } } ,
16923 { { {0x74DAC6BE, 0x501D453E, 0xDD806F62, 0x39C61B4B, 0xEE73EF3B, 0x9D6ED207, 0x7BF01342, 0x150FA82F},
16924 {0x90B63A65, 0x47094E99, 0xCE6C8EE8, 0x935E5345, 0xC82C8D67, 0x5EA30622, 0x95F65851, 0x130E2FF4} } ,
16925 { {0x3BE3224E, 0xDDD2C38C, 0x82AABE26, 0x5BE8CF2D, 0x6E920533, 0x24DB46C6, 0x44B73A75, 0x3D88CB2C},
16926 {0xC827B450, 0x69E1152A, 0xF8183545, 0x930892B2, 0x8A1D5CA2, 0xD0EBC2E7, 0x62285DB5, 0x438545E0} } } } ;
16927 static const fp12_t var_expected = { { { {0xC38E3376, 0x4D038049, 0x6726CA83, 0x73D74066, 0xF0F4D481, 0x434335BE, 0x93F01C6C, 0x41767557},
16928 {0x305DBE23, 0x390300B0, 0xFAB47EDE, 0x4998393A, 0x25B22BA2, 0x1AC36510, 0x012F353F, 0x26566D84} } ,
16929 { {0xB690299B, 0x63452A0A, 0x620E207F, 0xCC64E30D, 0x5852B39D, 0xF4414D15, 0x72398814, 0x2BF6698C},
16930 {0x1250E351, 0x577AC6DD, 0x395078B9, 0xA7296F62, 0xDEB116EF, 0x3502E01F, 0x49C4796B, 0x54BAC37A} } } ,
16931 { { {0xDAEDA265, 0xBD334C9C, 0x8B61B1EE, 0x3DB1890F, 0x5F2D0F75, 0xCFE9AEF2, 0x702EEB45, 0x69E53672},
16932 {0x4A0A1ACE, 0x5901ED79, 0x536790BB, 0xFE72E18B, 0x3CB98833, 0xF48A0B9D, 0x64112B54, 0x55A4C6CA} } ,
16933 { {0x438CD9A5, 0xB27DBBD4, 0xDAC69F49, 0xE97D878E, 0xCD0F9990, 0x2BEE59D8, 0x57FF72F4, 0x1A5DDF8B},
16934 {0x2CBC7774, 0xA740C260, 0xB2CAEFB4, 0x9B367238, 0xAB70A461, 0x036AC2FA, 0xFEE3649A, 0x5B3FC620} } } ,
16935 { { {0x17C6CE26, 0x57B575C9, 0x44A40086, 0xBB5C4533, 0x61177589, 0x3F8821CB, 0x710E717E, 0x2E2669E9},
16936 {0x702CD8F8, 0x7A415E64, 0xA9F74FF0, 0x588252DD, 0x70B336AA, 0xE0C6BF5D, 0xA051D60A, 0x58B140B0} } ,
16937 { {0x5CA95FA7, 0x3D6BC2C9, 0xDEA705DA, 0xC2F100CE, 0x73FA56D4, 0x0DD67B90, 0x68A032F5, 0x50FB7BE7},
16938 {0x74BA57A7, 0x3B82406B, 0x019B29E9, 0xFE0B589C, 0x1E627377, 0x25907409, 0x485CB4D5, 0x9137F26A} } } } ;
16940 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4257 a000");
16941 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4258 a001");
16942 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4259 a010");
16943 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4260 a011");
16944 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4261 a100");
16945 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4262 a101");
16946 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4263 a110");
16947 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4264 a111");
16948 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4265 a200");
16949 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4266 a201");
16950 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4267 a210");
16951 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4268 a211");
16954 static const fp12_t var_a = { { { {0x53EB378E, 0x8E101F4C, 0x802AC78A, 0xABDFCE11, 0x7DE105BA, 0x53D744B4, 0x9D977AED, 0x0C6B2334},
16955 {0xD39AEB1A, 0xAB363B21, 0x95CAEC2F, 0x4A633525, 0x34177805, 0x1EBDDA24, 0xF7C67A16, 0x1C5F1EF3} } ,
16956 { {0x9019990D, 0x69F4FEF2, 0x5FB4770F, 0xCCF938D2, 0x9FF41F74, 0xA275CCC2, 0x44D62F6A, 0x14DAE017},
16957 {0x255F5D91, 0x34E23B31, 0xD539FA31, 0x796CE026, 0xEBBB7533, 0xE19F43C8, 0xAF0E36E3, 0x4C8259E8} } } ,
16958 { { {0x429B4861, 0xBC185623, 0x450934F6, 0x760A799E, 0xF285FB75, 0xD398220B, 0xB52277E7, 0xB05A41B5},
16959 {0xAE6ECDED, 0x727D4009, 0x7A94AB7C, 0xFAB5D7A6, 0x6EF6C3FB, 0xFBB2C7E0, 0xA8940D78, 0x53BC5340} } ,
16960 { {0x21D25743, 0x0EC550A8, 0x141F3162, 0xDFD59FF0, 0xCE3140AE, 0xDB6323FF, 0x6D0381B8, 0xAD42D33E},
16961 {0xC8A05CA9, 0x0B982887, 0x07A50F22, 0x22C62915, 0xB5BF03E4, 0x7F2050DE, 0xFEA88D0E, 0x1A342281} } } ,
16962 { { {0xC2F2DF4E, 0x28C7EE3A, 0x191104EE, 0x67D896DB, 0x793D3203, 0xF34999FD, 0xEA28EDEA, 0x5B7ACF50},
16963 {0xA5477C8E, 0xE88FCAF9, 0x67C37470, 0x73E4341F, 0xA5E000E0, 0xC829C3C4, 0xD0AEFABB, 0x132B1A09} } ,
16964 { {0xF98034CB, 0x13F1D272, 0xE067A342, 0xB06893BB, 0x77C9F5B7, 0x94FEA542, 0xE75C4C0C, 0x4AA02DAC},
16965 {0x5980656B, 0x34215B4E, 0xF3A4F456, 0x99293FAB, 0x0F4345A0, 0x72B811EF, 0x38EBC00F, 0x340CF9BB} } } } ;
16966 static const fp12_t var_expected = { { { {0xB73102C0, 0xD33521E3, 0xB266C956, 0x255B2BF2, 0x6AD79503, 0x590AD7DA, 0x17775FEA, 0x4A9D9DFD},
16967 {0xEBC601D4, 0x20CBE7F1, 0xF80EDE25, 0xDB459832, 0x2E09ECD8, 0x60299165, 0x45903FFB, 0x326B0B1A} } ,
16968 { {0x98D70DEF, 0xDC2F3B2D, 0x70C0933A, 0xB6D5D057, 0x2163E6BC, 0x7A17C7B5, 0xF39ABDAB, 0x3A844F0D},
16969 {0xEBF71D24, 0xB5D0EE79, 0x1FBC47F9, 0xA1A6AEEC, 0x8CD93C67, 0x39B07B52, 0x0CDE377D, 0x1029E229} } } ,
16970 { { {0x40988ED4, 0x789FBB46, 0x4B0C963E, 0x860C228D, 0xC97897BB, 0xF150CAEB, 0x66787E30, 0x2D593D64},
16971 {0xD1588D43, 0xE7460BF5, 0xF5413DA5, 0x739447FB, 0x4F3E9EC6, 0x652EF9E1, 0x3F554377, 0xAEE26BE3} } ,
16972 { {0xE7835821, 0x37F122D5, 0xDF87E6EF, 0x3FFFA77A, 0xECCC698F, 0xAEF58E24, 0xC23810D2, 0xB769220B},
16973 {0xE22660C5, 0xEC5990D4, 0xE04C7F4B, 0x86BDB483, 0x045FCEC1, 0xBD550391, 0xE75C4F31, 0x006285EF} } } ,
16974 { { {0x49223B6D, 0x1614792D, 0x54B2ECC3, 0x587BDCDF, 0xB262D805, 0x7163FE44, 0x0688CB20, 0x71E80675},
16975 {0xC1425822, 0x48760821, 0xF61564B9, 0x504EC3F1, 0x55389E01, 0x92D73FB2, 0xDE919569, 0x6F39973E} } ,
16976 { {0xBD7767C4, 0xCA7D6D50, 0xC4369230, 0x1C9D222E, 0xF96C1E42, 0xFABD0BD2, 0x3BC9AD03, 0x653FA02C},
16977 {0x098E8701, 0xFB04C8CB, 0xCCB522AA, 0x30A93324, 0xD5E12B01, 0xB5851EE7, 0x0B6F49BE, 0x9B3AFE69} } } } ;
16979 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4269 a000");
16980 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4270 a001");
16981 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4271 a010");
16982 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4272 a011");
16983 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4273 a100");
16984 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4274 a101");
16985 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4275 a110");
16986 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4276 a111");
16987 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4277 a200");
16988 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4278 a201");
16989 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4279 a210");
16990 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4280 a211");
16993 static const fp12_t var_a = { { { {0xDC9F1518, 0x18A90CA2, 0x37E99CF3, 0x9AC7C105, 0x8E213CBD, 0x76051309, 0x64529979, 0x4E19BE78},
16994 {0xC0604FDC, 0x549C85DD, 0x9883ECA6, 0xCFE4D454, 0x53ADD1B8, 0x4BCED74C, 0x98F17E37, 0x9DE34BD0} } ,
16995 { {0xC06116CB, 0xC0796576, 0x2A685F14, 0x4630D498, 0xC20CE5C7, 0x9342E6E0, 0x9B7585BE, 0x7520E881},
16996 {0xA88B3B21, 0xF5298243, 0x823F0076, 0x1D0167A9, 0x1C3B3635, 0x7755576F, 0x083B8D74, 0x519FA86F} } } ,
16997 { { {0x39183733, 0xD4A132C9, 0x079598F3, 0x16E8758F, 0x581D9492, 0x238A3A14, 0x0BBC99A1, 0x11D70B5F},
16998 {0xA83C9E8C, 0xFFA6E211, 0x75DD125E, 0x17C0D260, 0xA284E470, 0x4B706E0C, 0xE72EF8B5, 0x7AEE78B3} } ,
16999 { {0x1DA4B337, 0x5DA4AA46, 0x5BCDA6A9, 0xAA4EA2D5, 0xD6003AEF, 0xA1305C33, 0x70742BBA, 0xB45488B8},
17000 {0xD48E684C, 0x9B9FD42C, 0xC987E9F0, 0x6B627D37, 0xB5A157F1, 0x64C98C16, 0x51381B14, 0x10D5F814} } } ,
17001 { { {0x81C505C7, 0xA4D8BED5, 0xF2EB1E67, 0xE4EDDF01, 0x01D0918D, 0xC49A2921, 0xC81625AD, 0x2DB7651A},
17002 {0x05D23E5C, 0x2F78D247, 0x672DDCAC, 0x52A3EAB2, 0xB8C226A2, 0x8F63BBA7, 0xA54CDB69, 0x3238C80E} } ,
17003 { {0xBA6B1B4B, 0x32FA78E9, 0xDA1866B0, 0xE4895F33, 0xDD5E929B, 0x86CDB738, 0x4F14A36D, 0x8F32A305},
17004 {0xA9FCEB21, 0x69B93FAD, 0xAB2B3538, 0xC3024876, 0xFED163A7, 0xF7095539, 0xBE6D9852, 0x280B1FD1} } } } ;
17005 static const fp12_t var_expected = { { { {0x96C4602D, 0x85336B02, 0x6D7C69F0, 0x73AC9984, 0x19A4AE7A, 0x5D98F618, 0x4FD41DB7, 0x5B845F07},
17006 {0xE21BECE4, 0xFE1DFF78, 0xF1752560, 0x0CEF0527, 0xED49969D, 0xD3B460F7, 0x2CB5C607, 0xA91757F4} } ,
17007 { {0x47DD5549, 0xD37A90CA, 0x5B4034EA, 0xBBA5F78F, 0x640F02F1, 0x0A26E293, 0x98ABB6A0, 0x8B89DDFA},
17008 {0x0BDF1DAC, 0xF0431632, 0x63A1963C, 0x5690BD8A, 0xB49368DF, 0xE7ACFE90, 0xCD21DE12, 0x5D5DE7F1} } } ,
17009 { { {0x1A080331, 0x2C52F479, 0xBC365B06, 0xA1888A60, 0x6DB99457, 0xD05CD015, 0x9C50A6EC, 0x1658347E},
17010 {0x96C71FB0, 0x4A6CED77, 0x832A2652, 0x43AC9B2D, 0x55741647, 0x7E86CC6F, 0x28E724BE, 0xA166BD5B} } ,
17011 { {0x21950BF5, 0x35083212, 0x74808831, 0xF61BBC2C, 0x5DB50ECA, 0x9CEF656A, 0xCFA01759, 0x3ECBAD6C},
17012 {0xB4DF0BA9, 0x1F1D074C, 0x475802CE, 0xBE16B482, 0x77742E76, 0x7D1B7D42, 0xF64D7DDB, 0x6E1AD26A} } } ,
17013 { { {0x17453DB8, 0x1E390DD6, 0x2019A91F, 0x43BA6D98, 0x5CAFF85B, 0xF90FE7F8, 0xC56DD7AD, 0x1B453136},
17014 {0x07434F69, 0x17135065, 0x206A91CA, 0xF1EF65C1, 0xA5C0CC0D, 0x88F3E733, 0x7B940FBF, 0x95C575F1} } ,
17015 { {0x125A6186, 0x08E3FE1E, 0x1AD063E0, 0x052FDCD0, 0xA72F0670, 0xA9D9AE87, 0x785E9F6E, 0x55EB7425},
17016 {0xC9A2F0B5, 0xD300E240, 0x64FFE502, 0x6CFB143B, 0xFA18203E, 0x097B0D53, 0xCA00D01E, 0x6A092E32} } } } ;
17018 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4281 a000");
17019 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4282 a001");
17020 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4283 a010");
17021 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4284 a011");
17022 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4285 a100");
17023 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4286 a101");
17024 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4287 a110");
17025 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4288 a111");
17026 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4289 a200");
17027 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4290 a201");
17028 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4291 a210");
17029 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4292 a211");
17032 static const fp12_t var_a = { { { {0x5C05C1D7, 0xD1B8DC24, 0x5F995FF3, 0x0B31FFF5, 0xAF8CD3A4, 0x20FE3A65, 0x82A7641E, 0x2A212931},
17033 {0x7F8BCF13, 0x2E9CF7B2, 0xD423EBD7, 0x89DFDB4C, 0xBEF76E49, 0xE17FD053, 0xBB44CEC9, 0x4C9139A6} } ,
17034 { {0x3DD03F08, 0x88484DFA, 0x0FA02E24, 0xFB4B316D, 0xFD93E755, 0x0B223345, 0x1EA41071, 0x8F135F2B},
17035 {0xD33CF11F, 0xA9A2C4B9, 0x92C5AFED, 0x2D829F10, 0x1FB61589, 0xF6708A3B, 0x37223DD6, 0x204153E8} } } ,
17036 { { {0x722930C1, 0xA1F1762F, 0xB61C0C4E, 0x94ADC746, 0x8B5AA808, 0xFF7EDCB1, 0x21474EA0, 0x8FE065CD},
17037 {0xBD470179, 0x4363D8B9, 0x27C54A8B, 0xC4E9CA56, 0xDBE72697, 0x0821AFC7, 0x1025C202, 0x50AEE797} } ,
17038 { {0x4FDD7F4B, 0xA5A0BC6E, 0x638C3045, 0xF7A2A236, 0x5FC1783E, 0xF63AE443, 0xC706B261, 0x3BB5F530},
17039 {0x33CED88A, 0xA472A961, 0x3E549047, 0x8D86F443, 0x98A9DC2B, 0x321C2355, 0x226EC1E6, 0x0D37277C} } } ,
17040 { { {0x084B77E2, 0x5E879F9E, 0x8C51F29F, 0x72F1985B, 0x6A11EFB8, 0x2E8C0443, 0x4E43A243, 0x2B114157},
17041 {0x072DAD11, 0xB6F286F6, 0xF0F14932, 0xF749F6EB, 0xE5A96BA6, 0xD0C5FDB2, 0x4BF03156, 0x0D13ABD5} } ,
17042 { {0x989231E8, 0xD357E67B, 0x3CDB3494, 0xE1404633, 0x2ABCB4C5, 0x11290F09, 0x32B33872, 0x1D393604},
17043 {0xD429FDEF, 0xA0CDE1B1, 0xE9910A34, 0xFC0B9897, 0xE4DFB740, 0x70CD953A, 0xA9DC43B6, 0x30CB68ED} } } } ;
17044 static const fp12_t var_expected = { { { {0x6ABFB5EA, 0xCEFF2120, 0xB7D46106, 0x6934BF4E, 0x7D7AD52F, 0xCEA032B1, 0xBEC7656F, 0x6CA71749},
17045 {0xE5FC9B66, 0x7CFD23B1, 0x6F8C4521, 0x8A522D87, 0x98079574, 0x6F48D24C, 0x556DB4BB, 0xB930991D} } ,
17046 { {0xD5F1E346, 0x522E161E, 0x9AACFCCC, 0x91FA1A9F, 0x4E815ABE, 0xF1A9A398, 0x170D75AF, 0x7B8DD992},
17047 {0x7C18F891, 0x5C297771, 0x1B5C5872, 0x317749E8, 0x24BCB232, 0xFDA8CB3D, 0x0378B1D6, 0x23CA33AC} } } ,
17048 { { {0xD958D766, 0x00BDD445, 0xDB7595EC, 0x42FC90AD, 0x496AC0C7, 0x5299078E, 0x4E41D630, 0x473DA9A9},
17049 {0x310515D3, 0xCFA727F2, 0x11B59896, 0x08226B02, 0xEF07594F, 0x31BC48AD, 0x346AB7BD, 0x7C3E039A} } ,
17050 { {0x2EF67560, 0xF434A4BD, 0xE5FF7AD7, 0x59DDA914, 0x34600F77, 0x20C31113, 0xA186A506, 0x35CA72E4},
17051 {0x590723D2, 0xFFC0D661, 0xF3AEB6BF, 0xB10C54E6, 0x9495B2DF, 0x281DC315, 0x3BAB4C88, 0x34934054} } } ,
17052 { { {0x6433E728, 0xFA19A4B0, 0xC36AEBA8, 0x2FC7B525, 0x2F6EC50F, 0x485B1E90, 0x1AB8A67A, 0xAC708AE8},
17053 {0x4B6CCC15, 0x4AD7C2E0, 0x9721FBCE, 0x0B76973A, 0x31B0B602, 0x0E3278B9, 0x052C15B9, 0x933D98FE} } ,
17054 { {0x7F1C89EC, 0xE87A7202, 0x0AF6262A, 0x28DD6DA4, 0xCB86564B, 0x0EE00E7F, 0xB3C63033, 0x2BB9E6C6},
17055 {0x448D5CE7, 0x25F41555, 0xFB9AFE5F, 0x1E439989, 0x318DE124, 0x79F16B79, 0xF52AAA9C, 0x170AFEC5} } } } ;
17057 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4293 a000");
17058 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4294 a001");
17059 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4295 a010");
17060 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4296 a011");
17061 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4297 a100");
17062 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4298 a101");
17063 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4299 a110");
17064 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4300 a111");
17065 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4301 a200");
17066 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4302 a201");
17067 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4303 a210");
17068 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4304 a211");
17071 static const fp12_t var_a = { { { {0xED282B3A, 0x4E7E33E4, 0xC4C6D3D5, 0xEA76B76F, 0x6DCA36D3, 0x6618D262, 0xB0FA11A6, 0xB3811248},
17072 {0x29872377, 0xCEEF84DB, 0x18BE8DDD, 0x63F07904, 0xFE0D6998, 0xF5F4E729, 0x173A8402, 0x397A77F1} } ,
17073 { {0x5DB6F6B8, 0x59195C6B, 0x2FE6B80C, 0xAE69ABC6, 0x342A9A6D, 0x26A11BCA, 0x05954707, 0x00106842},
17074 {0x5D10B16F, 0xE72D980C, 0xFD140C24, 0x8221E877, 0x2CDF3847, 0x766AF9A6, 0xB3ED7215, 0x12AC6669} } } ,
17075 { { {0xA36B47B7, 0xBA84695C, 0x4A10258F, 0xC8EFBF28, 0xC2FEBB49, 0x7EDAC293, 0x6FA48029, 0x82EE2FBF},
17076 {0xA60B6CFE, 0xD5299201, 0x87C21A67, 0xD98AEECD, 0x53D0A09A, 0x4B7394B7, 0x9AEE95DB, 0x2D0667DA} } ,
17077 { {0x6EB8505A, 0x7E8C45BA, 0x23BA400D, 0x9F4D61A1, 0x9FF25203, 0xF3DBB42A, 0xEAA819FE, 0x9C61E8F3},
17078 {0x77B63CB6, 0xC0D1693F, 0xE2C755DD, 0x28FADE13, 0x986137A9, 0x0E5DF334, 0x29350348, 0x3B6C51CE} } } ,
17079 { { {0xD235185C, 0xEC599DE9, 0x86FD6394, 0x14E8CB52, 0x9185B57D, 0x3DACC504, 0x74699A28, 0x20B28732},
17080 {0x8795996D, 0x12F041C1, 0x7ACBBF04, 0x712F8EEA, 0x6066F74C, 0x960DD344, 0xFC8A63A9, 0x2C103383} } ,
17081 { {0x4BEC1669, 0x8B086F72, 0x0069A09D, 0x8154D65C, 0x995CBB01, 0x4BD67F90, 0x08C442C3, 0x4B3D75D8},
17082 {0xCBC4A787, 0x73BB18A8, 0xFEE8B52A, 0xF6ECF431, 0x5055FB7D, 0xFE92497C, 0xF25A4985, 0x3282FDD5} } } } ;
17083 static const fp12_t var_expected = { { { {0x91F1AB77, 0xC2393986, 0x3983CD84, 0xBD2C976E, 0xA6A7A405, 0xCBEC5F43, 0xAC13C2BB, 0xA2504A87},
17084 {0x73A74A12, 0x4BBE1182, 0x371E5F9A, 0x4135017B, 0xD9AEE2DB, 0xB1D1173C, 0x6CA04FD2, 0x40F41DB5} } ,
17085 { {0x8BD630A3, 0x64A60629, 0x783C0871, 0xC3A49234, 0x83C3DD05, 0xA06C84A3, 0x44F5357B, 0xB2D8C2AA},
17086 {0x58D49F30, 0xC8FB1AC7, 0x78F8E511, 0xBAB9C308, 0xFC14E725, 0x02777979, 0x46514EB0, 0xA912A933} } } ,
17087 { { {0x7FA61918, 0x15530D16, 0x63BAB650, 0xB81485FF, 0xB48B86DF, 0x1AF0842F, 0xA0A63EE7, 0x5D5BE720},
17088 {0xD7C35BF4, 0x53B32BCD, 0x33E3BCFF, 0x3BAB74F4, 0x5586243B, 0x29DAC046, 0x4BB9EA31, 0xAE666662} } ,
17089 { {0x9D06D456, 0x75349E5E, 0xCC5015F9, 0x67E49BFC, 0x7B46BD05, 0x451248A6, 0x9ED76167, 0x10D70BD8},
17090 {0x6826D7C7, 0x24792AEE, 0x4D3D5B55, 0x73661F96, 0x92A1F75C, 0x4A2AE22F, 0x746D5A12, 0x71A0EEFB} } } ,
17091 { { {0x4A11ABA7, 0x46DF7ADD, 0xC4E8EF23, 0x5B3AADDB, 0x69B238A3, 0xF8F7C76B, 0x0C1D16BF, 0x1103E474},
17092 {0x3B241642, 0x4E846A00, 0xB8C1AF91, 0x5C11E839, 0x8492F97B, 0x2878866E, 0x2E6E8B54, 0x98568DBF} } ,
17093 { {0x8AC560BC, 0x3193DA6D, 0x3C62E095, 0xAA435A1F, 0x109D379F, 0xD06B38C3, 0xD4E9BA2C, 0x2005B5BC},
17094 {0xEF03189F, 0x56630DF6, 0x85637AE4, 0x4DC300D4, 0x664E073A, 0x63D51ED3, 0x6540D2BA, 0xA87072DA} } } } ;
17096 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4305 a000");
17097 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4306 a001");
17098 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4307 a010");
17099 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4308 a011");
17100 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4309 a100");
17101 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4310 a101");
17102 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4311 a110");
17103 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4312 a111");
17104 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4313 a200");
17105 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4314 a201");
17106 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4315 a210");
17107 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4316 a211");
17110 static const fp12_t var_a = { { { {0x471F3FB9, 0x28CE4142, 0x5E998C94, 0x10C698AF, 0xFE93B97D, 0x608F070A, 0x6664AE30, 0x42CA9D6A},
17111 {0x141ADA6B, 0xCE77F1C4, 0x860997D1, 0x22F5887E, 0xF9B6225D, 0xA4530439, 0xE662FF0D, 0x04ACBBB6} } ,
17112 { {0xFF4E14DA, 0xC9E01E83, 0x03B8A643, 0x72D2BC9D, 0x9CF0AE4B, 0xF11009EB, 0x88CCA24F, 0x4E69E63C},
17113 {0xFF5783F8, 0x48B13D9A, 0xBB0A4231, 0xF374021E, 0x7CDC662A, 0x107E7460, 0xF61AD4CD, 0x8048A5C9} } } ,
17114 { { {0x86AFE840, 0xB85BF95B, 0xBBF3C1A9, 0x8A279C58, 0x35BF4F68, 0xB943902F, 0x6D88CBC0, 0x421C005F},
17115 {0x19B8FE1E, 0x4E763562, 0x8EE0008F, 0x2E5F701E, 0x42628FC7, 0x2CD9551A, 0xFF56D3EA, 0x6A2404CF} } ,
17116 { {0x32A487D5, 0x7FBED553, 0x94C8BE35, 0x78AD4B45, 0xD007410F, 0xAFB048C2, 0x511D73F5, 0x2EFB9361},
17117 {0xBB00B4D3, 0x873DFA85, 0x801391EA, 0x27312230, 0x434D205E, 0x0B143110, 0x1D450696, 0xACFDAA3E} } } ,
17118 { { {0x970FE0EB, 0xE57CEBE5, 0xDBCF78E5, 0x9E96DEC6, 0xB2DDBD31, 0x0D11A600, 0xB1D93386, 0x64447599},
17119 {0x1AF2B191, 0xDDCAA8EB, 0x7E39995C, 0x61A8E08B, 0x66F4A75B, 0x0676385A, 0x6FA6214D, 0xB82B3E8C} } ,
17120 { {0x8BA3E23C, 0xF58E4AA1, 0x1C90C83B, 0x9C6F8D5F, 0x5FAF3021, 0x4CDE50DA, 0x4BA57CD7, 0x736C77D3},
17121 {0xA9C33BAD, 0x78AEAA5F, 0xB63DF543, 0x9CE4926C, 0xCF31BCED, 0xB7CE1236, 0x50BDB0C5, 0x3FC45A5C} } } } ;
17122 static const fp12_t var_expected = { { { {0x81782478, 0xAA76B07C, 0x937A187E, 0xFD5B2C21, 0x86C729F5, 0x5683436E, 0xA74D1499, 0x3A556633},
17123 {0xAC5D93AA, 0x4C63BB18, 0x47745B79, 0xE350A3B2, 0xCDAE1F8C, 0xC0C0CC0A, 0xCF0DBAED, 0x18814003} } ,
17124 { {0x70CA4219, 0xBA83CA40, 0x89B6E4BA, 0x866881CA, 0xBD9C8BF8, 0x69538366, 0xE299A90E, 0x279252CA},
17125 {0x9150F85F, 0x1707D076, 0x95BBC0E0, 0xE846FF47, 0x2B22FE6C, 0xC522A695, 0xE28CB197, 0x7FDE17B9} } } ,
17126 { { {0xB24B49A6, 0x2B6044AF, 0x6A59D301, 0x2854D98E, 0xACED592B, 0x197B8B7A, 0xFDE97B2F, 0x3ACBD440},
17127 {0x45FE7EA6, 0x56303080, 0x9EE3BBB2, 0xAC07895A, 0x79F6FFB7, 0x26593D9F, 0xD4FE1C59, 0x61E25D04} } ,
17128 { {0xA22154DD, 0xCBDA3CF4, 0x8C955BB8, 0x2707961C, 0x2DE55C54, 0xA030ABD1, 0x4D81D780, 0x8FA5A556},
17129 {0x7E635575, 0x0403E291, 0xD72FF536, 0x6BFF837F, 0xEBA34F8F, 0x47458541, 0x851FF5A1, 0x34107459} } } ,
17130 { { {0xE4989B40, 0x07E6A7B8, 0x7CFE1101, 0x1E28B13D, 0xD60D0875, 0x0DC86281, 0x50C1E4A5, 0x0113415F},
17131 {0xA529DE98, 0x26C386AF, 0xE52A6FA5, 0x69266CBE, 0x41425D57, 0x25C57565, 0x82995CB4, 0xA39B7ECB} } ,
17132 { {0x2C31A205, 0xBC390613, 0x2714F5CF, 0x6147FA85, 0xA8DEADE3, 0xF5D8500D, 0xC29DD373, 0x7B6BA516},
17133 {0x3DA57E48, 0x2C746A77, 0x411C826C, 0x7DDAF759, 0x62BDBDC9, 0x19BB641D, 0xF735EF96, 0x83584EDC} } } } ;
17135 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4317 a000");
17136 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4318 a001");
17137 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4319 a010");
17138 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4320 a011");
17139 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4321 a100");
17140 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4322 a101");
17141 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4323 a110");
17142 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4324 a111");
17143 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4325 a200");
17144 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4326 a201");
17145 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4327 a210");
17146 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4328 a211");
17149 static const fp12_t var_a = { { { {0x23319413, 0xF60005BD, 0x244D99FA, 0x532FC1A9, 0x9C96C052, 0x25E2D6E4, 0x1BD1E928, 0x2D2EE8E9},
17150 {0x1F74D512, 0xC2D4814E, 0x9330B6DE, 0xD8779B58, 0xE2B2E18B, 0xF6050E0A, 0x5E1DB820, 0x31AB42E9} } ,
17151 { {0xB4F85323, 0x7283DC49, 0x02D812CE, 0xE54602EA, 0x6FA8D260, 0x90C69FFC, 0x5FE7716C, 0xA49AADEC},
17152 {0x0CECCF87, 0x64280F17, 0xEF9FD71B, 0x4464ED1B, 0xF2665D54, 0xE14AB96E, 0x365CD063, 0x068F0D68} } } ,
17153 { { {0xD2F955BC, 0x33FB736A, 0x005FD755, 0xB2B1CB3A, 0x1D457FAF, 0xC7A5254C, 0x927B6682, 0x282908CD},
17154 {0xD030C2F8, 0x45C81259, 0x34BEBFA2, 0x9B868DF8, 0xDE35B537, 0xC2886D27, 0xB57DBD92, 0x5D5BB8D1} } ,
17155 { {0x53435153, 0x4011053B, 0xAE3D5539, 0x5B054293, 0x2A68FB58, 0x439A71D2, 0x73FA48B7, 0x49C7F8BD},
17156 {0xB7EEA7C4, 0x904BAA78, 0x12844A8D, 0x63F16240, 0xD1829053, 0x422D3074, 0x788B748C, 0xB883066A} } } ,
17157 { { {0xEA172DF6, 0xE5D40F9F, 0x03544CED, 0xAF702189, 0x08166B91, 0xC1EE8056, 0xBF5A9777, 0x20D4ABF8},
17158 {0x75629353, 0xAFAEFBF4, 0xF4B6EACA, 0x9EA0304F, 0x2E67491E, 0x39223578, 0x1B7ECBD5, 0x09C5556E} } ,
17159 { {0xAEEAECC6, 0xA803404D, 0xB4BACB00, 0xF50FF252, 0x62355FE7, 0x322DB5E5, 0x326AB98B, 0x3283A41F},
17160 {0x27A43D37, 0x48E81969, 0x08B99239, 0xC684E639, 0x9807134D, 0xB158E5AF, 0x3C0DC0D6, 0xAF35FE73} } } } ;
17161 static const fp12_t var_expected = { { { {0x7A601A52, 0x779682C8, 0x6F09EE45, 0xD949E972, 0x6BE74084, 0x17D24C60, 0xDE3560B8, 0x35B4471B},
17162 {0x2BA8DD46, 0xA4834C8E, 0x5380E529, 0x7D380C65, 0x6D7594D5, 0x527BE10A, 0x960C280A, 0x1F862720} } ,
17163 { {0x24E22B1A, 0x07DDE332, 0xA3BD057D, 0xA3DA4E1B, 0xD310C643, 0xA69F3206, 0xD8F27697, 0x65104DFD},
17164 {0xE5E8E234, 0xF771E0FC, 0x04E726E5, 0x513D2DDA, 0x77C0CAC7, 0xF39D9A65, 0x254253B1, 0x93BDA310} } } ,
17165 { { {0x4DB05411, 0xEB2510D2, 0x50BDFEE4, 0xF6BAFD8F, 0x7CEC505E, 0x53AA6253, 0x05989D12, 0x3B4CB406},
17166 {0xA8ADDB4B, 0x652F22EC, 0x0B24C0B7, 0xD9F5B39F, 0xA717CAD4, 0x880EE601, 0x0178FBD6, 0x5E36A9FC} } ,
17167 { {0x62AC89C9, 0xFF7CB726, 0xB94F7C7B, 0x67CB09EA, 0x6BF91099, 0xD3CF60E4, 0xB53C4F52, 0xB5BD1A4E},
17168 {0x71D6E20D, 0x155CDCE9, 0x6D93DF9D, 0xF953F382, 0xCB53514A, 0x52BD4931, 0x93202141, 0x13D67991} } } ,
17169 { { {0xBD810834, 0x64245CA7, 0x2C642093, 0xE684348C, 0xD3046BDE, 0xC9A9F33D, 0x7D7EFBDE, 0xB0A86288},
17170 {0xDF79D4A3, 0xEC4C9FCD, 0xFDB9D67A, 0x9B93B748, 0x312FE643, 0xC7C35581, 0xC1BB403B, 0x23F6B34E} } ,
17171 { {0x795AC0C2, 0x92F6B76B, 0x97D9C34B, 0x3EE4EBC8, 0x1D9DDB47, 0x5D214D65, 0x1877B0B2, 0x7FB15858},
17172 {0xD042F77C, 0x30C5E44C, 0xAD83689C, 0x2B546C17, 0x29F85C43, 0x929982D4, 0x8257AE6B, 0x3AB6AF27} } } } ;
17174 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4329 a000");
17175 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4330 a001");
17176 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4331 a010");
17177 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4332 a011");
17178 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4333 a100");
17179 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4334 a101");
17180 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4335 a110");
17181 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4336 a111");
17182 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4337 a200");
17183 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4338 a201");
17184 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4339 a210");
17185 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4340 a211");
17188 static const fp12_t var_a = { { { {0xD6AFB712, 0x5305730C, 0x3BBA7437, 0x799557A1, 0x2B90D62A, 0xD2730165, 0x08E22914, 0x14714FD8},
17189 {0x783C407A, 0x47228524, 0xE6AA713A, 0x0FE89C9E, 0xA30B3FC4, 0x179A0D04, 0xF847799E, 0x328F9FC4} } ,
17190 { {0x96FB64CA, 0xEC212F70, 0xF9FB88EE, 0xF2B3C3BE, 0x3B942D68, 0x16DB3031, 0x41D3E27C, 0x12161EB5},
17191 {0x670E21F2, 0xD14A2240, 0x0F4112C0, 0x8883C710, 0xC23060A8, 0xF1B7D660, 0xAC341C41, 0x2C6B1BA5} } } ,
17192 { { {0x3F8325B3, 0xC26B3B58, 0x13FE3DE9, 0x18CF3548, 0xB12D9F2F, 0xC12FF835, 0x58DA132B, 0x8A78FBE9},
17193 {0x830DE60F, 0x53A31B4C, 0x718EEC28, 0xF884931A, 0x6157B814, 0x267CAE38, 0x35D628C5, 0x60210F48} } ,
17194 { {0x8A6CA3A2, 0x5BE3A801, 0x69B3BF81, 0x217C5D6E, 0xE36E98EC, 0xC6BD2E06, 0xCAAA0D9C, 0x46AF4981},
17195 {0x2176BD37, 0x7495B37D, 0x8EFA2934, 0xB26437EF, 0x798C29F2, 0xCA585628, 0xB049868D, 0xB8BA99CF} } } ,
17196 { { {0x0AF14BAB, 0x7F4FFC6C, 0x487494DB, 0x6D48D891, 0x1852AB05, 0x6061B6EA, 0x14627738, 0x96A346FD},
17197 {0x783F087E, 0x1E988BEF, 0x53BA147D, 0x389BD68B, 0xEDEDEE2A, 0x3718F017, 0x39FF20C9, 0xA6995481} } ,
17198 { {0x94D9D14C, 0x39BB8D38, 0x3E466DEB, 0x9EDBB5E5, 0xD5EC20F1, 0x06777452, 0xF4769E1D, 0x0D353104},
17199 {0x9A6B231A, 0x7BBF9B38, 0x189F739A, 0x39B22AD7, 0x8FF98065, 0x0A6D9BE0, 0xEE8929BF, 0x208A8B74} } } } ;
17200 static const fp12_t var_expected = { { { {0x3C778AF3, 0x591E2756, 0x4C700AD9, 0x0BF01C6F, 0x47A588ED, 0x32B63B3D, 0xAE6B5796, 0x3DEB598F},
17201 {0xB1CF1093, 0x54F7E067, 0x58B39A41, 0x82A4FF23, 0x892E81E3, 0x2694437B, 0x62DE0256, 0x8F5AF150} } ,
17202 { {0xDA4B1268, 0x7EDD6146, 0xC43FB896, 0x46C705DF, 0x5FECA2A5, 0xF44CF65C, 0x31AFAE05, 0xB8422B91},
17203 {0xD2F7350B, 0xD5E980A3, 0xD9121AC4, 0x88796C05, 0x362CA49D, 0x4BE5791B, 0xBFE83B72, 0x570FAA4E} } } ,
17204 { { {0x1AD34872, 0x8F516F2C, 0x505BEE62, 0x71808754, 0xA84B675C, 0xA4136F43, 0xDEB16484, 0x17DD1C0D},
17205 {0x2BE63DEA, 0xB269EA46, 0x17025A2E, 0xFE4BCF81, 0x25574002, 0xDDE4FC66, 0x7F3DCBF2, 0xB283FF31} } ,
17206 { {0x5CCD3F91, 0xCAC4C31D, 0x23791BD7, 0x46E3E060, 0xDE634757, 0xF7DC6AE6, 0x4B75AC4E, 0x06AFD572},
17207 {0x0CD9E2AC, 0xA4D3DCBE, 0x9C8BDBE1, 0x9BE78C4D, 0xF7932BF4, 0x33F6DC58, 0x6A0312CD, 0x48385507} } } ,
17208 { { {0xAC2ABED3, 0xCA81DD9C, 0xB4ACE955, 0xAE1B80CD, 0x981EB468, 0xD2796ACC, 0xC0A73676, 0xAF7072FD},
17209 {0x2F6DC7C9, 0x95046518, 0x8EA7BF36, 0x1F0C0F99, 0x445B2C9E, 0xC6D01855, 0xD05D0B59, 0x62F51B66} } ,
17210 { {0x4038243D, 0x013BEEB2, 0xA0018EDC, 0x6A2AB8E4, 0x6ACB3FA0, 0x4C6ABBFB, 0xD91C5349, 0xB698FB1A},
17211 {0x5C1050EB, 0xE2B3C97F, 0xAA424BCF, 0x23B51610, 0xB3CDB1D7, 0xE18614EB, 0xE6CC2578, 0x5D13C958} } } } ;
17213 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4341 a000");
17214 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4342 a001");
17215 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4343 a010");
17216 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4344 a011");
17217 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4345 a100");
17218 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4346 a101");
17219 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4347 a110");
17220 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4348 a111");
17221 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4349 a200");
17222 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4350 a201");
17223 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4351 a210");
17224 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4352 a211");
17227 #elif (BNCURVE == BN254)
17228 #ifdef MONTGOMERY_ARITHMETIC
17230 static const fp12_t var_a = { { { {0x5C7E0B5D, 0x3B41A7F8, 0x6EEC0A7F, 0x0B2BBA4B, 0x3024E7DA, 0xDD9E8BF4, 0x322F6EC3, 0x16BFCDF3},
17231 {0x75D2F976, 0x760933EA, 0x9F463E3C, 0xA36B0FEF, 0xBE67624F, 0xAAE4E137, 0xD578EBCD, 0x00C69B04} } ,
17232 { {0x588269D3, 0x84372D37, 0xD1534E9D, 0x3E21D6A7, 0x5B71C946, 0x9DDB895A, 0xCA6F90B9, 0x0910EC57},
17233 {0x2FF4CCCA, 0x16EA69AA, 0xBC25BEB0, 0xF625C7A8, 0xF569D1CC, 0x5668AB24, 0x5DDF8CDE, 0x21FB4529} } } ,
17234 { { {0x740F09F1, 0xE683E262, 0x4992386A, 0xF5601522, 0x8D4EF8E0, 0xFA251BDE, 0x903AEB42, 0x0E49C7D5},
17235 {0x78932ADB, 0x9945A667, 0x1806E958, 0x50319B02, 0xBADE3B6E, 0xB96C66D8, 0x16461927, 0x08F9EB59} } ,
17236 { {0xDDBD2781, 0xEA870EE0, 0xFB262C78, 0xBFC71A1A, 0x23DB4F10, 0xD321C098, 0x5897EB95, 0x06D0A791},
17237 {0x1C410BB9, 0x8773183F, 0x7946C20D, 0xC9B01F24, 0x0894EDC1, 0x602F3050, 0xB3D8A57D, 0x041C6001} } } ,
17238 { { {0x018BFB77, 0x7A5706EB, 0x4CA4ECC6, 0xBF5F66E3, 0xBAC71630, 0x745DC91B, 0xB8EAD1F0, 0x1B4D89A1},
17239 {0x2A5BCB89, 0x7C85AA2C, 0xE38025E9, 0x907DC2DD, 0x1FD1651A, 0x1548E0DB, 0x6BC9EF14, 0x09D5B9F1} } ,
17240 { {0x8BA91B31, 0x27C6FD7B, 0xE1FF4E7A, 0xCC91E378, 0x2F26C505, 0x86B4C074, 0x854B48BA, 0x1CC34E7E},
17241 {0xECDC4275, 0x4857E391, 0x9CDA8FDE, 0xF07B9330, 0x79262869, 0xCD451010, 0x33A56C85, 0x136136CA} } } } ;
17242 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17243 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17244 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17245 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17246 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17247 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17248 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17249 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17250 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17251 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17252 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17253 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17255 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1937 a000");
17256 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1938 a001");
17257 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1939 a010");
17258 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1940 a011");
17259 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1941 a100");
17260 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1942 a101");
17261 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1943 a110");
17262 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1944 a111");
17263 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1945 a200");
17264 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1946 a201");
17265 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1947 a210");
17266 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1948 a211");
17268 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1949 a000");
17269 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1950 a001");
17270 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1951 a010");
17271 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1952 a011");
17272 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1953 a100");
17273 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1954 a101");
17274 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1955 a110");
17275 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1956 a111");
17276 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1957 a200");
17277 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1958 a201");
17278 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1959 a210");
17279 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1960 a211");
17282 static const fp12_t var_a = { { { {0x695173EB, 0x2D7D3C01, 0x9EE24EB0, 0x5A5B295F, 0x9F391F9F, 0xD4C58B9F, 0x14CC2C56, 0x1DAD49BD},
17283 {0xF12EE250, 0xFCA1AD7B, 0x2854D3F2, 0xBAD65499, 0xD53D6162, 0x02B5B719, 0x7E9C0E62, 0x0582668C} } ,
17284 { {0xC98FD2CF, 0x4E05B750, 0xAAF8AAD0, 0x05658FEE, 0x6646A438, 0x126D32CC, 0x39D38F9D, 0x243E4482},
17285 {0x06F7E8AE, 0xE7030328, 0x4C19C926, 0xFE8AC577, 0x2FAA5F26, 0x6CF23FCE, 0x02DABBF9, 0x074A9851} } } ,
17286 { { {0x161708FB, 0x27DB0B72, 0x6941EC9D, 0x2776FF7D, 0x226250E6, 0x17ACDEFA, 0x0A62E6E8, 0x0EC8DC8E},
17287 {0x38E8AFC7, 0x57187B8C, 0x0ED1ED35, 0xE447382B, 0xC5B7E057, 0x1DD2B4C9, 0x35CD7FB1, 0x18285637} } ,
17288 { {0xFF0E9AA4, 0xAB7DE421, 0x805FD82B, 0x18B68B27, 0xB043B830, 0xA0A643BA, 0x5C6B705B, 0x1CF1E5E2},
17289 {0xD392061A, 0xC486BEDE, 0xB3EDFBF6, 0x5C7B70BD, 0x133C31A1, 0x0BA08B60, 0x8B7F6191, 0x0499183C} } } ,
17290 { { {0x6FE40870, 0x5B7ABA2F, 0xD3E869CF, 0x3347C51F, 0x2D136AB4, 0x20559FB6, 0xC320D315, 0x1758614F},
17291 {0x6434A560, 0x320CDE5F, 0xBFFC7537, 0x5B57B734, 0xD6652205, 0xDA016E45, 0x39DF0137, 0x1F5C2E16} } ,
17292 { {0x9519B121, 0xF8870017, 0x89B63316, 0x0D94E5D8, 0xF639B661, 0x4630D73F, 0x1543E744, 0x05DE0C3E},
17293 {0xB987B242, 0x09948DEB, 0xF7F61A33, 0x65E843E6, 0x0B8DD223, 0xA47D81AB, 0x3513DF47, 0x05B1EAB3} } } } ;
17294 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17295 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17296 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17297 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17298 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17299 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17300 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17301 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17302 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17303 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17304 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17305 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17307 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1961 a000");
17308 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1962 a001");
17309 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1963 a010");
17310 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1964 a011");
17311 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1965 a100");
17312 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1966 a101");
17313 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1967 a110");
17314 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1968 a111");
17315 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1969 a200");
17316 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1970 a201");
17317 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1971 a210");
17318 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1972 a211");
17320 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1973 a000");
17321 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1974 a001");
17322 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1975 a010");
17323 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1976 a011");
17324 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1977 a100");
17325 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1978 a101");
17326 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1979 a110");
17327 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1980 a111");
17328 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1981 a200");
17329 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1982 a201");
17330 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1983 a210");
17331 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1984 a211");
17334 static const fp12_t var_a = { { { {0xDD153715, 0xDB88AF74, 0x05352F49, 0x22BFA26A, 0xA832BD70, 0x490D06F7, 0x2772BB3C, 0x0E17CE38},
17335 {0xDF945D40, 0xD843430C, 0x61906125, 0xCCAED661, 0xF0024A8D, 0x623C56AE, 0x72C851F0, 0x1B97F734} } ,
17336 { {0xF4F58B8E, 0x95A3373A, 0xEEB31160, 0x4BB4E1F7, 0x1F59D72C, 0xCFF7B576, 0xCE7ECA1D, 0x0167AF69},
17337 {0x22818B13, 0x91863A95, 0x4288D85C, 0x7024ABCF, 0x02E2EB4D, 0x7B643C6C, 0xA7843D55, 0x0FA9FAFE} } } ,
17338 { { {0xC75B8521, 0x9A54D5BE, 0x27B606AF, 0x057A1A0B, 0x79BA4F6F, 0x77E1615F, 0x5EB465B6, 0x1A47EAE9},
17339 {0x105F98D7, 0x02265B03, 0x1DF97FBA, 0x3E14A0D9, 0xFCDDBA4E, 0xC872D6FA, 0x08F47458, 0x0C1F2E5D} } ,
17340 { {0x833E091E, 0xCE754A10, 0xD741E434, 0x7E148A22, 0x13E57225, 0x6902D2D5, 0x6D33536F, 0x130D42DA},
17341 {0x76FE315C, 0x86570426, 0xBAA81B70, 0xDBD1A878, 0xDD137262, 0x8D49AD2D, 0x4A39D248, 0x1C702444} } } ,
17342 { { {0x95BACD56, 0x1A54FB23, 0x6130D1E0, 0xD68B22E5, 0x8AB8F14B, 0xEF78BB46, 0x8F39A0EB, 0x12357857},
17343 {0x60BC3732, 0x11C5BBD0, 0x1B586A0C, 0x16757F3F, 0xE1D971BE, 0xDB3232EC, 0x62400328, 0x111F199E} } ,
17344 { {0xAAE1AC3B, 0x24C26FC9, 0x6B7E6595, 0xA34842B9, 0xBB35984A, 0x532DB372, 0x1B70A72E, 0x0C7EF275},
17345 {0x1B53C2C0, 0x8BA7C096, 0x87136580, 0xF240A2FB, 0x868F808E, 0x492DE964, 0xC6090ADF, 0x078434BC} } } } ;
17346 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17347 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17348 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17349 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17350 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17351 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17352 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17353 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17354 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17355 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17356 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17357 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17359 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1985 a000");
17360 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1986 a001");
17361 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1987 a010");
17362 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1988 a011");
17363 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1989 a100");
17364 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1990 a101");
17365 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1991 a110");
17366 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1992 a111");
17367 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1993 a200");
17368 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1994 a201");
17369 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1995 a210");
17370 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1996 a211");
17372 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1997 a000");
17373 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1998 a001");
17374 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1999 a010");
17375 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2000 a011");
17376 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2001 a100");
17377 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2002 a101");
17378 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2003 a110");
17379 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2004 a111");
17380 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2005 a200");
17381 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2006 a201");
17382 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2007 a210");
17383 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2008 a211");
17386 static const fp12_t var_a = { { { {0xAF8A8CC0, 0x4C21387F, 0xDA9B2FA2, 0xA69830B6, 0xC24E5845, 0x91A7DCB1, 0xE4454B8C, 0x1AA8B09C},
17387 {0x36AA307A, 0x1AD082D1, 0x838262D8, 0xFA7D8BC5, 0x876D5FA4, 0xF2FC2FF9, 0x6AFF7072, 0x0642CA31} } ,
17388 { {0xD221DADE, 0x1B76368B, 0xD4BBC122, 0x715F5829, 0xFEB6A888, 0x8AECB051, 0xC03364E0, 0x19DCFC98},
17389 {0x7BA64EA0, 0x18BBFD72, 0xD3373A6C, 0xD55F34D9, 0xE4553333, 0x2035E836, 0x0342331C, 0x16A43996} } } ,
17390 { { {0x7E789A1C, 0x43784BF7, 0xBC2423FB, 0x19A14E28, 0x0AB33742, 0xBB4BEA9A, 0x431363BB, 0x0D6E6820},
17391 {0xFAF98E09, 0x0C9EF764, 0x7C014C86, 0xFA09D9CF, 0xD7A3C0F8, 0xF78FDD12, 0x46F958BD, 0x1035A109} } ,
17392 { {0x62950DC7, 0x34A16753, 0x3880C1E7, 0xE4F594E8, 0xC4E8F14C, 0x53DFCBC2, 0x836F27B5, 0x115F11EE},
17393 {0xFEF3579C, 0xBB7A2476, 0xC4388F87, 0x184E0414, 0xDFFB8068, 0xE166FD66, 0x28A347EC, 0x04AE2E1D} } } ,
17394 { { {0x6984E6D9, 0xF33B005E, 0x2D2BC67C, 0x3E5529D6, 0x492F5D58, 0x500229F9, 0xD5D0094E, 0x0ED6138A},
17395 {0x14516A5A, 0xFD292D16, 0x3012873D, 0xB6CDD4A8, 0xB81B7E8A, 0x403CAF52, 0xDF67C65E, 0x082B729A} } ,
17396 { {0xC2261727, 0xD174E8F3, 0xC085F2F3, 0x6553D0A1, 0xF65E4701, 0x7966263D, 0xCE0D1A32, 0x12BF5A1D},
17397 {0x0A0B4D50, 0x7B719A61, 0x84ED308C, 0x83E7939D, 0x5FAA149A, 0x1319B371, 0xDE62B61B, 0x18DF131F} } } } ;
17398 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17399 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17400 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17401 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17402 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17403 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17404 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17405 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17406 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17407 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17408 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17409 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17411 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2009 a000");
17412 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2010 a001");
17413 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2011 a010");
17414 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2012 a011");
17415 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2013 a100");
17416 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2014 a101");
17417 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2015 a110");
17418 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2016 a111");
17419 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2017 a200");
17420 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2018 a201");
17421 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2019 a210");
17422 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2020 a211");
17424 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2021 a000");
17425 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2022 a001");
17426 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2023 a010");
17427 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2024 a011");
17428 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2025 a100");
17429 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2026 a101");
17430 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2027 a110");
17431 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2028 a111");
17432 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2029 a200");
17433 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2030 a201");
17434 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2031 a210");
17435 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2032 a211");
17438 static const fp12_t var_a = { { { {0xD9022FDE, 0x826D8EE8, 0x5643E776, 0x71F529C0, 0x6721C990, 0x4C35F5A0, 0x029E9110, 0x1C5F45B5},
17439 {0xED28E1A2, 0x4C10A43E, 0xC5A5E4EF, 0x9AC688C6, 0x12087CC6, 0x9B184E23, 0x9CF97EF3, 0x115F05EB} } ,
17440 { {0x5A1453DC, 0x3D489CA7, 0x94BAD59F, 0xA00B8412, 0x7AC19C2E, 0x27FDCFCE, 0x87E87935, 0x22CFB952},
17441 {0x098FFA40, 0xC5CFE38B, 0x39E12E0B, 0x59860F94, 0x4D1E28B7, 0x553D974A, 0xCE272EA0, 0x07ACF9DF} } } ,
17442 { { {0x349CC011, 0x2839FDC0, 0x5F35BE3C, 0xA8DD7EB2, 0x4DFBC89F, 0x38509DD4, 0x3192863E, 0x14956980},
17443 {0xECCE12DE, 0x9D93ECA1, 0x646190FC, 0xF198F820, 0xCE2FFEF9, 0x78A803BC, 0x27D14C37, 0x0684778B} } ,
17444 { {0x93F0E7FE, 0x1B9746C0, 0xDB400465, 0xE1135C19, 0x3BCC9FDB, 0xD0D1750D, 0x57D023F8, 0x1C8380D1},
17445 {0x62F70EB2, 0x0F69C5A8, 0x0C5344FE, 0xBA2625D1, 0x91A85D27, 0x19888E47, 0xDE0F679E, 0x13E31FBD} } } ,
17446 { { {0xE44C2652, 0xB3EB84F0, 0x6FFD8FEF, 0xA379321C, 0xE14211D3, 0xCABBD5B9, 0x0CB7B8C6, 0x16A35F68},
17447 {0x796418DE, 0xC19A4882, 0x359EF10D, 0x78617019, 0xD3EDFC1A, 0x905F1693, 0x268548A6, 0x0966BCE7} } ,
17448 { {0xD4A1FB4A, 0x3B006DED, 0xBF6E59C4, 0xE759C775, 0x1E4F5299, 0x297CC715, 0xE6891DA1, 0x1E689029},
17449 {0x7E8F8EBC, 0x8FB7664A, 0x243646D9, 0x9A19D349, 0x112E99E0, 0xE6BF3034, 0x76ABECAE, 0x1E93DACA} } } } ;
17450 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17451 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17452 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17453 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17454 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17455 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17456 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17457 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17458 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17459 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17460 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17461 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17463 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2033 a000");
17464 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2034 a001");
17465 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2035 a010");
17466 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2036 a011");
17467 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2037 a100");
17468 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2038 a101");
17469 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2039 a110");
17470 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2040 a111");
17471 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2041 a200");
17472 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2042 a201");
17473 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2043 a210");
17474 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2044 a211");
17476 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2045 a000");
17477 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2046 a001");
17478 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2047 a010");
17479 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2048 a011");
17480 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2049 a100");
17481 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2050 a101");
17482 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2051 a110");
17483 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2052 a111");
17484 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2053 a200");
17485 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2054 a201");
17486 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2055 a210");
17487 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2056 a211");
17490 static const fp12_t var_a = { { { {0x5165ED89, 0xDDF4F022, 0xB0CB5DC3, 0x667D40D7, 0x0D92D728, 0x16FF8E02, 0xB90946CE, 0x1FCC3D8A},
17491 {0xFDDE0381, 0x03AD4DAE, 0x5F699F6F, 0xDEEDD572, 0x093180A8, 0x0BB8DF37, 0x832123D7, 0x1B63A7F5} } ,
17492 { {0x8662EDC7, 0x4346399C, 0x66CE21B7, 0x00DB8CB8, 0x0D2EA40C, 0xA1F4848E, 0xDBCA1F0D, 0x03FA355B},
17493 {0xC47653BB, 0x57D4739B, 0xAB318812, 0x9EE63ABF, 0xB727DFB1, 0x17331A8D, 0x80FFE77A, 0x00A3BBA9} } } ,
17494 { { {0xE1895A57, 0xDCE901C3, 0x48048AFE, 0xE6D29E61, 0xB996EC5D, 0xA42F506E, 0xA17BA455, 0x116605DC},
17495 {0xDF07D085, 0x06FC8607, 0x0C844515, 0x70EEF8DA, 0x587CF978, 0x5D690B89, 0xE4237073, 0x167A9A90} } ,
17496 { {0x10C19417, 0xA7515BF0, 0xF91D40E0, 0x4BAF5BE5, 0xEF600DC0, 0xABCF403B, 0x203E20ED, 0x14708FAD},
17497 {0x9CA07D1F, 0x70813FD2, 0xC7A04659, 0x8F7D6F40, 0x6AA2249F, 0x31321964, 0xA283E9D8, 0x0222F022} } } ,
17498 { { {0xFEB224AE, 0xEF84CFEF, 0x603F8211, 0x3A885907, 0xCC12D6A0, 0x13F3B185, 0xACF2AB72, 0x067144E0},
17499 {0x877C649F, 0x9B581702, 0x62638F2E, 0xED8CE884, 0xA9E69D54, 0x3B0BCCEF, 0xF17DEFB6, 0x1AC36658} } ,
17500 { {0xDA9F77B8, 0x892BEBD5, 0xA04F5D15, 0x04895C45, 0xACF32736, 0x2D72C00D, 0x9B86DB40, 0x0D9CC924},
17501 {0x6ED4F6E7, 0x9321E5DC, 0xA19215AB, 0x728F50FD, 0x133F337C, 0x4A089FF1, 0x0626B36F, 0x20A2F8B6} } } } ;
17502 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17503 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17504 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17505 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17506 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17507 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17508 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17509 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17510 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17511 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17512 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17513 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17515 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2057 a000");
17516 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2058 a001");
17517 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2059 a010");
17518 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2060 a011");
17519 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2061 a100");
17520 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2062 a101");
17521 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2063 a110");
17522 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2064 a111");
17523 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2065 a200");
17524 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2066 a201");
17525 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2067 a210");
17526 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2068 a211");
17528 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2069 a000");
17529 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2070 a001");
17530 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2071 a010");
17531 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2072 a011");
17532 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2073 a100");
17533 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2074 a101");
17534 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2075 a110");
17535 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2076 a111");
17536 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2077 a200");
17537 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2078 a201");
17538 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2079 a210");
17539 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2080 a211");
17542 static const fp12_t var_a = { { { {0x102D2F32, 0xF1A12ACB, 0x20496DDE, 0xB7AF9C7D, 0x2EDCE8C6, 0xA55CA62C, 0x8248A058, 0x02ECD692},
17543 {0x5EAE89A5, 0x65375B9D, 0x8A301218, 0xA1804454, 0xE31ABFEF, 0x14189DDD, 0x5497D705, 0x05C2E9E1} } ,
17544 { {0x4C350527, 0x95034BAC, 0x838907B4, 0x9997C6EA, 0x2D064A96, 0xAD2CAE4D, 0x75355FBB, 0x062AC8CD},
17545 {0xA3ADE73C, 0x2EBD6AC6, 0x61CA45BB, 0x898E53EA, 0x98327E24, 0x00F9D0C7, 0x52460296, 0x0F2E5F97} } } ,
17546 { { {0x7D9842FD, 0x9C41FFA0, 0xAF21D65F, 0x650CCB6E, 0xC7DC6298, 0x6F815374, 0x4A4A3BA9, 0x062EBA51},
17547 {0xCBE2E857, 0xFEB38A55, 0xACC83602, 0xFBEB8E19, 0xEF572A7B, 0x8A070A59, 0x734B1FBB, 0x222FBB17} } ,
17548 { {0xCF0BD040, 0x382D090A, 0xCA25EBD6, 0x09D76D65, 0x59CC1F5F, 0x85928ABC, 0x16D39333, 0x06BB0BD9},
17549 {0xA29B3247, 0xD701E354, 0x2FBF53DC, 0x475B58B5, 0xE345FD14, 0xF3F37032, 0xEEB959E4, 0x1B1C8266} } } ,
17550 { { {0xAFE9CB5E, 0xAC8AB667, 0x37FD4CA7, 0x46E99077, 0x8012856A, 0x825E94BC, 0x2DBBB655, 0x0DCE8833},
17551 {0x3633FCC1, 0x408B5B8E, 0xF0BC2372, 0x9A9D7A5F, 0xB4707815, 0x2305D759, 0x38E8C7D8, 0x21031B12} } ,
17552 { {0xCA01C8BD, 0x9C1FC219, 0x9CB2ED74, 0xB12E5628, 0x188E4509, 0xB065954C, 0xE6DBC690, 0x0B4EFD95},
17553 {0xD3E1EDCB, 0x343D8F60, 0x339C4CD8, 0xF77A7D8B, 0xDCD50694, 0x95A3A345, 0x84C8CBDF, 0x1E1DC707} } } } ;
17554 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17555 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17556 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17557 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17558 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17559 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17560 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17561 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17562 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17563 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17564 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17565 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17567 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2081 a000");
17568 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2082 a001");
17569 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2083 a010");
17570 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2084 a011");
17571 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2085 a100");
17572 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2086 a101");
17573 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2087 a110");
17574 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2088 a111");
17575 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2089 a200");
17576 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2090 a201");
17577 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2091 a210");
17578 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2092 a211");
17580 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2093 a000");
17581 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2094 a001");
17582 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2095 a010");
17583 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2096 a011");
17584 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2097 a100");
17585 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2098 a101");
17586 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2099 a110");
17587 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2100 a111");
17588 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2101 a200");
17589 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2102 a201");
17590 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2103 a210");
17591 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2104 a211");
17594 static const fp12_t var_a = { { { {0x0D698CF6, 0xD9C49819, 0xDE431B6C, 0x6314F114, 0x408FAD67, 0xF4D33516, 0x544FD64B, 0x16A86218},
17595 {0x078D1247, 0x8D20A3F6, 0x7D52A6B7, 0xE0B74549, 0x1ACC7176, 0xAEAFFE16, 0x0930276B, 0x245E25CD} } ,
17596 { {0xA6497406, 0x7B750210, 0x22F26259, 0x95EB4920, 0x53A7E172, 0x45B51E5B, 0x0CBE348A, 0x1124316D},
17597 {0x9F97DD58, 0x6E650164, 0x94403887, 0xF6C5F02F, 0x6AD328FC, 0xE176ED88, 0x7B2EC43B, 0x15D95DB4} } } ,
17598 { { {0x00B35CB4, 0xDD5D2F67, 0xCD91E8AC, 0xC0DF5B03, 0xEF787166, 0xD8A53D78, 0xE4B0F15F, 0x1EDCE417},
17599 {0xA7B14445, 0x1A78F864, 0x7C82212C, 0xC4E80102, 0x0965630B, 0xB37DCA3C, 0x4F5931B8, 0x0BCECD2C} } ,
17600 { {0xC9692D96, 0x1FED283A, 0x84DA31C9, 0x66CA61FB, 0xF1873EE8, 0x6BE74D75, 0x71DE92A3, 0x18B6C9B7},
17601 {0x6DA8ED82, 0xE5103EC5, 0x7B3F87D4, 0xAC21BFE3, 0x75C30773, 0xA4E29254, 0x3A1ED292, 0x20D5369C} } } ,
17602 { { {0xEFB7E633, 0xEEE5A642, 0x2CB764F6, 0x53CCBC8E, 0x7609B745, 0xB62318B7, 0x487DFE22, 0x089E3272},
17603 {0x7D36705D, 0x5D3E56AD, 0x15FA6D2C, 0x6892EB3C, 0x6ACA79AB, 0xA2984490, 0xF110C39F, 0x1C2942B1} } ,
17604 { {0x9D3C5773, 0xB26A4826, 0xEA95FF65, 0x803AA3A1, 0xDAB363E3, 0x22668824, 0x7E939926, 0x1BD2B301},
17605 {0xA5D3AB26, 0xCF7BDE57, 0x10E07DE5, 0x0B04AB9E, 0xE5BE2E0C, 0x672FC659, 0x2A3B72A7, 0x23063E1F} } } } ;
17606 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17607 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17608 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17609 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17610 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17611 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17612 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17613 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17614 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17615 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17616 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17617 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17619 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2105 a000");
17620 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2106 a001");
17621 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2107 a010");
17622 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2108 a011");
17623 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2109 a100");
17624 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2110 a101");
17625 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2111 a110");
17626 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2112 a111");
17627 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2113 a200");
17628 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2114 a201");
17629 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2115 a210");
17630 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2116 a211");
17632 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2117 a000");
17633 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2118 a001");
17634 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2119 a010");
17635 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2120 a011");
17636 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2121 a100");
17637 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2122 a101");
17638 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2123 a110");
17639 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2124 a111");
17640 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2125 a200");
17641 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2126 a201");
17642 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2127 a210");
17643 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2128 a211");
17646 static const fp12_t var_a = { { { {0x42BC5634, 0xF11231C4, 0x23B8F5D5, 0x92AA9253, 0xBC8ECF29, 0xE6655EC6, 0xA7469AAA, 0x10E9FEF2},
17647 {0xF2843109, 0xC2BFBCEF, 0x701ACDC9, 0x0B7EBE46, 0x241F1B35, 0x1B2C12F5, 0x9971EB3E, 0x096F6AB8} } ,
17648 { {0x8AF09A66, 0xF9F40964, 0x7C825936, 0x7FAC875E, 0xF7C2B49A, 0x07079BC6, 0x592A8E01, 0x004B2C76},
17649 {0xB0ACC13C, 0xC4873298, 0x7B1D94F5, 0xCC6CF918, 0xA372F2F7, 0x0F88E5C8, 0xF39ED888, 0x1067C7E0} } } ,
17650 { { {0x61581EFD, 0x1CBC66E7, 0xD9CC5BB2, 0x7403F9F0, 0xA96A91BF, 0xF2833545, 0x689214BE, 0x19791FF0},
17651 {0x6DDADDC3, 0x74EDD3DF, 0xB5F8D234, 0xC9CBFF27, 0x1F1A41AB, 0xD47780DE, 0x6D1136F7, 0x23E7EE89} } ,
17652 { {0xF60720E6, 0x4AB68E5E, 0x6132DF4F, 0x350D953B, 0x2F61816C, 0x5C89836F, 0x6AE1CC06, 0x00C94A0C},
17653 {0xF59A6E00, 0x46B6621F, 0xE4A6EDFF, 0xA61A4626, 0x961F4BC6, 0x986A6DAA, 0x7DD3BA05, 0x15BC3680} } } ,
17654 { { {0xB578AE1F, 0x29E1A9A1, 0x78615FF4, 0xFC39C42B, 0x25137222, 0xEDD20FD1, 0xB4DA78B8, 0x227E90EE},
17655 {0x56487CE5, 0xBD5F8D85, 0x0C5E46EA, 0x927C5858, 0x4406D36B, 0x3E92E329, 0x96F5F3F9, 0x1429D0FB} } ,
17656 { {0x4B59CAD5, 0x6AFE51CF, 0xC26B6BEB, 0x3AD4EF0B, 0x6A4EA9D2, 0xC189CBCC, 0xDBED52AF, 0x02A6137F},
17657 {0xDCD9015C, 0x683192D0, 0x72DFB896, 0x3BC25AE1, 0xA69AA5C9, 0x5C6F58E0, 0xAFDD19A5, 0x0954079B} } } } ;
17658 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17659 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17660 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17661 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17662 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17663 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17664 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17665 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17666 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17667 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17668 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17669 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17671 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2129 a000");
17672 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2130 a001");
17673 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2131 a010");
17674 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2132 a011");
17675 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2133 a100");
17676 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2134 a101");
17677 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2135 a110");
17678 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2136 a111");
17679 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2137 a200");
17680 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2138 a201");
17681 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2139 a210");
17682 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2140 a211");
17684 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2141 a000");
17685 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2142 a001");
17686 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2143 a010");
17687 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2144 a011");
17688 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2145 a100");
17689 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2146 a101");
17690 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2147 a110");
17691 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2148 a111");
17692 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2149 a200");
17693 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2150 a201");
17694 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2151 a210");
17695 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2152 a211");
17698 static const fp12_t var_a = { { { {0xA55D2854, 0x2AA187D1, 0x26167BB3, 0xD0108A02, 0x1912A088, 0x325297A6, 0x738B9891, 0x00492295},
17699 {0x15B4C3E5, 0x204EC6F6, 0x9CC718D4, 0x2095E082, 0x7AC2FFC5, 0x554F2CE1, 0xFC988AF6, 0x07E15A77} } ,
17700 { {0xF00E6F4F, 0x2A400B4A, 0xC7284360, 0x53A3E4A8, 0x905E31FD, 0xEE37A11C, 0x527548EF, 0x24E363BD},
17701 {0xCE785447, 0x8CC4003F, 0x4EDE9E1D, 0xF35DF528, 0xBC4CC784, 0x28FE984A, 0xF22E0CB0, 0x0F8A9135} } } ,
17702 { { {0x9A9B21B6, 0xCF421A87, 0x0CBF81E4, 0x1956B932, 0x6C051D3C, 0xFFC16D7F, 0x8D08151C, 0x22FB5B6B},
17703 {0x13D70F20, 0xFC99E989, 0x8E6646CA, 0xD85475DB, 0xA9C1973C, 0xE704C9EE, 0x07EAB304, 0x21889CA2} } ,
17704 { {0x4EA70E9D, 0xF6129061, 0x989735C3, 0xC02487DF, 0x8A79DE5D, 0x8079ABA5, 0x79948A3F, 0x1A542B3E},
17705 {0x325B43CE, 0x56DF2CCD, 0xA06E28D0, 0x1B8DA4ED, 0xBE32A311, 0x6EE7FD99, 0xEFB08754, 0x042EE82C} } } ,
17706 { { {0xFA1A5949, 0xDC2D6B25, 0x52644E0D, 0xB995AAAE, 0x079FD735, 0x3D7F664D, 0x6AA6690C, 0x19277EDF},
17707 {0xB73E5B3F, 0x2FC29101, 0x0A20C12A, 0x56AD0B85, 0xB90A6728, 0x7D6761A6, 0x9E4CD24E, 0x10003EDF} } ,
17708 { {0xCCF41310, 0xBF30B6E5, 0x5D1AD08E, 0x8FCE3A8F, 0x3F9BCFC2, 0x5D21A1BC, 0x765B358A, 0x0A72374D},
17709 {0x703828E0, 0x9596F504, 0x900F2EBE, 0x716F96D0, 0x97DD34C5, 0xE3EE15C8, 0x4CBF2B4F, 0x062BE0C9} } } } ;
17710 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17711 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17712 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17713 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17714 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17715 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17716 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17717 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17718 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17719 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17720 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17721 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17723 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2153 a000");
17724 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2154 a001");
17725 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2155 a010");
17726 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2156 a011");
17727 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2157 a100");
17728 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2158 a101");
17729 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2159 a110");
17730 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2160 a111");
17731 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2161 a200");
17732 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2162 a201");
17733 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2163 a210");
17734 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2164 a211");
17736 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2165 a000");
17737 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2166 a001");
17738 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2167 a010");
17739 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2168 a011");
17740 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2169 a100");
17741 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2170 a101");
17742 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2171 a110");
17743 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2172 a111");
17744 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2173 a200");
17745 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2174 a201");
17746 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2175 a210");
17747 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2176 a211");
17750 static const fp12_t var_a = { { { {0x2F1872E9, 0xD5EED4DC, 0x1F426AA7, 0x692EB084, 0xD1A4C569, 0xE7810FAA, 0xF1AFF56B, 0x0A22F2F3},
17751 {0x694C3E7C, 0xE1EE2A31, 0x388D5F77, 0xB2D4FD88, 0x93388F77, 0xCCA8E9CF, 0xEB9535D9, 0x225F6533} } ,
17752 { {0xD21D89C3, 0x567935BA, 0x3D478355, 0x81D04779, 0x98D31742, 0x3B0CBFCE, 0xF1CD2D6E, 0x130B3CAB},
17753 {0xF09B5802, 0x95A2BCA8, 0x46F43D01, 0xA4CD6893, 0x2C725AC5, 0xB3DBBDC0, 0xF12D0B11, 0x16FD916C} } } ,
17754 { { {0xA123AE6C, 0xF93765FE, 0x9DC8B6C2, 0x3D6A2CB7, 0xB2F0FDD3, 0x9BE7099A, 0x0B60067C, 0x14A41636},
17755 {0x9235E515, 0x7FE7949A, 0x40FBC249, 0x30AD60DF, 0x1E7AE1B0, 0x73B02805, 0x9410663C, 0x0E06045E} } ,
17756 { {0xC89C573E, 0xEFF089C6, 0x62E8CCB5, 0x8B4E6B41, 0x7C465864, 0xA3DE9178, 0x54E1ABF2, 0x15D33C59},
17757 {0x1BE594DD, 0x685D88FD, 0xEA0306E7, 0x576FFCD8, 0x67A9ADF6, 0x3941C9A1, 0xC83D7637, 0x0FC6C720} } } ,
17758 { { {0xB621A717, 0x7CDD3EA8, 0xF29B1C77, 0x2A70A085, 0x9270D26B, 0xE5059A18, 0x20EAE079, 0x18406EF2},
17759 {0x99030B9E, 0x7F1DC584, 0x496B4263, 0xEEBF5708, 0x439237F9, 0xE62DBA0B, 0x827B6E9D, 0x15A9FA0D} } ,
17760 { {0x17407867, 0x45BBD57E, 0xF2FB66B1, 0xB0446F1F, 0xD32B59F9, 0xA873FC25, 0xC584C45E, 0x0FF461E3},
17761 {0x584790DD, 0x70C925CE, 0xA3D9C271, 0xF16348B7, 0x2FD0626F, 0x3F7B0CBC, 0x37A8C46F, 0x13B6A79C} } } } ;
17762 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17763 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17764 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17765 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17766 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17767 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17768 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17769 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17770 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17771 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17772 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17773 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17775 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2177 a000");
17776 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2178 a001");
17777 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2179 a010");
17778 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2180 a011");
17779 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2181 a100");
17780 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2182 a101");
17781 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2183 a110");
17782 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2184 a111");
17783 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2185 a200");
17784 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2186 a201");
17785 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2187 a210");
17786 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2188 a211");
17788 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2189 a000");
17789 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2190 a001");
17790 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2191 a010");
17791 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2192 a011");
17792 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2193 a100");
17793 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2194 a101");
17794 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2195 a110");
17795 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2196 a111");
17796 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2197 a200");
17797 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2198 a201");
17798 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2199 a210");
17799 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2200 a211");
17802 static const fp12_t var_a = { { { {0xD84A098F, 0x18D9FB4A, 0x47942BC8, 0x373DBEA6, 0x5A26EA1B, 0xD36A2669, 0x5875CCA3, 0x11044AF4},
17803 {0xE693F3BB, 0x16A0680B, 0x7C92D486, 0xE3E45FB6, 0xE9D7D218, 0xA9E1FA84, 0x1D0A2633, 0x1A47790D} } ,
17804 { {0x262A3704, 0x2726C385, 0x16B466D0, 0xB16CB3C1, 0x85CFA88D, 0x005325B8, 0xEE94F354, 0x210839B9},
17805 {0x10CA6015, 0xE2894AA7, 0x9AC49F63, 0x6947289A, 0x6DC718E3, 0x4FB9622E, 0xA89C1F08, 0x026B4A97} } } ,
17806 { { {0x6F2B4D18, 0x9E470F88, 0xC4BDCE33, 0x238D7AF3, 0xF1275BCF, 0x20529135, 0x5B191CC8, 0x206B6B1D},
17807 {0xE297648E, 0xDE2686A7, 0x01DAF8E7, 0xC383AA09, 0xF835AC71, 0xA36DDA96, 0x0C627A33, 0x11DE9275} } ,
17808 { {0x5ED1689E, 0x24A066E7, 0xF5767503, 0x2055C7E0, 0x7B912B43, 0x7B996FB8, 0xF5E7A59B, 0x036A8EBA},
17809 {0xAA48FA6B, 0xA3E5B6CC, 0xF7C72AA1, 0x348334F7, 0x0704BCEE, 0xC4787C27, 0x41B84B55, 0x1BCCE8F9} } } ,
17810 { { {0xE1A37195, 0x436927E9, 0x9058F13C, 0xE0132203, 0x3F9FC42B, 0x52BC0EF1, 0x90E338D0, 0x24D6D1F7},
17811 {0xF494A403, 0x410B20B1, 0x005FA61E, 0x8D8567DC, 0x582BD845, 0x2DFB2F75, 0xB99FB9F5, 0x060DBF39} } ,
17812 { {0x2600A53C, 0xC8BC206D, 0xB9DEEB57, 0xD81DF603, 0x9CE5BED7, 0x2A8DDF8F, 0x4342C393, 0x1C89C2E0},
17813 {0x8E72AD6F, 0x42C95767, 0xE29AB9AB, 0xE79D8B52, 0xE88E6031, 0x6A7EBBDA, 0x2A117362, 0x1CDCCBF9} } } } ;
17814 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17815 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17816 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17817 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17818 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17819 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17820 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17821 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17822 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17823 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17824 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17825 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17827 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2201 a000");
17828 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2202 a001");
17829 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2203 a010");
17830 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2204 a011");
17831 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2205 a100");
17832 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2206 a101");
17833 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2207 a110");
17834 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2208 a111");
17835 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2209 a200");
17836 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2210 a201");
17837 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2211 a210");
17838 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2212 a211");
17840 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2213 a000");
17841 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2214 a001");
17842 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2215 a010");
17843 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2216 a011");
17844 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2217 a100");
17845 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2218 a101");
17846 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2219 a110");
17847 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2220 a111");
17848 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2221 a200");
17849 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2222 a201");
17850 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2223 a210");
17851 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2224 a211");
17854 static const fp12_t var_a = { { { {0x98E8B5A5, 0x2FA58FF0, 0xD5D82926, 0xCF716638, 0x2DCA68CD, 0x66749A09, 0x61D7AB22, 0x18275C18},
17855 {0x84E469FD, 0x814BD659, 0xA1F22AC0, 0x567A1EA0, 0xF2CADAD1, 0xE7294D57, 0x0A4FDC0F, 0x107FF9A0} } ,
17856 { {0xE6D48026, 0x8C31808A, 0x88B90634, 0xB220DFF6, 0xD053D39C, 0x394D9049, 0x7F6338BF, 0x0722A6C6},
17857 {0x24CB9D2D, 0x8EC6686C, 0x82A8D41E, 0x40CBAE14, 0xF50412E4, 0xF64A7B16, 0x0D31EF25, 0x22E07BC0} } } ,
17858 { { {0xFB8153A9, 0x55829202, 0xB9E66302, 0xFCBF75BF, 0xA2FA45F6, 0x423FC85A, 0xF4E8274E, 0x2294711C},
17859 {0xFBB3E30C, 0xD18988A0, 0x0B1A2420, 0x154DF84B, 0xADBB0768, 0x5848B753, 0x6875CFD3, 0x14417F4E} } ,
17860 { {0x06C2C810, 0x56DA2363, 0x8C090BE3, 0x25640170, 0x0078FD08, 0x02B69F61, 0xD3F880AF, 0x0305CAFB},
17861 {0xD5A93BA6, 0x2B0F96BD, 0x0110A136, 0x8DD448B1, 0x1897BCB1, 0xDC30248A, 0x911313ED, 0x0B8E42EA} } } ,
17862 { { {0x734C3849, 0xC8AEDBA7, 0x655E8A4C, 0x0E6B04FD, 0x869634FA, 0x3CEBD1F2, 0x320294A4, 0x1B5A8EE9},
17863 {0xC004A4D5, 0x5A0BF8BD, 0x680E59AB, 0x265A1BDC, 0x7238D23B, 0x7CF5AF29, 0x3B87BEEC, 0x075AF5F7} } ,
17864 { {0xEF8DB9F7, 0x01B59C69, 0xEB04765B, 0x88C95068, 0x130299F9, 0xC5DAE316, 0xE5A53137, 0x15E8E94F},
17865 {0x083AC321, 0xB47C1E02, 0x85A44A47, 0x3CE6099F, 0x380AF8D0, 0xBA837AAE, 0x1D28F5A6, 0x21C74DF4} } } } ;
17866 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17867 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17868 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17869 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17870 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17871 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17872 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17873 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17874 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17875 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17876 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17877 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17879 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2225 a000");
17880 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2226 a001");
17881 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2227 a010");
17882 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2228 a011");
17883 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2229 a100");
17884 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2230 a101");
17885 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2231 a110");
17886 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2232 a111");
17887 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2233 a200");
17888 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2234 a201");
17889 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2235 a210");
17890 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2236 a211");
17892 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2237 a000");
17893 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2238 a001");
17894 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2239 a010");
17895 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2240 a011");
17896 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2241 a100");
17897 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2242 a101");
17898 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2243 a110");
17899 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2244 a111");
17900 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2245 a200");
17901 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2246 a201");
17902 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2247 a210");
17903 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2248 a211");
17906 static const fp12_t var_a = { { { {0x6778C06E, 0xD1FAD9A8, 0x0150314E, 0xB1746BEE, 0xC217FBF9, 0x82CFF096, 0x020115E4, 0x0517E1B9},
17907 {0x3BACA978, 0x0FBA698A, 0xDEBCB3B4, 0x98EFF2E1, 0x27103190, 0x3B4654EC, 0xAB715D05, 0x14AD5533} } ,
17908 { {0x08533EE6, 0x10E74F17, 0xCD151CDC, 0xD9E0C7A3, 0xF1B562D4, 0xC8321F4A, 0xDE0281FD, 0x13B57974},
17909 {0x257BACE5, 0x028AF5B8, 0x37ED6DD4, 0xEAE070A0, 0x3DB7EC9E, 0x17524257, 0x9A5539C9, 0x15B327C4} } } ,
17910 { { {0x3F8A7061, 0xEA5B2182, 0xB5FF3FC4, 0x06CDADFA, 0x3D0C6D20, 0x86B29799, 0x4EB717EE, 0x230260B4},
17911 {0xD4534BA8, 0x9426485C, 0x96C62001, 0xB91E89A5, 0xB6A5F361, 0x0349FE9E, 0x5F9032FB, 0x15967172} } ,
17912 { {0xB97F2544, 0x74B6583D, 0x5CDA618D, 0x24CCFAEA, 0x836B0955, 0xEE5D4D65, 0xE69BD62E, 0x23D218F5},
17913 {0x95402F52, 0x7658E503, 0x3F25825C, 0xFDF1A6DD, 0x108B2853, 0xC317B7F3, 0x70F3DABA, 0x08A260EF} } } ,
17914 { { {0x635AAF54, 0x67EACCB1, 0xA8E59A4B, 0x971992B4, 0xDF158027, 0x41131376, 0x3CEA5A93, 0x08D3FC44},
17915 {0xF4783CAE, 0x8080C5DF, 0xB7807A86, 0x3D67D557, 0x07F01CC4, 0xB9594BB5, 0x01B8E07D, 0x01731A58} } ,
17916 { {0x6BD65A1C, 0x418D6A6E, 0xBE24571E, 0x110CA675, 0xB00ED297, 0x8F08CC48, 0xE5EF4AD2, 0x1FA92546},
17917 {0xBF31B869, 0xEDAAB0AB, 0xC43B43C0, 0xCCF7474F, 0x98067AD2, 0xFD5A7FF4, 0x47CEF6BD, 0x03737283} } } } ;
17918 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17919 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17920 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17921 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17922 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17923 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17924 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17925 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17926 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17927 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17928 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17929 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17931 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2249 a000");
17932 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2250 a001");
17933 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2251 a010");
17934 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2252 a011");
17935 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2253 a100");
17936 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2254 a101");
17937 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2255 a110");
17938 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2256 a111");
17939 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2257 a200");
17940 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2258 a201");
17941 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2259 a210");
17942 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2260 a211");
17944 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2261 a000");
17945 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2262 a001");
17946 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2263 a010");
17947 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2264 a011");
17948 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2265 a100");
17949 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2266 a101");
17950 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2267 a110");
17951 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2268 a111");
17952 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2269 a200");
17953 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2270 a201");
17954 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2271 a210");
17955 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2272 a211");
17958 static const fp12_t var_a = { { { {0x3C15808D, 0xF8E4E05D, 0x04AECD83, 0x8D5CB20D, 0x91EA6B8F, 0xF724BCB1, 0xB654F972, 0x2267A300},
17959 {0x026D81EF, 0x579D7D67, 0x6BF476FD, 0xDC0C10D6, 0x007A3D9B, 0x5A2578FD, 0x772E710E, 0x036888C9} } ,
17960 { {0x856D2621, 0x30FBB201, 0x1DFBEB70, 0xA1C34606, 0x609F2C2A, 0xBFFC26C6, 0x03723BDD, 0x040D1A3E},
17961 {0x0BCA62EC, 0xA6E934DD, 0xF0D31B51, 0x6D5939FA, 0xBD3ECA8F, 0x67818AD9, 0x062795BC, 0x1F0BC2AA} } } ,
17962 { { {0x313B3CD1, 0xF2ABACD3, 0xEF38B5C2, 0x72418E7A, 0x3A54C035, 0xA32EDF08, 0xE2A273C8, 0x01FFFF9E},
17963 {0x67556F8E, 0xD2F91736, 0xD8DE9292, 0x9964037E, 0x8B62CD0D, 0xFAAD9375, 0xEAAF9DC8, 0x194C4C91} } ,
17964 { {0x6FAF622F, 0xDBB3BB2E, 0x9F9714FF, 0x48C4A336, 0x7B314F55, 0x21B541A4, 0xA78BCF65, 0x1C5330B0},
17965 {0xE2587811, 0xBF218C1F, 0xE9448EFA, 0x1BA47D7C, 0x68DCF69C, 0xE5E2F268, 0x96B37369, 0x1A8774F3} } } ,
17966 { { {0xABA04CE8, 0x74C22C60, 0x929A2907, 0xC7EC9C87, 0xC2308037, 0x71BD3AE7, 0xE876BA5E, 0x1106DBA1},
17967 {0x892B9C64, 0x96B0E940, 0x27B1F25B, 0xC58F5A93, 0x8F5C863D, 0x0A925382, 0x01681A95, 0x1C8DBFAF} } ,
17968 { {0x915AB6E2, 0xAE8C4CC2, 0x6D68F976, 0x47F66675, 0xEAECCF5A, 0x505C16A4, 0x7A978315, 0x1D8FE969},
17969 {0xAA01DFE4, 0x77012F03, 0xD899A2FA, 0xED48036B, 0x801CAC2E, 0x17AC9D91, 0xE099CFC5, 0x115302CF} } } } ;
17970 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17971 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17972 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17973 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17974 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17975 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17976 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17977 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
17978 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17979 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
17980 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
17981 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
17983 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2273 a000");
17984 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2274 a001");
17985 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2275 a010");
17986 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2276 a011");
17987 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2277 a100");
17988 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2278 a101");
17989 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2279 a110");
17990 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2280 a111");
17991 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2281 a200");
17992 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2282 a201");
17993 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2283 a210");
17994 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2284 a211");
17996 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2285 a000");
17997 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2286 a001");
17998 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2287 a010");
17999 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2288 a011");
18000 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2289 a100");
18001 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2290 a101");
18002 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2291 a110");
18003 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2292 a111");
18004 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2293 a200");
18005 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2294 a201");
18006 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2295 a210");
18007 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2296 a211");
18010 static const fp12_t var_a = { { { {0x106EE7F8, 0x0BD46C01, 0x141BA80C, 0x22185D5F, 0x11723AF1, 0x2F818DAA, 0xF265389C, 0x0B6287BC},
18011 {0xD2BCE284, 0x3B8697EB, 0x8090565B, 0x141FFAB5, 0xF5AEBD34, 0x6FBDC11D, 0x66FBDF64, 0x0696F9A9} } ,
18012 { {0x5481D341, 0x62814DEC, 0xAE0F16B6, 0xA70BAB34, 0x940D3F11, 0x62625898, 0xA4E4B1FF, 0x0360A417},
18013 {0xCEBBA20A, 0xACDD160A, 0xE5914B7F, 0x38337800, 0xEDCF3E1E, 0x3EF41D77, 0x8A782F16, 0x085E17D1} } } ,
18014 { { {0xCA1FC578, 0x88ADE970, 0x9F36FD14, 0x3EB16CC1, 0x101E29B1, 0x936988A0, 0xA6F9DB6A, 0x0FBF690B},
18015 {0xAAAA5758, 0xD4DFB73C, 0x0B56FF9D, 0xE34C4FE9, 0xA434BEB2, 0x3ADDABDD, 0xBF8175F6, 0x04980821} } ,
18016 { {0x1F8AA71D, 0x91B2A8A6, 0x8C6372B1, 0xD45F93C9, 0x62E3C030, 0xF4F26283, 0x8DB721E3, 0x1BE6CBC0},
18017 {0xB3525FE4, 0x9AAEDF48, 0x38A0D09C, 0x15DC199D, 0x975B861F, 0xFBB3591F, 0x7C5F2D51, 0x1B9F0C40} } } ,
18018 { { {0x4186D9D1, 0xA43EF306, 0x599DEDB9, 0x22EC94EA, 0xA64E416B, 0xB1795864, 0x2EB1215E, 0x19E061B8},
18019 {0x776A44C5, 0x8AC7740B, 0xF08E9941, 0x90959EAC, 0x845C22C0, 0x6C1379EF, 0x76833A32, 0x117D95E0} } ,
18020 { {0x5B2F9F8F, 0x15612C35, 0x2D6EBDA1, 0x6C80D47C, 0x3AD2A7CC, 0x9171C339, 0x1D478749, 0x160AB212},
18021 {0xC365CA5E, 0x6310EA40, 0xF8EB3C6A, 0xBDE18997, 0x67B8B6AB, 0x30CC6755, 0xA0D440F8, 0x0A40C462} } } } ;
18022 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18023 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18024 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18025 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18026 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18027 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18028 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18029 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18030 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18031 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18032 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18033 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18035 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2297 a000");
18036 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2298 a001");
18037 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2299 a010");
18038 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2300 a011");
18039 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2301 a100");
18040 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2302 a101");
18041 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2303 a110");
18042 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2304 a111");
18043 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2305 a200");
18044 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2306 a201");
18045 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2307 a210");
18046 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2308 a211");
18048 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2309 a000");
18049 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2310 a001");
18050 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2311 a010");
18051 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2312 a011");
18052 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2313 a100");
18053 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2314 a101");
18054 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2315 a110");
18055 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2316 a111");
18056 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2317 a200");
18057 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2318 a201");
18058 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2319 a210");
18059 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2320 a211");
18062 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18063 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18064 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18065 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18066 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18067 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18068 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18069 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18070 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18071 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18072 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18073 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18074 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18075 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18076 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18077 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18078 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18079 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18080 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18081 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18082 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18083 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18084 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18085 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18086 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18087 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18088 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18089 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18090 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18091 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18092 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18093 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18094 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18095 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18096 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18097 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18099 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2321 a000");
18100 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2322 a001");
18101 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2323 a010");
18102 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2324 a011");
18103 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2325 a100");
18104 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2326 a101");
18105 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2327 a110");
18106 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2328 a111");
18107 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2329 a200");
18108 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2330 a201");
18109 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2331 a210");
18110 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2332 a211");
18113 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18114 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18115 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18116 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18117 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18118 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18119 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18120 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18121 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18122 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18123 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18124 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18125 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18126 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18127 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18128 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18129 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18130 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18131 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18132 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18133 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18134 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18135 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18136 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18137 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18138 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18139 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18140 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18141 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18142 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18143 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18144 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18145 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18146 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18147 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18148 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18150 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2333 a000");
18151 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2334 a001");
18152 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2335 a010");
18153 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2336 a011");
18154 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2337 a100");
18155 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2338 a101");
18156 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2339 a110");
18157 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2340 a111");
18158 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2341 a200");
18159 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2342 a201");
18160 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2343 a210");
18161 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2344 a211");
18164 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18165 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18166 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18167 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18168 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18169 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18170 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18171 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18172 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18173 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18174 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18175 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18176 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18177 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18178 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18179 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18180 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18181 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18182 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18183 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18184 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18185 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18186 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18187 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18188 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18189 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18190 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18191 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18192 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18193 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18194 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18195 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18196 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18197 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18198 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18199 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18201 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2345 a000");
18202 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2346 a001");
18203 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2347 a010");
18204 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2348 a011");
18205 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2349 a100");
18206 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2350 a101");
18207 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2351 a110");
18208 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2352 a111");
18209 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2353 a200");
18210 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2354 a201");
18211 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2355 a210");
18212 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2356 a211");
18215 static const fp12_t var_a = { { { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
18216 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18217 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18218 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18219 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18220 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18221 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18222 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18223 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18224 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18225 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18226 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18227 static const fp12_t var_b = { { { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
18228 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18229 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18230 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18231 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18232 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18233 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18234 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18235 { { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
18236 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18237 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18238 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18239 static const fp12_t var_expected = { { { {0x00000011, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
18240 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18241 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18242 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18243 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18244 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18245 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18246 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
18247 { { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
18248 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
18249 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
18250 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
18252 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2357 a000");
18253 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2358 a001");
18254 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2359 a010");
18255 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2360 a011");
18256 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2361 a100");
18257 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2362 a101");
18258 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2363 a110");
18259 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2364 a111");
18260 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2365 a200");
18261 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2366 a201");
18262 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2367 a210");
18263 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2368 a211");
18266 static const fp12_t var_a = { { { {0xDBC517A9, 0x959C0EF7, 0x6C33E58C, 0xC530DDED, 0xBC315767, 0x11470170, 0xF0FC1DF9, 0x0D9B7957},
18267 {0xA3452147, 0x72EB2DA6, 0x567C27E9, 0xC24559A4, 0x7E292EAC, 0x5B2045F7, 0x7100B11E, 0x05CCDD36} } ,
18268 { {0x6F7FDB36, 0xE1F56C3E, 0xBA6D8242, 0x7CB34F4C, 0x07520EAA, 0x1C9F9912, 0x7BC0179C, 0x1750BCE0},
18269 {0x65681E76, 0xEB437D73, 0x4F50C4BC, 0xABE19DDE, 0x44733A66, 0x3B3481A6, 0x1CCE8845, 0x13E2A67D} } } ,
18270 { { {0x02571E20, 0x9A015865, 0xFE1096CE, 0x3B0EA1FE, 0x3809338F, 0x52F9D703, 0xD542877E, 0x046F87B7},
18271 {0x96598F26, 0xEA9D1A72, 0x6613EB6E, 0xDEEC6F54, 0x7832298D, 0xD6912CD9, 0x186BC6FF, 0x0216498E} } ,
18272 { {0xC3DC6C2B, 0x3FF9A6FD, 0x5BD44CED, 0xB49E9CDD, 0xAEEE7039, 0xC0EDE79E, 0x91420EE9, 0x2360C6C5},
18273 {0x02A29ED4, 0x672AE92D, 0x635C3388, 0xD0BA34EC, 0x17AD8C4A, 0xA15EF996, 0x5ABB95DE, 0x19624793} } } ,
18274 { { {0x1E06FBCF, 0x8EC9E4D4, 0x3882B156, 0xDB169F2B, 0x042BAC47, 0xB721CACF, 0x84DCBFA7, 0x02DEEFEA},
18275 {0xB6975253, 0xD1D3EB03, 0x48FD4F7C, 0x3BCAA06B, 0x5DA2B867, 0x1F0022ED, 0x15AA227E, 0x0D7CF41F} } ,
18276 { {0xBFFD8C62, 0xB21DA10D, 0x3848D84C, 0x0E7DA421, 0x1948487C, 0xC19D136B, 0x85DF3644, 0x0D111475},
18277 {0x002E10B7, 0x014EA80E, 0x5D534F6E, 0x8DBB0389, 0xC71A1310, 0x5D0A9E77, 0xC07B32FF, 0x139A7392} } } } ;
18278 static const fp12_t var_b = { { { {0x95F3E42E, 0x2C75256F, 0x410782DA, 0xA98D0A0B, 0x0801C35B, 0x52583DEB, 0x2717E086, 0x07BC795A},
18279 {0x6DC54B67, 0xBC286E31, 0x2497D55A, 0x8E88CF1F, 0x12383955, 0x1AB10898, 0x0E1868DF, 0x1E03C52D} } ,
18280 { {0xCCECD821, 0xD2338E4C, 0x78A3308C, 0xFD412929, 0x2F12A3C1, 0xBC505B49, 0xC0A07873, 0x20D75590},
18281 {0xC9FB2EF3, 0x04DA81C3, 0x642C49EC, 0x8E026CE1, 0x3C05F814, 0x9D38FE61, 0x366233DB, 0x071B36E9} } } ,
18282 { { {0xD193EDEF, 0x2DAB47A4, 0x4354A58B, 0xAD3D9ED7, 0x2A09BB36, 0x37178616, 0xE435C012, 0x1121C531},
18283 {0x227C724E, 0xE3D92B9C, 0x22F2F7E9, 0xCC4D4F1B, 0x8146190F, 0x52CFD9D3, 0x6D8387D4, 0x1533389E} } ,
18284 { {0x51088B23, 0x0C32EF58, 0x45F4E533, 0xC1F463AA, 0xD814C04C, 0x514C1BA1, 0xE9815FD3, 0x12E61699},
18285 {0xC5CE2C46, 0x61A0AB80, 0xA29227DC, 0xE1D54E6B, 0x5E49042F, 0x44848AE6, 0xE63A36D7, 0x165B78F2} } } ,
18286 { { {0x39AFC4BD, 0x4C3398A4, 0x6451A746, 0xEC74AE7E, 0x54D534CC, 0x7BBF2E38, 0xE46C026F, 0x1C693D95},
18287 {0x3E29CEF9, 0xA5C80E35, 0x69D31E93, 0x59BA3F7B, 0x91B4320E, 0x917C5D17, 0x982F050C, 0x12AC44C1} } ,
18288 { {0xB602B502, 0x52367527, 0xC57C31AD, 0x6D6C89B7, 0xFD2BA8DB, 0x66C3EED0, 0x2A71A68F, 0x091875F4},
18289 {0x5B3E2617, 0x0A12ECB0, 0x3DE527A8, 0xDC86D71C, 0x1658791D, 0x7F3647DB, 0x37407667, 0x16663D13} } } } ;
18290 static const fp12_t var_expected = { { { {0x71B8FBD7, 0xC2113467, 0xAD3B6866, 0x6EBDE7F8, 0xC4331AC3, 0x639F3F5B, 0x1813FE7F, 0x1557F2B2},
18291 {0x110A6CAE, 0x2F139BD8, 0x7B13FD44, 0x50CE28C3, 0x90616802, 0x75D14E8F, 0x7F1919FD, 0x23D0A263} } ,
18292 { {0x3C6CB344, 0x0D28FA8B, 0x3310B2BC, 0x18D37876, 0x3664B264, 0x1EBBA6DB, 0xFC60900E, 0x1304ADEE},
18293 {0x2F634D69, 0xF01DFF37, 0xB37D0EA8, 0x39E40ABF, 0x8079327B, 0xD86D8007, 0x5330BC20, 0x1AFDDD66} } } ,
18294 { { {0xD3EB0C0F, 0xC7ACA009, 0x41653C59, 0xE84C40D6, 0x6212EEC5, 0x8A115D19, 0xB9784790, 0x15914CE9},
18295 {0xB8D60174, 0xCE76460E, 0x8906E358, 0xAB39BE6F, 0xF978429D, 0x296106AC, 0x85EF4ED4, 0x1749822C} } ,
18296 { {0x14E4F73B, 0xA52C9656, 0xA1C9320C, 0x15720087, 0x8703307E, 0x5805B5C0, 0x3AC36EBB, 0x112378DD},
18297 {0xC870CB07, 0x21CB94AD, 0x05EE5B51, 0x516E8358, 0x75F69072, 0x2BAF36FC, 0x00F5CCB4, 0x0A9A5C04} } } ,
18298 { { {0x57B6C08C, 0xDAFD7D78, 0x9CD4589C, 0xC78B4DA9, 0x5900E114, 0x32E0F907, 0x6948C217, 0x1F482D80},
18299 {0xF4C1214C, 0x779BF938, 0xB2D06E10, 0x9584DFE6, 0xEF56EA75, 0xB07C8004, 0xADD9278A, 0x202938E0} } ,
18300 { {0x76004164, 0x04541635, 0xFDC509FA, 0x7BEA2DD8, 0x1673F157, 0x2861023C, 0xB050DCD4, 0x16298A69},
18301 {0x5B6C36BB, 0x646194BE, 0x9B387702, 0x0920DAA5, 0xDD728C26, 0x220C98D2, 0xB7BBA965, 0x04DD4C23} } } } ;
18303 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2369 a000");
18304 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2370 a001");
18305 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2371 a010");
18306 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2372 a011");
18307 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2373 a100");
18308 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2374 a101");
18309 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2375 a110");
18310 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2376 a111");
18311 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2377 a200");
18312 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2378 a201");
18313 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2379 a210");
18314 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2380 a211");
18317 static const fp12_t var_a = { { { {0x36626CC7, 0x9BFAE432, 0xCD1AB6C1, 0x0AE33B1F, 0x6E0B4808, 0x7760EC36, 0x0FE61C75, 0x0311A1AC},
18318 {0x280E754D, 0xBC7B0239, 0x23B47CD2, 0x3F52D05E, 0x2AFD248A, 0xEF01F934, 0xB8D24313, 0x17ADD609} } ,
18319 { {0x64E279E7, 0x5D7EE331, 0x21B3202D, 0x02006926, 0x8547C8C0, 0x0D2FFA07, 0xA953C12F, 0x01717FAD},
18320 {0xF3B5A1A2, 0xDA49BC5E, 0x5F37323E, 0xD6275374, 0x4B36EAE6, 0x8DE99158, 0xD0239192, 0x090EC83C} } } ,
18321 { { {0x2F1DF91A, 0x4512DF4F, 0xA6004CD3, 0x1FF0037A, 0x5E659DEE, 0xE1674F8C, 0x8DBF6334, 0x12360E40},
18322 {0x48407C55, 0xE31D9626, 0x76C1073B, 0x819BA287, 0x352FAFDA, 0x7C108691, 0xF496CE88, 0x203F6EA6} } ,
18323 { {0xC2014854, 0xFE6CF1BE, 0x8141BEF8, 0x41BFF428, 0x586B8B04, 0xFEAD4DC2, 0x0F006748, 0x1C606C98},
18324 {0xF5740AF6, 0xC4016AD6, 0x2E503EE8, 0xDA0807D1, 0xE57C1A55, 0x576587DA, 0xDA08528F, 0x171A8A68} } } ,
18325 { { {0x8CA440FF, 0x3BB07C3E, 0x1787CFC2, 0x808592D2, 0x0EB18831, 0xE3CE85AE, 0xC50B1346, 0x1CEA0E22},
18326 {0x06A9FB5E, 0xBE7B9E2C, 0x8BDC549A, 0x6CE50D8B, 0x99ED0934, 0xA8F7A3D3, 0xF61BA344, 0x08FFB038} } ,
18327 { {0x380F13BA, 0xC2872CC3, 0x0C0641BE, 0xC091D696, 0x5FAFF403, 0x07EFE436, 0x84431BEB, 0x121B7F31},
18328 {0xCA8E2106, 0xB89A3901, 0xD2AABE70, 0x4089F69C, 0xCD58CE79, 0x061EE591, 0xBD897BB3, 0x10DE2809} } } } ;
18329 static const fp12_t var_b = { { { {0xB510A2A3, 0xB12C5B61, 0x47664C70, 0x22AD57C1, 0x66D02253, 0x082F7031, 0x21CD58AD, 0x0368C0E9},
18330 {0xCB0503E6, 0x5408D891, 0x899A8C18, 0xCA027A14, 0x3E6F418F, 0xFF992DF0, 0x64737BDA, 0x19C09C5D} } ,
18331 { {0x2F0D8E3D, 0x7A7BDADA, 0xEC122C29, 0x3A910668, 0x803F3976, 0xDCDD8A56, 0xB0DCB8AE, 0x049A512B},
18332 {0xD8EA813C, 0x3A1888F9, 0x75760A30, 0xBCE8C1C7, 0xEA8AAE79, 0x96111556, 0x61B1917E, 0x229EFD51} } } ,
18333 { { {0x13CEB56E, 0xAF042171, 0x5F8A0E0E, 0xCC8CB576, 0x4CB96328, 0xD4C51AC4, 0x47015F53, 0x0CA87327},
18334 {0xFEE79441, 0x81D98895, 0x9A445058, 0x335CB0B8, 0x0D7F8EEB, 0x06FCA3A8, 0x27241808, 0x02950F3B} } ,
18335 { {0x0E5265AD, 0x1717DBDC, 0x47AE8215, 0xC02B57E0, 0xA65B5A7D, 0x662142D7, 0xBB7EFBC9, 0x190CDB26},
18336 {0x8A441571, 0x5D23ED57, 0x3D96C775, 0xF6596C12, 0x24681D8A, 0x60563D49, 0xAD02A432, 0x222BC1DB} } } ,
18337 { { {0x0D9D082F, 0x4AD8DF8B, 0x88135717, 0x256612EF, 0xAA753C05, 0xA51469EA, 0x209355AC, 0x137ABD7D},
18338 {0x08B5A00A, 0xFFA82249, 0xE4D7A4A5, 0x6A8029DA, 0xED7BB5DB, 0x8D13AE6B, 0x272A8AE4, 0x17C3CB88} } ,
18339 { {0x3D8877F5, 0x064D8A86, 0x4652ED4C, 0x950409EC, 0xB657BF3F, 0x413ACECA, 0x4CD109C7, 0x03807317},
18340 {0x452B8F50, 0x49075DB9, 0x54A153C2, 0x494F3AAC, 0x64D911B7, 0x61344F19, 0x0B70176D, 0x0B431E1A} } } } ;
18341 static const fp12_t var_expected = { { { {0xEB730F6A, 0x4D273F93, 0x14810332, 0x2D9092E1, 0xD4DB6A5B, 0x7F905C67, 0x31B37522, 0x067A6295},
18342 {0xF3137920, 0x6983DACA, 0xAD4F08D7, 0xA8344A72, 0x696C6611, 0x3466D9A4, 0xDD45BEED, 0x0C4B0DE4} } ,
18343 { {0x93F00824, 0xD7FABE0B, 0x0DC54C56, 0x3C916F8F, 0x05870236, 0xEA0D845E, 0x5A3079DD, 0x060BD0D9},
18344 {0xCCA022CB, 0x6D624558, 0xD4AD3C5B, 0x31EF153B, 0x35C19958, 0x69C6592F, 0xF1D5230F, 0x068A610B} } } ,
18345 { { {0x42ECAE88, 0xF41700C0, 0x058A5AE1, 0xEC7CB8F1, 0xAB1F0116, 0xB62C6A50, 0xD4C0C288, 0x1EDE8167},
18346 {0x47281096, 0x64F71EBC, 0x11055794, 0xB4F85340, 0x42AF3EC5, 0x830D2A39, 0x1BBAE690, 0x22D47DE2} } ,
18347 { {0xD053ADEE, 0x6E84CD9A, 0xC8F040FA, 0xA0CA4C08, 0xFEC6E579, 0xAA9A4319, 0x8A7F6310, 0x1049E33C},
18348 {0x7FB82054, 0x7A25582E, 0x6BE7064A, 0x6F4073E3, 0x09E437D8, 0xFD8777A4, 0x470AF6BF, 0x1422E7C2} } } ,
18349 { { {0x9A41491B, 0xDF895BC9, 0x9F9B26C5, 0x44CAA5C1, 0xB926C42E, 0xCEAEA218, 0xA59E68F1, 0x0B41671D},
18350 {0x0F5F9B68, 0xBE23C075, 0x70B3F940, 0xD7653766, 0x8768BF0F, 0x360B523F, 0x1D462E29, 0x20C37BC1} } ,
18351 { {0x75978BAF, 0xC8D4B749, 0x52592F0A, 0x5595E082, 0x1607B343, 0x492AB301, 0xD11425B2, 0x159BF248},
18352 {0x0FB9B056, 0x01A196BB, 0x274C1233, 0x89D93149, 0x3231E030, 0x675334AB, 0xC8F99320, 0x1C214623} } } } ;
18354 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2381 a000");
18355 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2382 a001");
18356 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2383 a010");
18357 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2384 a011");
18358 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2385 a100");
18359 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2386 a101");
18360 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2387 a110");
18361 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2388 a111");
18362 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2389 a200");
18363 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2390 a201");
18364 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2391 a210");
18365 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2392 a211");
18368 static const fp12_t var_a = { { { {0x0C92D9E4, 0x396E769D, 0xE8550110, 0x2F26EF97, 0x6723B148, 0x89B79280, 0xD4667C99, 0x121702F3},
18369 {0x4FA6FC91, 0x19D5E4E2, 0x9105DD21, 0x61F9631E, 0xC6585696, 0x033F2424, 0x8CF27C3F, 0x03ECD113} } ,
18370 { {0x25AE140E, 0xE035A2C0, 0x11ADE413, 0x27B05E2D, 0x9A9BCFC1, 0x0DCEC5AC, 0xCC71FF27, 0x0FD18226},
18371 {0x7302E762, 0x13B44AFE, 0xE0E232E2, 0x15FC78A0, 0x915BF1F3, 0xAD41A1F6, 0x21647023, 0x0C6E2835} } } ,
18372 { { {0x7615D491, 0x39AFF2A0, 0xA7D92D87, 0xF13AF4E5, 0x6CF4F1E8, 0x9A310E0E, 0x8A4F2D0E, 0x09F8FCB7},
18373 {0x3EC95EDB, 0xD75F7E09, 0xC6328301, 0xDFA833F4, 0x819C4FE4, 0xEFF0CC6C, 0xFE608041, 0x0EF3F062} } ,
18374 { {0x2D162DED, 0x260A1DFD, 0xD0A0DAD9, 0x76182B3B, 0x39A38C80, 0x0EEEE192, 0x63ED76AC, 0x11BEF8D9},
18375 {0x7B01D265, 0xC1BEC9C2, 0x0A5A7052, 0x680B5695, 0x93FF69A0, 0x12AD21AC, 0xD8BA1C91, 0x1702C8C1} } } ,
18376 { { {0xB5E3C51D, 0xCAA7F33A, 0xEF5AEC6A, 0x2381045C, 0x9F2E7A12, 0xCFF369E0, 0x2C17E628, 0x22F7984F},
18377 {0x3AFF5BE2, 0xFEEEAF98, 0xAE784326, 0x83C313AB, 0x0462186F, 0xF4AADE2E, 0xA4CA52A0, 0x1D02F8DC} } ,
18378 { {0xBD669A10, 0x242A172E, 0xAA4368D3, 0x2D976890, 0x7CFE2ADE, 0x6D9C6F54, 0xF9C913A1, 0x0C664D42},
18379 {0xC6333D00, 0x1A5DB08F, 0xF9B911A0, 0xDE76B15B, 0x526A4C99, 0x2E6CCBE3, 0x57C33D58, 0x0EC96A96} } } } ;
18380 static const fp12_t var_b = { { { {0x310D5919, 0x39880B2D, 0xE6C9E54B, 0xB8625383, 0xEB2B20CF, 0x9C0195E4, 0xE07D52A6, 0x0ADCCEB3},
18381 {0xADFD5783, 0x95CCED5E, 0x70A4D56D, 0x5A3D7A9B, 0x3A5811C9, 0xDDF4AC2B, 0x67FB2ACE, 0x2152C0EC} } ,
18382 { {0x3D9A4A30, 0x2419B1D5, 0xC8DF71E2, 0xFC0AC4AC, 0x4951B14F, 0x55BE82C1, 0x767C0CDD, 0x00260B8B},
18383 {0xBB78C785, 0xED6DB944, 0xD7697CA0, 0x34DEECCF, 0xB7D46555, 0xBA89598D, 0x48437257, 0x14B45C08} } } ,
18384 { { {0x50F6D27C, 0xAEA72122, 0xB64A0619, 0xC7E77054, 0x355A38EE, 0xB7CD3ED5, 0xCF31565E, 0x0F2A5E38},
18385 {0xFE4D8960, 0x63E70154, 0x3337E790, 0xFF542AE0, 0x08C2E856, 0x4A19F2E8, 0x6F320219, 0x00948F5E} } ,
18386 { {0x16FF843B, 0xF77EF1AE, 0x53F354FC, 0xA02937E6, 0x8A538875, 0x7E7CCCDC, 0x8174B450, 0x0CD23007},
18387 {0xC2833AD8, 0xF56EA63B, 0xCA84E052, 0x74B2BC8B, 0xA90B5AA4, 0xC6A7FFFC, 0xD174A04E, 0x2450174B} } } ,
18388 { { {0x7C57CA7B, 0x3D7CD453, 0x853527EA, 0xF76C5F91, 0x673BAF41, 0x783238B2, 0xE1DB16CF, 0x0A487757},
18389 {0x954DEEE2, 0x86D0ADC8, 0x216605F9, 0xF4328320, 0x5876EF16, 0x64E0B18F, 0xE420DE28, 0x21E6C3FC} } ,
18390 { {0xAF371FCD, 0x4023A76F, 0x7130125E, 0x66B8936B, 0x27D11EC7, 0x5751F0AA, 0xC30E06EC, 0x0F2E65D4},
18391 {0x43DC092E, 0xD68561A4, 0xFBD9A1B6, 0xE828FFE8, 0x11707D6E, 0xC611659B, 0x9C02BFF7, 0x1ABFECD4} } } } ;
18392 static const fp12_t var_expected = { { { {0x3DA032FD, 0x72F681CA, 0xCF1EE65B, 0xE789431B, 0x524ED217, 0x25B92865, 0xB4E3CF40, 0x1CF3D1A7},
18393 {0xFDA45401, 0x08A2D240, 0x01AAB27B, 0x5B15DDBA, 0x00B06857, 0x26FF82D0, 0xB4EDA70C, 0x001C2D7D} } ,
18394 { {0x63485E3E, 0x044F5495, 0xDA8D55F6, 0x23BB22D9, 0xE3ED8111, 0x638D486D, 0x42EE0C04, 0x0FF78DB2},
18395 {0x2E7BAEE7, 0x01220443, 0xB84BAF83, 0x4ADB6570, 0x49305748, 0x67CAFB84, 0x69A7E27B, 0x2122843D} } } ,
18396 { { {0xC70CA70D, 0xE85713C2, 0x5E2333A0, 0xB922653A, 0xA24F2AD7, 0x51FE4CE3, 0x5980836D, 0x19235AF0},
18397 {0x3D16E83B, 0x3B467F5E, 0xF96A6A92, 0xDEFC5ED4, 0x8A5F383B, 0x3A0ABF54, 0x6D92825B, 0x0F887FC1} } ,
18398 { {0x4415B228, 0x1D890FAB, 0x24942FD6, 0x16416322, 0xC3F714F6, 0x8D6BAE6E, 0xE5622AFC, 0x1E9128E0},
18399 {0x3D850D2A, 0x102D6FFE, 0xD4DF5092, 0x7B9D1320, 0x3D0AC43C, 0x1F20D429, 0x6A2EBCDE, 0x162F7B8B} } } ,
18400 { { {0x323B8F85, 0x6124C78E, 0x74901441, 0xB9CC63EE, 0x066A294B, 0x8DF15513, 0xCDF2FCF6, 0x081CAB24},
18401 {0xD04D4AB1, 0xDEBF5D60, 0xCFDE490C, 0x16D496CB, 0x5CD9077E, 0x9F57423D, 0x48EB30C7, 0x19C65857} } ,
18402 { {0x6C9DB9DD, 0x644DBE9E, 0x1B737B31, 0x944FFBFC, 0xA4CF49A5, 0xC4EE5FFE, 0xBCD71A8D, 0x1B94B317},
18403 {0x0A0F461B, 0x49E31234, 0xF592B343, 0x657EB144, 0x63DACA00, 0x3A49E3FE, 0xB3C5FD4E, 0x0465F2E8} } } } ;
18405 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2393 a000");
18406 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2394 a001");
18407 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2395 a010");
18408 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2396 a011");
18409 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2397 a100");
18410 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2398 a101");
18411 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2399 a110");
18412 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2400 a111");
18413 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2401 a200");
18414 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2402 a201");
18415 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2403 a210");
18416 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2404 a211");
18419 static const fp12_t var_a = { { { {0x1C3DE1C4, 0xB5A6DB88, 0x7B16B982, 0x042DA690, 0x68651A79, 0x97E96376, 0xBE120660, 0x1B3264F0},
18420 {0xDA2D486E, 0xC2BE4C0F, 0x601A8736, 0x1C29D4EB, 0x11E07389, 0x13A93BAA, 0x2EEE1A15, 0x144FD96B} } ,
18421 { {0x713AB893, 0xBAF94A23, 0x4A7D73BF, 0x543C18F8, 0x07AA7EA8, 0xF561CF7D, 0x649E2CC1, 0x046D6928},
18422 {0xA7DDC1CC, 0xF0781F9A, 0x92ECC5D6, 0xF6D68DD5, 0xD6F6AE79, 0x86645A5E, 0x0F0EA444, 0x1B3A68D1} } } ,
18423 { { {0x9907840A, 0x4BE469EC, 0xC2AD6D77, 0xE45D61F9, 0x2082DC6E, 0x9B742F1F, 0xCD66EB80, 0x20C9F075},
18424 {0x36F4147D, 0x0A8B751D, 0x18F17693, 0x85F6AF25, 0x1CFE1BDD, 0x3B78C4D2, 0x7435B5BE, 0x0022856D} } ,
18425 { {0xC351F239, 0xC611E29E, 0x08F43B6B, 0xD0DD02B8, 0x12D2E7AB, 0x24ED6750, 0xCC6D0E5D, 0x0F283881},
18426 {0x55B79097, 0xE7B58171, 0xB7F357E1, 0xEBFA07F8, 0xE02832DB, 0x77B1DB47, 0xD32CC55F, 0x046BED9F} } } ,
18427 { { {0x5A6B98C3, 0x2A1C8F3E, 0x81EFE17E, 0xF41F53F0, 0x784F3A09, 0x821E12FD, 0x7757EEB0, 0x176EFD7B},
18428 {0x117A88A8, 0x2EB49CA6, 0x733B7CAC, 0xEE8E3C03, 0x5F633F24, 0x92D849C4, 0x5F0494EA, 0x02811BDB} } ,
18429 { {0x0D1CAD3A, 0x07A3DF8D, 0xD1E24D5C, 0x28EE1FDE, 0x30516A8A, 0x571ACFAA, 0xA3B6D6AB, 0x0CEF1BF4},
18430 {0xB66CB174, 0x334CB8BF, 0x92DAD748, 0xEA6CABA5, 0x17238902, 0x0C283A2A, 0xCF650BBB, 0x163F27C4} } } } ;
18431 static const fp12_t var_b = { { { {0xC77045CF, 0x41579ADD, 0xDF034823, 0x4408F935, 0x579F758B, 0x2F2C6146, 0xE45BA0C8, 0x23DA40C2},
18432 {0xD16C8B16, 0x095CB62F, 0x98FEC8D4, 0xAE7F8519, 0xC436412B, 0x5BCD695D, 0x97DED220, 0x231C1795} } ,
18433 { {0xB78B3F50, 0xDE0B0798, 0xCECBD532, 0xC39E5F6A, 0x4A437FFC, 0x5AEFF40A, 0x51A87FD3, 0x1EE42373},
18434 {0x30D5F0B6, 0xD1EFA39A, 0x4A409F31, 0xDB512829, 0x64964DF2, 0xF7698285, 0x6D3697FF, 0x09C3F1FB} } } ,
18435 { { {0x4974A39C, 0xA6C27B28, 0x054710FF, 0x780A9BB5, 0xA557E792, 0xFBEC4EFB, 0xFCDD0635, 0x1EC7BBA7},
18436 {0xE04DAB3A, 0x0749D89B, 0xAEF3FED2, 0x0748CEFC, 0x3333EA3F, 0x367BF481, 0xC4BA0B07, 0x122C2C69} } ,
18437 { {0x2AE7B0FF, 0x5FC64D20, 0x2765748F, 0x456168A1, 0x46D8A7D8, 0x87EF39DA, 0xBD685CAC, 0x1F24CC57},
18438 {0x2D9C22B3, 0x21F8F791, 0x08785130, 0x26516CDA, 0xAEC70FC3, 0x0AA73713, 0x138F8FFA, 0x04418D32} } } ,
18439 { { {0x472677C2, 0xA2AE26BA, 0x1B4998BF, 0x3DA05F05, 0x4B72198C, 0x1435528E, 0xA739A541, 0x0A54664C},
18440 {0xA5721E3F, 0xA0E5DBB1, 0xDE8719A0, 0x190CE6F0, 0x92A7C23E, 0x91D168EA, 0xCE01A179, 0x17458EDA} } ,
18441 { {0xCDC8F74D, 0xD578BD1C, 0x049968B9, 0x5A3525B5, 0x0F54FDBA, 0x0B214E6D, 0xD00DA359, 0x0E305D9D},
18442 {0x15419C62, 0x6F635CE1, 0xF4884158, 0x78DA7987, 0xDD8F26EC, 0x6EB55FFB, 0xAAD4E64A, 0x04984501} } } } ;
18443 static const fp12_t var_expected = { { { {0xE3AE2780, 0x4FFE7665, 0x5A1A0192, 0xE7159FC6, 0xC0048FFB, 0x0CE1773C, 0x626DA727, 0x19E94131},
18444 {0xAB99D371, 0x251B023F, 0xF9194FF7, 0x69885A04, 0xD616B4AC, 0xB5425787, 0x86CCEC33, 0x12488C7E} } ,
18445 { {0x28C5F7E3, 0x990451BC, 0x194948F2, 0x17DA7863, 0x51EDFEA5, 0x5051C387, 0xB646AC95, 0x23518C9B},
18446 {0xD8B3B282, 0xC267C334, 0xDD2D6508, 0xD227B5FE, 0x3B8CFC6C, 0x7DCDDCE4, 0x7C453C44, 0x24FE5ACC} } } ,
18447 { { {0xE27C2793, 0x4BA6E514, 0xC7F47E63, 0xFB46FDAE, 0xC5DAC3F8, 0xDD2C309A, 0x8A43F1B4, 0x1A6E479B},
18448 {0x1741BFB7, 0x11D54DB9, 0xC7E57565, 0x8D3F7E21, 0x5032061C, 0x71F4B953, 0x38EFC0C5, 0x124EB1D7} } ,
18449 { {0xEE39A325, 0x7ED82FBE, 0x3059AFE7, 0xB51D6B59, 0x59AB8F7B, 0xF2A853AA, 0x49D56B07, 0x0929A057},
18450 {0x8353B34A, 0x09AE7902, 0xC06BA912, 0x124B74D2, 0x8EEF429F, 0x8259125B, 0xE6BC5559, 0x08AD7AD1} } } ,
18451 { { {0xA1921085, 0xCCCAB5F8, 0x9D397A3D, 0x31BFB2F5, 0xC3C15396, 0x9653658B, 0x1E9193F1, 0x21C363C8},
18452 {0xB6ECA6E7, 0xCF9A7857, 0x51C2964C, 0x079B22F4, 0xF20B0163, 0x24A9B2AE, 0x2D063664, 0x19C6AAB6} } ,
18453 { {0xDAE5A487, 0xDD1C9CA9, 0xD67BB615, 0x83234593, 0x3FA66844, 0x623C1E17, 0x73C47A04, 0x1B1F7992},
18454 {0xCBAE4DD6, 0xA2B015A0, 0x876318A0, 0x6347252D, 0xF4B2AFEF, 0x7ADD9A25, 0x7A39F205, 0x1AD76CC6} } } } ;
18456 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2405 a000");
18457 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2406 a001");
18458 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2407 a010");
18459 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2408 a011");
18460 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2409 a100");
18461 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2410 a101");
18462 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2411 a110");
18463 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2412 a111");
18464 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2413 a200");
18465 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2414 a201");
18466 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2415 a210");
18467 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2416 a211");
18470 static const fp12_t var_a = { { { {0x298BF0A9, 0x0590F3FD, 0x49CECA57, 0x53205B57, 0x30FDE068, 0x2F190E55, 0x8DC18669, 0x0613DAC8},
18471 {0x8904B905, 0x783E001B, 0x50DC5BF8, 0x315B772A, 0xCB766BEB, 0xDF5BA862, 0x5C93079A, 0x0B45AEF0} } ,
18472 { {0x081F2A4D, 0x0FE85587, 0x8D85B95E, 0xC3F1591E, 0x8A0ED583, 0x99C98889, 0x32A2F62F, 0x0CFC1CF8},
18473 {0x4E17AF90, 0xE4CE8F5B, 0x362EDD04, 0x309336AE, 0xDA5B9300, 0x1FE97C30, 0x9AE0242A, 0x04793D9F} } } ,
18474 { { {0x57FB601B, 0x1B02029D, 0xB6CED36A, 0x670DA55B, 0x3C1A780C, 0x763470C6, 0x95BB48D2, 0x11AB802B},
18475 {0xF200E878, 0x80068C5A, 0x2CC63B5F, 0x5E0C5821, 0xC617FD2F, 0x0474C8E3, 0x98C3101C, 0x1917D352} } ,
18476 { {0x442CC150, 0xEA01EFE7, 0xE97C603E, 0xD5813327, 0xA17355F1, 0x7525AF73, 0x8B27F113, 0x1E87B47F},
18477 {0x424621DD, 0xCA80898E, 0xF6D615BD, 0xFAF24107, 0x8C2CD6F3, 0x49DDFC74, 0xCBFE3511, 0x074D2C81} } } ,
18478 { { {0x3A23F632, 0xF7BF9A44, 0x8B76C540, 0x1D696893, 0x57FF97AF, 0x43689DF9, 0xA86024B7, 0x07E639F7},
18479 {0x4B39AB3B, 0xCC926F3E, 0x99CE42C1, 0x44D2E273, 0x69955787, 0x5B063AA4, 0x68573475, 0x16280AEA} } ,
18480 { {0xE786CE30, 0x57D31A77, 0x420572F8, 0xE59CDE26, 0x3B031153, 0xCA6BDE09, 0x4290ADC7, 0x1610654B},
18481 {0x58C9AC65, 0x6C5E9BA0, 0x5BA6CEEE, 0x8675C0E1, 0xDB96CD74, 0x17910B8A, 0x24EE3059, 0x0D40875F} } } } ;
18482 static const fp12_t var_b = { { { {0x3903748C, 0x8AA99145, 0xF1254337, 0x85E0F394, 0x6AF692A4, 0x7C505078, 0xEEDFF8E6, 0x0F160DC4},
18483 {0xF9528F7B, 0x2BDEE648, 0xC1320272, 0xA2BC3FDB, 0x9E8E869B, 0x99578507, 0x7589DAAA, 0x21F7DF15} } ,
18484 { {0x5C1937BB, 0x698F075A, 0xBED84C7E, 0x513E13EE, 0x4151A068, 0xAC4449E4, 0x01C5511B, 0x1F3969AE},
18485 {0xF96F6FB4, 0xF4F69366, 0x8E734112, 0x2FCC36D0, 0xB0C3863D, 0x8385530D, 0x0FE62182, 0x1151B573} } } ,
18486 { { {0xBCEFEE48, 0xFEC5A78C, 0x0E712B2C, 0xFDB7CEC0, 0x5C5D6E50, 0x1C58DD54, 0xCF59554D, 0x20BAA27C},
18487 {0x66C7A73E, 0x42871B93, 0xCAE3F6EB, 0xC56CBEB0, 0x4D361680, 0x2F86F0FB, 0x6709A60B, 0x1A744205} } ,
18488 { {0x0822ECE5, 0x118E6177, 0x85E5B928, 0x6F24ACE4, 0x9A053C6D, 0x44AA9284, 0x2EA198AD, 0x0DC950D6},
18489 {0x8CDD6E91, 0xAD78E032, 0xB7C96819, 0xA67B5026, 0xF26F2136, 0xBB81726F, 0x728FD4ED, 0x1433C2E4} } } ,
18490 { { {0x2C9184DA, 0x873DED73, 0x0A204215, 0x7947CAE7, 0x16A6FC31, 0xABE90D05, 0xB3E382A4, 0x1C5BF270},
18491 {0xF9E38827, 0xEDCEC6A8, 0xDD867930, 0x038E2184, 0x5C536EF8, 0x5FB9C941, 0xE5F9BD38, 0x046C246A} } ,
18492 { {0x55332A1D, 0xD34A3565, 0xC14D207E, 0xF46D3658, 0x2EDC5624, 0x90A5D97F, 0xB2F45BAE, 0x0AF2C74F},
18493 {0x79890D76, 0x50B7AEDD, 0xFEE76E88, 0xEE24BEC7, 0x89ECA3F5, 0xD240AA26, 0x76049EF3, 0x1365D47B} } } } ;
18494 static const fp12_t var_expected = { { { {0x628F6535, 0x903A8542, 0x3AF40D8E, 0xD9014EEC, 0x9BF4730C, 0xAB695ECD, 0x7CA17F4F, 0x1529E88D},
18495 {0x8257486D, 0xFD1CE664, 0x120E5E56, 0x72F6B706, 0x6A04F27E, 0xBE7EDFEA, 0x921CE243, 0x081A2983} } ,
18496 { {0x643861F5, 0xD2775CE1, 0x4C5E05C8, 0xB40E6D0D, 0xCB6075E3, 0x8BD984ED, 0xF4684749, 0x07122223},
18497 {0x47871F44, 0xD9C522C2, 0xC4A21E17, 0x605F6D7E, 0x8B1F193D, 0xA36ECF3E, 0xAAC645AC, 0x15CAF312} } } ,
18498 { { {0x14EB4E50, 0x72C7AA2A, 0xC53FFE83, 0x03A4741B, 0x9877E655, 0xD859009A, 0x25149E1D, 0x0D42BE26},
18499 {0x58C88FA3, 0x1B8DA7EE, 0xF7AA3237, 0xC25816D1, 0x134E13A7, 0x79C76C5F, 0xBFCCB625, 0x0E68B0D5} } ,
18500 { {0x4C4FAE22, 0x5490515E, 0x6F621953, 0xE384E00C, 0x3B789256, 0xFF9BF478, 0x79C989BE, 0x072DA0D3},
18501 {0xCF23906E, 0x77F969C0, 0xAE9F7DD7, 0xA16D912E, 0x7E9BF82A, 0x055F6EE4, 0x3E8E09FF, 0x1B80EF66} } } ,
18502 { { {0x66B57B0C, 0x7EFD87B7, 0x95970756, 0x96B1337A, 0x6EA693E0, 0xEF51AAFE, 0x5C43A75B, 0x24422C68},
18503 {0x451D3362, 0xBA6135E7, 0x7754BBF2, 0x486103F8, 0xC5E8C67F, 0xBAC003E5, 0x4E50F1AD, 0x1A942F55} } ,
18504 { {0x3CB9F84D, 0x2B1D4FDD, 0x03529377, 0xDA0A147F, 0x69DF6778, 0x5B11B788, 0xF5850976, 0x21032C9A},
18505 {0xD252B9DB, 0xBD164A7D, 0x5A8E3D76, 0x749A7FA9, 0x6583716A, 0xE9D1B5B1, 0x9AF2CF4C, 0x20A65BDA} } } } ;
18507 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2417 a000");
18508 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2418 a001");
18509 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2419 a010");
18510 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2420 a011");
18511 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2421 a100");
18512 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2422 a101");
18513 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2423 a110");
18514 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2424 a111");
18515 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2425 a200");
18516 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2426 a201");
18517 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2427 a210");
18518 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2428 a211");
18521 static const fp12_t var_a = { { { {0xF0E31A37, 0xF65D23ED, 0x0F2FD9FB, 0xB7FD1462, 0x7F56F700, 0xE26B8C12, 0x41878DFD, 0x2227ED23},
18522 {0x1ACA40FF, 0x809BD3DC, 0x21759E08, 0x2B92F642, 0xB5402CB4, 0x6CBA8118, 0x58F017E6, 0x1BDE91CD} } ,
18523 { {0xAA33A8E1, 0xD862D1EF, 0x9967AA33, 0x3EE7827B, 0xE5A437CF, 0x8C99B845, 0xF5811E6E, 0x101E9899},
18524 {0x29BF855E, 0x292C0F86, 0x8BC11341, 0xB652FEC7, 0x5D1EDBDB, 0xF24E1C7F, 0x02D72660, 0x112556E2} } } ,
18525 { { {0x7138101D, 0x5E961E85, 0x43CE7F74, 0x5D6D4517, 0x7F081907, 0x1834777F, 0x62435380, 0x0A3CD815},
18526 {0x326F5694, 0x1A770097, 0xC0BB2921, 0x79D1E270, 0x3FED7BF7, 0x3A7DAA53, 0xA9F8C1BC, 0x1FD2C4E7} } ,
18527 { {0x705DE093, 0x6A99A8B9, 0x34BD70C6, 0xFDAE3697, 0xA8439359, 0x64AFF35F, 0xDE00967C, 0x20EC45A0},
18528 {0x029E6347, 0x61F3168C, 0x86FD171E, 0x5AC6325B, 0x577E29F8, 0x17C06C96, 0x800C3563, 0x097F7065} } } ,
18529 { { {0x1533FF45, 0x417D28C0, 0xCF61A229, 0x20C077F7, 0xFE69378E, 0x49BFEA8D, 0xFE098459, 0x00398D40},
18530 {0xA89CB919, 0xE590811A, 0xE01B7483, 0x4B51F8F0, 0xE3DB75FF, 0xC7081CE1, 0x3E902C44, 0x0A7A33C9} } ,
18531 { {0x0E3F3A91, 0x0CD63374, 0xBB0CA47A, 0x2B7964EB, 0x5EB0263B, 0x57E27144, 0x971E35F3, 0x102A15C9},
18532 {0x6F19FF25, 0xE8CB0144, 0x16F7A65F, 0xED36F097, 0x5F197008, 0x2820907F, 0x161C75FF, 0x1F5C19D9} } } } ;
18533 static const fp12_t var_b = { { { {0x46CC72E9, 0xDECC614F, 0xDC813DD4, 0x1B085465, 0xE53C5DA1, 0x17B5F53A, 0xFDBEB525, 0x1E1B2B8A},
18534 {0xE4EFC655, 0xD3B9A245, 0xAB0A565F, 0xB00707E0, 0x88237497, 0xF7D4DE2F, 0x3FAB74F4, 0x03DDE070} } ,
18535 { {0xECBA5474, 0xD125D431, 0x5648B7E2, 0x285C15C2, 0xF0F6501A, 0x7D3498A9, 0xC678B548, 0x0C1330CA},
18536 {0xD5F8F5A8, 0xBE1954E2, 0x64BDBFF6, 0x54F7188A, 0x5B90D9EC, 0xD9BD5994, 0x2EF348DC, 0x0AFBBCDC} } } ,
18537 { { {0x6B50A657, 0xC45F249F, 0x8FFA86C3, 0xDC102C11, 0x1B57E490, 0x4DBDE90D, 0x873B6944, 0x1E9DD6E2},
18538 {0x4FDA3C96, 0x9D6669CA, 0x47B111A3, 0xABE6F1FF, 0x166F6CC3, 0xDE23B37C, 0xD6AFADBB, 0x06AE804F} } ,
18539 { {0x720730B8, 0xC1B5B450, 0x2D9688BB, 0x0165E132, 0x4437AD69, 0xA1BFFBEA, 0x54A4A1E6, 0x0930660B},
18540 {0x9ED7A58E, 0x58E4FC20, 0x9813A4A9, 0xB61A9F16, 0x3518BFD9, 0x9C425D69, 0xAEF28750, 0x1201266F} } } ,
18541 { { {0xED5F354B, 0xAD37653E, 0x13CC930E, 0x6BA003C5, 0x88A28F8F, 0x00F0652C, 0xC34F1563, 0x01141E7F},
18542 {0x50A135F6, 0xFEB33660, 0xDDEC3C2F, 0x45E6F733, 0x75FD4E23, 0x8F930618, 0x2A772B32, 0x1361D09A} } ,
18543 { {0x09AF77BA, 0x49D7AC7E, 0x675090BC, 0xB5937C17, 0x44A5AC7C, 0x1D18D9EE, 0xA929DFDA, 0x0E22069B},
18544 {0x3125A654, 0x5BDA771D, 0xDA7038D6, 0x5A1C6830, 0xD4797D81, 0xE2FA4A6F, 0x3FEF524E, 0x11577616} } } } ;
18545 static const fp12_t var_expected = { { { {0x37AF8D0D, 0x2E29853D, 0xEBB117BD, 0x71E468C7, 0x64935499, 0x3FED33CD, 0xFF464321, 0x1B1FB42B},
18546 {0xFFBA0754, 0x54557621, 0xCC7FF468, 0xDB99FE22, 0x3D63A14B, 0x648F5F48, 0x989B8CDB, 0x1FBC723D} } ,
18547 { {0x96EDFD55, 0xA988A621, 0xEFB06216, 0x6743983D, 0xD69A87E9, 0x09CE50EF, 0xBBF9D3B7, 0x1C31C964},
18548 {0xFFB87B06, 0xE7456468, 0xF07ED337, 0x0B4A1751, 0xB8AFB5C8, 0xCC0B7613, 0x31CA6F3D, 0x1C2113BE} } } ,
18549 { { {0xDC88B661, 0x7BF54324, 0xD3C90624, 0xD85C7128, 0x9A5FFD8F, 0xABBE130C, 0xA97EBCC2, 0x03B74A75},
18550 {0x82499317, 0x10DD6A61, 0x086C3AB1, 0xC497D470, 0x565CE8B2, 0x5E6D104F, 0x40A86F76, 0x015DE0B5} } ,
18551 { {0xE2651138, 0x854F5D09, 0x6253F96E, 0x9DF317C9, 0xEC7B40BA, 0x4C3BA1C9, 0xF2A53861, 0x04F94729},
18552 {0xA17608D5, 0xBAD812AC, 0x1F10BBC7, 0x10E0D172, 0x8C96E9D2, 0xB402C9FF, 0x2EFEBCB3, 0x1B8096D5} } } ,
18553 { { {0x02933490, 0xEEB48DFF, 0xE32E3537, 0x8C607BBC, 0x870BC71D, 0x4AB04FBA, 0xC15899BC, 0x014DABC0},
18554 {0xF93DEF0F, 0xE443B77A, 0xBE07B0B3, 0x9138F024, 0x59D8C422, 0x569B22FA, 0x69075777, 0x1DDC0463} } ,
18555 { {0x17EEB24B, 0x56ADDFF2, 0x225D3536, 0xE10CE103, 0xA355D2B7, 0x74FB4B32, 0x404815CD, 0x1E4C1C65},
18556 {0xA03FA566, 0x9DA57861, 0xF167DF22, 0xE63258C7, 0x3392ED81, 0x50E68D6F, 0x160BC84C, 0x0B902B6D} } } } ;
18558 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2429 a000");
18559 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2430 a001");
18560 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2431 a010");
18561 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2432 a011");
18562 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2433 a100");
18563 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2434 a101");
18564 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2435 a110");
18565 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2436 a111");
18566 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2437 a200");
18567 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2438 a201");
18568 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2439 a210");
18569 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2440 a211");
18572 static const fp12_t var_a = { { { {0x33EFDEE8, 0xA079169F, 0x8E2A02D8, 0x9244A3A1, 0x151DA596, 0xB7B1D8BB, 0x5BBB30A8, 0x0C5D7572},
18573 {0x4F5E267E, 0x095D696E, 0x944EAB24, 0x22DF0F8E, 0x8EA15C46, 0x63F42305, 0x2252CCA0, 0x020D687D} } ,
18574 { {0x1890AD61, 0x91042256, 0x2E0501DF, 0xA0C94EB1, 0xD8883071, 0xECFFA59C, 0x2D823807, 0x16E8CFE5},
18575 {0xF62442DA, 0x8049EFEF, 0x51007852, 0x49BB11DE, 0x2012505B, 0xBF5ED2BA, 0x0831D938, 0x04DA295A} } } ,
18576 { { {0xA5463FBB, 0xB16F89AF, 0x2A7EA8B3, 0xF3A7B24C, 0xA9D807C5, 0xCDAD3A01, 0x35353C95, 0x19342965},
18577 {0xB4FECE2C, 0x56C6FFAF, 0x961B5846, 0xB1F9366D, 0x48C2810F, 0xFB860706, 0x27024391, 0x1CEE3978} } ,
18578 { {0x07DD6E33, 0x53D6E913, 0xA876FB9F, 0xC958FF7F, 0xE63D24C6, 0x25866C57, 0x071FE71F, 0x1FC323E8},
18579 {0x56EEF20F, 0x29265E7B, 0x27A1D991, 0xE8D8CA90, 0x02D22ABD, 0x007CBC78, 0x73742393, 0x0F4C86C7} } } ,
18580 { { {0xAC0281B0, 0x8386D0CC, 0x0D633B54, 0xDAE2C18F, 0x2CFB51C4, 0xB3DF5ADC, 0xFA66CC3E, 0x048B426D},
18581 {0xE8433E25, 0x51F53950, 0x094D4FB7, 0x36F6C02C, 0x8B5AB049, 0xF5AE8A95, 0xE1BE6010, 0x187F82E8} } ,
18582 { {0x3F1CA9E3, 0x340D2CE6, 0xFE9AB3C8, 0x7DD80BC9, 0x583417B0, 0x34DC3F82, 0xE1641DE7, 0x060914CC},
18583 {0xB86CD932, 0xF909B2F6, 0x82E6BA95, 0x85FF204C, 0x613E9446, 0x15CE2805, 0x26EBDDD1, 0x0EE6E224} } } } ;
18584 static const fp12_t var_b = { { { {0xAF132169, 0x8E4E218E, 0x60A9F8AB, 0x6A265EE8, 0x87BEEE61, 0xD7EDAE75, 0x91ED932D, 0x1217656B},
18585 {0x52C3C5FF, 0xED933B00, 0x16909C22, 0xC0E4ACE4, 0x40F9394B, 0x37404042, 0x77305FA8, 0x1D603EFF} } ,
18586 { {0x2728D5DD, 0x3C8C4454, 0x589C9B71, 0x82E55750, 0x16F0D662, 0xA744F70D, 0x61A89075, 0x11C7E503},
18587 {0x845F3830, 0xAB2DEDAE, 0x8B17CA38, 0x25F7D61E, 0x25707FC5, 0x13F53336, 0x4A3922C6, 0x00D0024C} } } ,
18588 { { {0x16BEA3E8, 0x077D36E9, 0x4A5551C6, 0x95792689, 0xA1703444, 0xC3085548, 0x645A6DE0, 0x234D25C9},
18589 {0x5BE6F935, 0x53EEAD85, 0xE5452B1E, 0xACE7F3BA, 0x4EC12954, 0xBD6262FE, 0x53782AF0, 0x22E390BB} } ,
18590 { {0x272F31C4, 0x7D59A53F, 0xDDD88D34, 0x7E38BFC1, 0x060909A1, 0xD3483D8F, 0x7037031C, 0x19E4E798},
18591 {0x235AEE23, 0x9F744882, 0x6A2F6FC7, 0x2FB0B36C, 0x37142623, 0xC92C1EC2, 0x4778414F, 0x07168CEB} } } ,
18592 { { {0x499A4F9F, 0x6FEBB12F, 0xF59E9307, 0x59B1D84B, 0x62737E7B, 0xBA00936A, 0x99336595, 0x0AFDAB70},
18593 {0x6AEAA182, 0x26F96142, 0x9E83BAD3, 0x48D4DE45, 0x9D699E54, 0xF745D04A, 0x1B28ABF5, 0x05EAE2F8} } ,
18594 { {0xA8B3F9CC, 0xB29FB8FD, 0xB7E2F675, 0x7832A84B, 0x122BC5A6, 0xCC898961, 0x3651CE54, 0x1FB07830},
18595 {0xFCC3EFF5, 0x21615594, 0x46DD3A05, 0x51E05489, 0x7E6BE240, 0x5E4FD456, 0x05338EB9, 0x2462B37F} } } } ;
18596 static const fp12_t var_expected = { { { {0xE3030051, 0x2EC7382D, 0xEED3FB84, 0xFC6B0289, 0x9CDC93F7, 0x8F9F8730, 0xEDA8C3D6, 0x1E74DADD},
18597 {0xA221EC7D, 0xF6F0A46E, 0xAADF4746, 0xE3C3BC72, 0xCF9A9591, 0x9B346347, 0x99832C48, 0x1F6DA77C} } ,
18598 { {0x3FB9832B, 0x269066AA, 0x86A19D3D, 0xC28DA601, 0xEF7906CB, 0xDA104F29, 0x4F2AC87B, 0x038D5066},
18599 {0x7A837B0A, 0x2B77DD9E, 0xDC18428B, 0x6FB2E7FC, 0x4582D020, 0xD35405F0, 0x526AFBFE, 0x05AA2BA6} } } ,
18600 { { {0xBC04E390, 0x11ECC098, 0x74D3FA66, 0x27FFD8D5, 0x4B483C02, 0xD68141CA, 0x598FAA74, 0x175DEAAC},
18601 {0x10E5C74E, 0x03B5AD35, 0x7B608351, 0xFDC02A28, 0x9783AA5B, 0xFEB41C84, 0x3A7A6E80, 0x1AAE65B1} } ,
18602 { {0x2F0C9FE4, 0x2A308E52, 0x864F88C0, 0xE670BF41, 0xEC462E5F, 0x3E9A5C66, 0x3756EA3A, 0x1484A6FE},
18603 {0x7A49E032, 0xC89AA6FD, 0x91D14958, 0x18897DFC, 0x39E650E1, 0xC9A8DB3A, 0xBAEC64E2, 0x166313B2} } } ,
18604 { { {0xF59CD14F, 0xF37281FB, 0x0301CE5B, 0x349499DB, 0x8F6ED040, 0x6DDFEE46, 0x939A31D4, 0x0F88EDDE},
18605 {0x532DDFA7, 0x78EE9A93, 0xA7D10A8A, 0x7FCB9E71, 0x28C44E9D, 0xECF45AE0, 0xFCE70C06, 0x1E6A65E0} } ,
18606 { {0xE7D0A39C, 0x3FACE5E3, 0xB67DAA2A, 0x94E9B415, 0x6A5FDD4E, 0x47317B63, 0xD7B5EC3A, 0x0096287A},
18607 {0xB530C914, 0x736B088B, 0xC9C3F487, 0x76BE74D5, 0xDFAA767E, 0xB9E9AEDB, 0xEC1F6C88, 0x0E263120} } } } ;
18609 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2441 a000");
18610 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2442 a001");
18611 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2443 a010");
18612 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2444 a011");
18613 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2445 a100");
18614 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2446 a101");
18615 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2447 a110");
18616 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2448 a111");
18617 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2449 a200");
18618 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2450 a201");
18619 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2451 a210");
18620 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2452 a211");
18623 static const fp12_t var_a = { { { {0xB194E78A, 0xCF957E65, 0x87F293EA, 0x7D726814, 0xB33C46EF, 0x418F6FA3, 0xD9F3C3ED, 0x139FCCC8},
18624 {0xE7E0BB6F, 0x6F49F234, 0x6812C200, 0x5AFF557F, 0x163D2476, 0x6DB16BD1, 0x78461032, 0x108D7903} } ,
18625 { {0x118CA7EF, 0xB7AEC20A, 0x0C80FFBC, 0xC38497EA, 0x21162F42, 0xD56ACE4A, 0x5A2A6C57, 0x24AC9341},
18626 {0x77D8BFBB, 0x0C1B20BB, 0x4984460A, 0x26330224, 0xE24A0959, 0x5D543B5C, 0x6B6B2619, 0x07E83E54} } } ,
18627 { { {0xB5ED6482, 0x5B9D3270, 0x29F05B09, 0xF74F0C25, 0x7B5641EA, 0xE3974AC4, 0x8C061818, 0x1A766953},
18628 {0x3AAF713F, 0x401965F2, 0x6D6F5D88, 0x895E33C9, 0xA01A0EEE, 0x7A33E46D, 0x524E1914, 0x193F075E} } ,
18629 { {0xCAE22414, 0x0DF9C3D5, 0x05ABB628, 0x5C8FBDE5, 0x1C9E109F, 0x31B25531, 0x05E80162, 0x01941A77},
18630 {0xFDA6EF0B, 0x89705125, 0x993BA879, 0xC5937E04, 0x4C1BC46A, 0x7DB3A7D9, 0xA395BDBF, 0x01165AD9} } } ,
18631 { { {0xBD39B106, 0x3D48719F, 0x036CC9D0, 0x22CA56E3, 0xA25E762E, 0x9AC5B5D4, 0x1ACF3F20, 0x1D3F2B5B},
18632 {0xCC0E148A, 0xCF46CE18, 0xD3CB3502, 0xC8B99582, 0x2375D48A, 0xA5966415, 0x112E609B, 0x00248632} } ,
18633 { {0x3C360786, 0x63165B25, 0xCA913B89, 0x6EA08CFC, 0xEAAA732D, 0x224B8457, 0x20A8E901, 0x1FEA48D3},
18634 {0xF5128E7B, 0xC2CE50B9, 0x5FCED7E7, 0x8DF4D798, 0xA3D9EA39, 0xB8945607, 0x139B6646, 0x09EF7165} } } } ;
18635 static const fp12_t var_b = { { { {0x3261604B, 0xBFFF4C0E, 0x3D6E47D0, 0xB0B93D8E, 0x10075734, 0x948705FD, 0x6BA2736F, 0x18EFD899},
18636 {0x048D14B9, 0x0153F1BA, 0xC30C6C3A, 0x8EA331AE, 0x88536522, 0x46F1442F, 0xDD48A3EC, 0x07B21E33} } ,
18637 { {0xCE58CEDB, 0x10C1A695, 0x8396E70D, 0x82AB49C5, 0x73383C72, 0xA33B9397, 0xD17A3C2B, 0x139E280F},
18638 {0xC7D3AB2A, 0x704B66AD, 0xC3BB19AA, 0x84383CD4, 0xCF16DEBD, 0x22F47C87, 0xE4D75DC8, 0x2033A3F2} } } ,
18639 { { {0x7BA06A8A, 0x0B4EA95D, 0xFF326964, 0xFAA53865, 0xAE15DF0D, 0xCA521B41, 0xE6CA4F37, 0x0BD13FAE},
18640 {0x4A8BFF1C, 0x7B66E344, 0x65CB81B3, 0x2A05A329, 0xB65087E2, 0xD16889D1, 0x5D730F73, 0x099E39D0} } ,
18641 { {0xE8701A03, 0x8BD927AF, 0x574F784A, 0xB9009DBC, 0x9F56C2AC, 0x258F48BC, 0x01605CD4, 0x209E24AC},
18642 {0xDB74CFC8, 0x389EDCD8, 0xED36E951, 0xF70ACBDE, 0xB9F76014, 0x2E6B044A, 0xBD1CD318, 0x203A15D3} } } ,
18643 { { {0x0188E67C, 0xA3E79C47, 0x702A9FDC, 0xBA7447C0, 0x6364AA5D, 0x3A008580, 0x7585DE12, 0x1E7A5016},
18644 {0x073F7694, 0x8848AD59, 0xE05447D8, 0x47ECC1F5, 0x959B3362, 0x6EBD4C68, 0x7AFA88FA, 0x098606CC} } ,
18645 { {0xF2F8E622, 0xF260A316, 0x6F86396F, 0x4B8A2886, 0x57296C3E, 0x8E25B7CB, 0x97537EE4, 0x067468E5},
18646 {0x9A557592, 0x6423233E, 0x0427624D, 0x91396716, 0x47357341, 0x0628051C, 0x88ADB39C, 0x0E43A79D} } } } ;
18647 static const fp12_t var_expected = { { { {0xE3F647C2, 0xE894CA73, 0xC560DBA7, 0xCD0AA5A2, 0xC3439E1B, 0x1BE22820, 0x0596375B, 0x076C40E0},
18648 {0xEC6DD028, 0x709DE3EE, 0x2B1F2E3A, 0xE9A2872E, 0x9E908998, 0xB4A2B000, 0x558EB41E, 0x183F9737} } ,
18649 { {0xDFE576B7, 0x2170689F, 0x9017E6B6, 0xE50EE1AF, 0x944E6BAC, 0xBE721461, 0xEBA4A881, 0x132756CE},
18650 {0x3FAC6AD2, 0xD5668769, 0x0D3F5FA0, 0x494A3EF9, 0xB160E80E, 0xC6146A64, 0x104283DF, 0x02F87DC5} } } ,
18651 { { {0x318DCEF9, 0xBFEBDBCE, 0x2922C459, 0x90D3448B, 0x296C20F0, 0xF3B51886, 0x32D0674E, 0x01244480},
18652 {0x853B705B, 0xBB804936, 0xD33ADF3B, 0xB363D6F2, 0x566A96D0, 0x4B9C6E3F, 0xAFC12888, 0x22DD412E} } ,
18653 { {0xB3523E17, 0x99D2EB85, 0x5CFB2E72, 0x15905BA1, 0xBBF4D34C, 0x57419DED, 0x07485E36, 0x22323F23},
18654 {0xD91BBED3, 0xC20F2DFE, 0x867291CA, 0xBC9E49E3, 0x0613247F, 0xAC1EAC24, 0x60B290D7, 0x215070AD} } } ,
18655 { { {0xBEC2976F, 0x3A300DE6, 0x73976999, 0x7C1D9EA3, 0x05C32083, 0x1A91EDD5, 0x50551D31, 0x169616EF},
18656 {0xD34D8B1E, 0x578F7B71, 0xB41F7CDB, 0x10A65778, 0xB91107ED, 0x1453B07D, 0x8C28E996, 0x09AA8CFE} } ,
18657 { {0x2F2EED95, 0xAE76FE3C, 0x3A1774E5, 0x5909B583, 0x41D3DF63, 0xF63CEEA3, 0x77FC67E3, 0x013B4D36},
18658 {0x8F68040D, 0x26F173F8, 0x63F63A35, 0x1F2E3EAE, 0xEB0F5D7B, 0xBEBC5B23, 0x9C4919E2, 0x18331902} } } } ;
18660 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2453 a000");
18661 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2454 a001");
18662 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2455 a010");
18663 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2456 a011");
18664 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2457 a100");
18665 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2458 a101");
18666 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2459 a110");
18667 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2460 a111");
18668 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2461 a200");
18669 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2462 a201");
18670 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2463 a210");
18671 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2464 a211");
18674 static const fp12_t var_a = { { { {0x2AFCC2A2, 0x639FD38B, 0xB9F8DB87, 0x8B770D99, 0x18E10F44, 0x6D65DB40, 0xFE03A26A, 0x0075FFB2},
18675 {0xA2B12863, 0xE167ED29, 0x5EAAC089, 0xEE84ED0F, 0x0DF7E62F, 0x32A3C9C7, 0x5C9CFACD, 0x04D388F9} } ,
18676 { {0x55BFC495, 0x9B7F0456, 0xF3392F87, 0x0CD012DE, 0x82E847C6, 0x1FF93DED, 0xFD3E3419, 0x00A7FD11},
18677 {0x6BA97F68, 0xC5DAEF4D, 0x3227AAD7, 0x13EB87E0, 0x641C2B13, 0x5E1B8ED5, 0xEC44743F, 0x04863240} } } ,
18678 { { {0x60358105, 0xFA6EF0B4, 0x02763F95, 0x950EDD04, 0xB38D3B0D, 0xA2AEE4C1, 0x696C9E31, 0x1F385700},
18679 {0x83C0CF3D, 0xE8D779C3, 0x05810F30, 0x831B695C, 0x07BA05A3, 0xEC694FA3, 0x6B8A9558, 0x1DD6EF14} } ,
18680 { {0x78E61368, 0x617F3EBE, 0x0B9C3ED5, 0x52219DBB, 0x09E0A4EA, 0x1CA7C64E, 0xD902F7D1, 0x15981AB7},
18681 {0xB777BA24, 0xA5676163, 0x9D865F77, 0x2AFA09CD, 0xF58D8F4D, 0x643C823B, 0xD00CDB64, 0x07CA61C1} } } ,
18682 { { {0x0AC0EEE7, 0x4E73EF36, 0x73AEC00B, 0x0B27CE1F, 0x1E804821, 0xF18FA2D8, 0xA0D763A9, 0x109AD948},
18683 {0x131D26F7, 0x084C02DA, 0xFE41619E, 0x4AA3A421, 0x6ACF306D, 0x38208CF5, 0x4F6D25A8, 0x093A3101} } ,
18684 { {0xC4E43DAB, 0xE9D02EE2, 0xDF125CEA, 0x6647BA24, 0xD26FB254, 0xF5122013, 0xD471B0AA, 0x20CC8054},
18685 {0xE59B5049, 0xBF1221F9, 0x6E48F8EF, 0xDE5A048A, 0xE4FE71D1, 0x2B798E0A, 0x5DA8C9A5, 0x14A19741} } } } ;
18686 static const fp12_t var_b = { { { {0x917CDED9, 0x46ED8766, 0x34E2D747, 0x653ACBE8, 0x41E25A2B, 0xAFED2F95, 0xCA5418C7, 0x148546FA},
18687 {0xB94CE787, 0xDB21B288, 0x710ADA86, 0xB47B9194, 0x1FB6A08A, 0xB8854BC1, 0x6F5E556A, 0x11F3C33A} } ,
18688 { {0x9F84EF19, 0x5C057F2A, 0x9738B067, 0xA8E29632, 0xC70B1028, 0xA5533AD2, 0x56534569, 0x1D42F18D},
18689 {0x5DC545E3, 0x26C88417, 0xCC233AB3, 0xD0E19B28, 0x1878488A, 0x0CF1FA9F, 0x7B2A0778, 0x0640EE8A} } } ,
18690 { { {0x5C9FE712, 0xA7428EC9, 0x6C852830, 0x3F66AA8E, 0x03F2B9A3, 0x7F17ADB2, 0x0EE38178, 0x10982529},
18691 {0xDDA8BF02, 0x7353D28C, 0x85AB7513, 0x65BEF6F5, 0x0D817F36, 0xC4A39E54, 0xB4ECFAB3, 0x0F5786ED} } ,
18692 { {0x74E451BC, 0x73D48602, 0x5ADBC0FC, 0x1EFE2EC7, 0xD03B7123, 0x40D8F894, 0x87641F95, 0x083582BC},
18693 {0x8777F590, 0x7218B17B, 0xE1839AAE, 0x71B7CD32, 0x799606F4, 0xA6340955, 0x911D0A02, 0x24024BE2} } } ,
18694 { { {0xD3B0154A, 0xB1FB5540, 0x45402BD4, 0xB10B37AE, 0x4C01EA81, 0xFE87CE49, 0x557A10E4, 0x1E2132D6},
18695 {0xE85E5072, 0x1C866B79, 0x64AAFB9D, 0x0C91C0C0, 0x1CD742DE, 0x8895CC56, 0x061B605F, 0x059C0FED} } ,
18696 { {0xA876494D, 0xB11A2E1E, 0x51FDA45E, 0x7E19E573, 0xD39B32AF, 0xC5075F62, 0x4E54B70F, 0x0B372D87},
18697 {0xCC09836D, 0x1036BBF7, 0xD387A924, 0x079A4712, 0xF08AFC9A, 0x97F18E87, 0x497CC26A, 0x247EC0DD} } } } ;
18698 static const fp12_t var_expected = { { { {0xBC79A17B, 0xAA8D5AF1, 0xEEDBB2CE, 0xF0B1D981, 0x5AC3696F, 0x1D530AD5, 0xC857BB32, 0x14FB46AD},
18699 {0x5BFE0FEA, 0xBC899FB2, 0xCFB59B10, 0xA3007EA3, 0x2DAE86BA, 0xEB291588, 0xCBFB5037, 0x16C74C33} } ,
18700 { {0xF544B3AE, 0xF7848380, 0x8A71DFEE, 0xB5B2A911, 0x49F357EE, 0xC54C78C0, 0x53917982, 0x1DEAEE9F},
18701 {0xC96EC54B, 0xECA37364, 0xFE4AE58A, 0xE4CD2308, 0x7C94739D, 0x6B0D8974, 0x676E7BB7, 0x0AC720CB} } } ,
18702 { { {0xBCD56804, 0xFAB17F7D, 0x6EFB67B2, 0x73548792, 0xB77FF4A8, 0x679244F3, 0x38501FA8, 0x0AAD17A7},
18703 {0x61698E2C, 0xB52B4C50, 0x8B2C8430, 0x87B96051, 0x153B84D1, 0xF6D8A077, 0xE077900A, 0x080B117F} } ,
18704 { {0xEDCA6524, 0xD553C4C0, 0x6677FFD1, 0x711FCC82, 0xDA1C160D, 0x5D80BEE2, 0x60671766, 0x1DCD9D74},
18705 {0x3EEFAFA1, 0x708012DF, 0x7F09FA12, 0x3B90D700, 0x6F239639, 0x503C3E11, 0x2129E565, 0x06A94922} } } ,
18706 { { {0xDE71041E, 0x596F4476, 0xB8EEEBCC, 0x5B1205CD, 0x6A82329A, 0x35E323A1, 0xB651748D, 0x0998A79C},
18707 {0xFB7B7769, 0x24D26E53, 0x62EC5D3B, 0x573564E2, 0x87A6734B, 0xC0B6594B, 0x55888607, 0x0ED640EE} } ,
18708 { {0x6D5A86E5, 0xF3EA5D01, 0x31100135, 0x83409F98, 0xA60AE4FB, 0xFFE531F6, 0xE2C667B8, 0x06E04959},
18709 {0xB1A4D3A3, 0x2848DDF1, 0x41D0A200, 0x84D34B9D, 0xD5896E63, 0x0936CF12, 0x67258C0E, 0x13FCF39C} } } } ;
18711 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2465 a000");
18712 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2466 a001");
18713 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2467 a010");
18714 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2468 a011");
18715 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2469 a100");
18716 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2470 a101");
18717 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2471 a110");
18718 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2472 a111");
18719 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2473 a200");
18720 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2474 a201");
18721 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2475 a210");
18722 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2476 a211");
18725 static const fp12_t var_a = { { { {0x5F8DAC21, 0x07C51388, 0xE5EED71E, 0x07824A01, 0x0476C659, 0x9D7BE1D6, 0x4703E8C5, 0x1B55B92D},
18726 {0x407023D2, 0x15FEE763, 0x3440E3B7, 0xBD895469, 0x34F305C8, 0xA2BF61DB, 0x4D5F8D16, 0x0EF5D7C4} } ,
18727 { {0xA501A5E8, 0xB0D4CE58, 0xA4D41FA1, 0x7D7B0F11, 0xBADBF410, 0x1535FEDA, 0x54C61EE7, 0x1E18FB9C},
18728 {0x93A75D47, 0xB9FBCA8B, 0xCC028116, 0x958E3A48, 0x641AA720, 0xF7A7EDB9, 0xC9B9638B, 0x055A6632} } } ,
18729 { { {0x6765DD40, 0x64713F96, 0x75A14F3D, 0x45E0DBFE, 0x13CA9B04, 0x70DB7CFD, 0x0C5CEA10, 0x05DAB96A},
18730 {0x50B2AB0F, 0x23A6B589, 0x1E5A4393, 0x1782DF2D, 0x3EA4E316, 0xB2A6B94C, 0xB1A59355, 0x0DEE3FFB} } ,
18731 { {0xD29F65CA, 0xA22717AD, 0x7BCBDA0C, 0x12678886, 0x6CBF363B, 0xBC28B34B, 0x02528ACC, 0x20AE7975},
18732 {0x4450B524, 0x76E23CB8, 0xF27B2A3B, 0xE3E028F6, 0xBD9D93CC, 0x49A518EC, 0xBAB72E3A, 0x0E410548} } } ,
18733 { { {0x53BD8137, 0xBAF4F54C, 0x1C9C8627, 0x7DC60FEC, 0x628B412D, 0x5D14FC9F, 0xCB56C120, 0x02B35401},
18734 {0x7DCE33BB, 0x860CE86E, 0x4A99B210, 0x311AAD77, 0x214D5018, 0x597980C0, 0x194AD687, 0x2042D753} } ,
18735 { {0x97BFEE12, 0x4459EBC5, 0xFE7F8004, 0x40F94445, 0xD21EEF44, 0xCADB43DE, 0x7E83DB8E, 0x0F426EDF},
18736 {0x48D7F5B2, 0xEB0BC488, 0x6D2E0A07, 0x4060B737, 0xE40135A8, 0x0169291D, 0xC4D03BC5, 0x1A359869} } } } ;
18737 static const fp12_t var_b = { { { {0x8B6DD58C, 0xC2675B08, 0x0457EE6F, 0xB3534EDE, 0xD95B33EB, 0x75D7EC37, 0xAEB7E882, 0x110C7A5D},
18738 {0x3142E776, 0x5C62DAF5, 0xE0523B16, 0x4312774D, 0xC5E4739C, 0x7953EE40, 0x6F225573, 0x04E311A7} } ,
18739 { {0x5D234132, 0xF4D447A8, 0x54C4F0DE, 0x70F2E3F1, 0xD3E52605, 0x10655F43, 0x30DA2AE5, 0x0F85D123},
18740 {0x06E44004, 0x2A3B8CD8, 0x67094942, 0x4DFF87CD, 0xC0C7BE12, 0x776A10EA, 0xCFD04406, 0x0401A7BC} } } ,
18741 { { {0x78A22FED, 0x2007FD84, 0x537E1F82, 0x33EF522E, 0x5EF1AEF8, 0x2CF289F9, 0x5B38B847, 0x0D2B5A45},
18742 {0xD35EBCF8, 0xA27ED1EF, 0x07904056, 0x836BB356, 0x13F68313, 0x10225AF2, 0x5973F6B4, 0x1B616628} } ,
18743 { {0x8AE139CD, 0x002923F6, 0xA69E6A75, 0x4E5D40C0, 0x57149331, 0xB6FAEBED, 0x02CA51C3, 0x20453233},
18744 {0xE6F1E6A0, 0x3BDA5B4F, 0x06B03E2C, 0xD615FE98, 0x3904FF8C, 0x341FA3E1, 0x82F96EC5, 0x12A0EA91} } } ,
18745 { { {0x81DCC0D7, 0x1435339F, 0x32F2837D, 0x18123BDC, 0xDB15C9AF, 0x203472C4, 0xBB886DD3, 0x11F67E48},
18746 {0xCB497EAE, 0x76DA9DA6, 0xE90D6954, 0x28EEEFEF, 0xF29F1D18, 0x03CA2C28, 0xC0F8D08E, 0x22348D54} } ,
18747 { {0x8964C859, 0xE80A504A, 0x1C49AD88, 0xD8DA0400, 0x47BE2DF9, 0x02A360D1, 0x1ABA7495, 0x1878E8C9},
18748 {0x5050E632, 0xC3F3B597, 0x7479DB76, 0x237F2069, 0x38603829, 0xA836E5F8, 0x87FD14B6, 0x215F5D72} } } } ;
18749 static const fp12_t var_expected = { { { {0xEAFB819A, 0x232C6E90, 0xEA46C57A, 0x59B498DF, 0xDDD1FA3C, 0x591F808D, 0xB5BBD146, 0x073ECF08},
18750 {0x71B30B48, 0x7261C258, 0x14931ECD, 0x009BCBB7, 0xFAD77965, 0x1C13501B, 0xBC81E28A, 0x13D8E96B} } ,
18751 { {0x0224E707, 0xFEA91601, 0xF999106C, 0x8D4CF302, 0x8EC11A0D, 0x6B67109E, 0x45A049CA, 0x087B683D},
18752 {0x9A8B9D4B, 0xE4375763, 0x330BCA58, 0xE38DC216, 0x24E26532, 0x6F11FEA4, 0x9989A792, 0x095C0DEF} } } ,
18753 { { {0xE0080D2D, 0x84793D1A, 0xC91F6EBF, 0x79D02E2C, 0x72BC49FC, 0x9DCE06F6, 0x6795A257, 0x130613AF},
18754 {0x241167F4, 0x1F258779, 0x25EA83D6, 0x39CD9283, 0x529B6621, 0x0894C6BE, 0xCB198A08, 0x042C41A1} } ,
18755 { {0x5D809F84, 0xFB503BA4, 0x226A446D, 0xFFA3C947, 0xC3D3C963, 0xB8EF51B8, 0xC51CDC8E, 0x1BD04725},
18756 {0x2B429BC4, 0xB2BC9808, 0xF92B6867, 0xB9F6278E, 0xF6A29359, 0x7DC4BCCD, 0x3DB09CFF, 0x20E1EFDA} } } ,
18757 { { {0xD59A420E, 0xCF2A28EB, 0x4F8F09A4, 0x95D84BC8, 0x3DA10ADC, 0x7D496F64, 0x86DF2EF3, 0x14A9D24A},
18758 {0x4917B256, 0x55E78615, 0x33A71B51, 0xF8E89D67, 0x13EC6D27, 0xA30F5F69, 0x9A43A713, 0x1D540025} } ,
18759 { {0x2124B658, 0x85643C10, 0x1AC92D79, 0xB8B24846, 0x19DD1D35, 0x134A5730, 0x593E5022, 0x0297F326},
18760 {0x9928DBD1, 0x07FF7A1F, 0xE1A7E56B, 0x02BED7A0, 0x1C616DC9, 0xEF6BC196, 0x0CCD5079, 0x1671915A} } } } ;
18762 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2477 a000");
18763 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2478 a001");
18764 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2479 a010");
18765 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2480 a011");
18766 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2481 a100");
18767 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2482 a101");
18768 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2483 a110");
18769 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2484 a111");
18770 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2485 a200");
18771 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2486 a201");
18772 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2487 a210");
18773 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2488 a211");
18776 static const fp12_t var_a = { { { {0x0EF046E8, 0x6477836B, 0xC9C6001A, 0xF7FAA364, 0x37A78724, 0xF010A454, 0xF6473689, 0x042C32C3},
18777 {0x82FCB7BB, 0x02943DDF, 0xAC3D899C, 0x931017D0, 0x4A959FA8, 0x4D4145E1, 0x0CDF75C8, 0x16FDF0BD} } ,
18778 { {0xBF6A29BC, 0x9E4E5F2D, 0xDE312C8E, 0x1C9C3B5A, 0x8A0BD52D, 0xD58EF633, 0xA1068D4D, 0x1C98B88D},
18779 {0xAD225B12, 0xD536FC4D, 0xD7701249, 0xDD395A98, 0xA418FBFD, 0x2C52B92D, 0xC4079196, 0x0C549EC5} } } ,
18780 { { {0x8805CC48, 0xE0740228, 0x4044A0A4, 0x950EAA86, 0x5B9700B6, 0x518BE246, 0xB30C3A82, 0x0234443A},
18781 {0x5F44B92F, 0xA66D7ED5, 0x79448DAC, 0x2A50D0BE, 0x031D8451, 0xBF84D02C, 0xA4CB3A99, 0x193D4227} } ,
18782 { {0x96062161, 0x37F08123, 0x14FB32FB, 0xBF32E13F, 0x0838DBDE, 0x8AFACDF9, 0x7FFEF235, 0x071E6BEE},
18783 {0x656003A6, 0x78F89028, 0x5855435D, 0xC9A65DFB, 0x65FE0354, 0x4914E653, 0xE2B30613, 0x17C7976F} } } ,
18784 { { {0x56995B44, 0xAFFBB586, 0xBFE63B83, 0x4E1A0C7B, 0x2DEC6EE6, 0x425B8ADE, 0x5C60A418, 0x0595C6E2},
18785 {0xCBC28B01, 0x07CD9FB0, 0x78FB62C4, 0x38D8C8DB, 0x0612BB43, 0xC5FADDF8, 0x32D28342, 0x06EB775D} } ,
18786 { {0x759E343C, 0xB8106B53, 0xE57A14D1, 0x88127709, 0xA993AA12, 0xAAA65984, 0x5CE6E77C, 0x2032FF61},
18787 {0xDED4B358, 0xC031F9D8, 0x1E9AA3E5, 0x8DCBE6A0, 0x64760CAF, 0x58E94D01, 0xC9122DC5, 0x1E56C50C} } } } ;
18788 static const fp12_t var_b = { { { {0xE17BC28A, 0x41FCF6D0, 0x6D5E26AF, 0x1F08361C, 0x98BF527C, 0x1BD39C16, 0x57C1AE56, 0x18FF6909},
18789 {0x2CEDED8B, 0x86BEF4F0, 0xD0EFE364, 0x272E04F7, 0x3AE302F9, 0x3269D9CC, 0x1C810D07, 0x030F0E6D} } ,
18790 { {0xC5ECE486, 0x20F03146, 0x7BBB4F1D, 0x63989647, 0x56825A5F, 0xEAD11F1D, 0xA0F51FC1, 0x1DAF15B0},
18791 {0x821FD316, 0xF77CFE25, 0x5366AD3C, 0xD6B699E2, 0x8879AE69, 0x83423DB1, 0x60A717F7, 0x2182480F} } } ,
18792 { { {0x8FD14472, 0x858CD363, 0x738FD520, 0x5CA4507F, 0x813F811E, 0x08CE9BFC, 0x0DA1AA07, 0x0C644995},
18793 {0xEC0C4D1D, 0x6DEC8556, 0xAB62BF34, 0xA1A5387A, 0x889347AA, 0x2E3463E3, 0x4BD4363E, 0x0E4A991F} } ,
18794 { {0xEDFFE791, 0xBAF73340, 0xFCFAB9B2, 0xFEE87EC4, 0xF67B4A57, 0x77052ADF, 0x32564C2D, 0x00F5FF65},
18795 {0xB8B3D2A2, 0xD81AD1BE, 0x1D957F8B, 0xAB95CD46, 0xB99438E1, 0xE083EC04, 0xD16D056F, 0x1F96AD62} } } ,
18796 { { {0xCA125944, 0xFEE57005, 0xF9918BD8, 0xBF19567E, 0xD2AD4852, 0x052DD153, 0x66640B78, 0x0B25CC84},
18797 {0x733FBF3F, 0xE6AAB3C0, 0x2F4964AC, 0x06C51463, 0xD7B9F287, 0xB644C53C, 0x273F4B92, 0x23120D9B} } ,
18798 { {0x553A62BF, 0x6CB0F6B2, 0x91ABAD4A, 0xD336A9B6, 0x710CBCA7, 0xA7D3752F, 0x3C2AA56F, 0x0D09F324},
18799 {0xE9D8AD55, 0xAEEE2947, 0xA5B55130, 0xB87F60B3, 0xDFE88D8F, 0x98E9B12F, 0x02CF200D, 0x189A1E20} } } } ;
18800 static const fp12_t var_expected = { { { {0xF06C0972, 0xA6747A3B, 0x372426C9, 0x1702D981, 0xD066D9A1, 0x0BE4406A, 0x4E08E4E0, 0x1D2B9BCD},
18801 {0xAFEAA546, 0x895332CF, 0x7D2D6D00, 0xBA3E1CC8, 0x8578A2A1, 0x7FAB1FAD, 0x296082CF, 0x1A0CFF2A} } ,
18802 { {0x85570E2F, 0x183E9074, 0x59EC7B98, 0x1F13D1A2, 0xE08E2F84, 0x062BC7D0, 0x01FBAD0E, 0x152469BC},
18803 {0x2F422E15, 0x25B3FA73, 0x2AD6BF73, 0x52CEF47B, 0x2C92AA5F, 0xF560A95F, 0xE4AEA98B, 0x08B38252} } } ,
18804 { { {0x17D710BA, 0x6600D58C, 0xB3D475C5, 0xF1B2FB05, 0xDCD681D4, 0x5A5A7E42, 0xC0ADE489, 0x0E988DCF},
18805 {0x4B510639, 0x6D5A042C, 0x24A74CCD, 0x6AD50939, 0x8BB0CBF3, 0x3384E68F, 0xB09F70D6, 0x026476C4} } ,
18806 { {0x840608F2, 0xF2E7B464, 0x11F5ECAD, 0xBE1B6004, 0xFEB42636, 0x01FFF8D8, 0xB2553E63, 0x08146B53},
18807 {0x1E13D635, 0xAA1361E7, 0x75EAC2D5, 0x141B2B41, 0x1F923C2E, 0x6F6484D8, 0x74200B81, 0x123AE050} } } ,
18808 { { {0x20ABB488, 0xAEE1258C, 0xB977C75C, 0x0D3362FA, 0x0099B739, 0x47895C32, 0xC2C4AF90, 0x10BB9366},
18809 {0x3F024A2D, 0x47785371, 0xA844C75D, 0xDE7CDD3E, 0xDDCCADC1, 0xC20B55B4, 0x1A11CED3, 0x04DA2076} } ,
18810 { {0xCAD896E8, 0x7DC16205, 0x7725C208, 0xFA2820C0, 0x1AA066B1, 0x98458134, 0x59118CEA, 0x08198E03},
18811 {0xC8AD609A, 0xC8202320, 0xC44FF502, 0xE52A4753, 0x445E9A36, 0x379EB0B1, 0x8BE14DD1, 0x11CD7EAA} } } } ;
18813 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2489 a000");
18814 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2490 a001");
18815 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2491 a010");
18816 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2492 a011");
18817 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2493 a100");
18818 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2494 a101");
18819 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2495 a110");
18820 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2496 a111");
18821 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2497 a200");
18822 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2498 a201");
18823 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2499 a210");
18824 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2500 a211");
18827 static const fp12_t var_a = { { { {0xF90B62AD, 0xD7636D93, 0x27B204F5, 0xA24327B3, 0x72608525, 0x0D35C801, 0xC96670B9, 0x0DDB27C3},
18828 {0x2776FD02, 0x94EFD786, 0x854CEB2E, 0xA2C599CE, 0x0F814FA4, 0x3A929F09, 0x57A8CC84, 0x1F6D9281} } ,
18829 { {0x655225FA, 0xFACA0948, 0x62733078, 0x7A5861A4, 0xB0D36C5F, 0x1E36183D, 0xE48473D2, 0x23A5864F},
18830 {0x7BAA5986, 0x10816C1C, 0x130BD8E1, 0xB4DB8A71, 0xE32AF637, 0x90C49595, 0x9CAE5358, 0x02701A8C} } } ,
18831 { { {0x85DD6819, 0x5887428A, 0x25701C22, 0xB54E9863, 0x49C1BCD8, 0x4CED7BC2, 0x20F3AE47, 0x175073B5},
18832 {0x72765CF4, 0xD954E8C9, 0xD5C900E0, 0xDC3F6A95, 0x18A8DF20, 0x8871F80A, 0x456ABD0E, 0x2373A521} } ,
18833 { {0x8652E00F, 0x5819E904, 0x962C1E78, 0x4B284A78, 0x9A8530AE, 0x02E6C70F, 0x936C9B7A, 0x15E8CBC2},
18834 {0xD8174985, 0x1200C953, 0x8F8CB2D8, 0xFDB9AE82, 0xACA301D0, 0xDD288E83, 0x475F0C46, 0x0CBC81AF} } } ,
18835 { { {0xD5FBD635, 0xADF6A6E5, 0x1A807740, 0x551E84DE, 0x404E3701, 0xBE621BA8, 0xD14DDC90, 0x20A6A277},
18836 {0xBBD9CB2A, 0xC717183F, 0x47D2CDD8, 0x588B1D79, 0xDB81B641, 0xFB34A552, 0xD754EA53, 0x08BC73D4} } ,
18837 { {0x1F996377, 0x7694DE07, 0x56E551EA, 0x54FAFB46, 0x17EA8A97, 0x3C371D13, 0x70DE251E, 0x0D6B8DBD},
18838 {0x68E4E13B, 0x38385E71, 0x41E5D18B, 0x904B2AC6, 0x22305EDF, 0xBF678B9C, 0x2AAA0862, 0x0DBE6405} } } } ;
18839 static const fp12_t var_b = { { { {0x512F3072, 0x087AF0D9, 0x30CA326E, 0x76ACE2C9, 0x3E991ACB, 0xEC9B9BE2, 0x45A957B1, 0x0B06CAAE},
18840 {0x6B0DC687, 0x891B7AF3, 0x022BE7CE, 0x2F398F62, 0x3FF5D2B1, 0x47089176, 0x36A834DE, 0x1FFB8692} } ,
18841 { {0x98D8D5A5, 0xA055E45D, 0xCBDFD428, 0x43848D45, 0x10DD4947, 0xF526223A, 0x65C8CA36, 0x06E3594B},
18842 {0x91A7F7DB, 0xE0A05B58, 0x5074E1E5, 0xD3F62E70, 0x2E41B22F, 0x0711436B, 0xAFCC1F49, 0x24B800E6} } } ,
18843 { { {0x6294CC92, 0x740076E6, 0x8D6A8927, 0xE20ED2E1, 0x2B4883A9, 0x5E4690CB, 0x2432D40F, 0x1D58E982},
18844 {0xE9525471, 0x69E5A288, 0x2F4D2D47, 0x54BB3531, 0x2D7D79D1, 0xDFF362A3, 0x8A1DDC4D, 0x1439B653} } ,
18845 { {0x5A17EF59, 0xFE9B8671, 0x1B92FDC7, 0x75332E71, 0x6C4E1F94, 0x28BC149F, 0xD80F7BCE, 0x0059C8CC},
18846 {0xBDCC4510, 0x0A4F23F4, 0xE54CB630, 0xB4A18851, 0xB7DB769F, 0x68EBAF1B, 0x3C770C12, 0x0B3F8249} } } ,
18847 { { {0x6F9B927A, 0x5B98F1C0, 0x5AB17FFB, 0xDA55B3A8, 0xF0149F66, 0xB1229545, 0x16066302, 0x0C3A9BED},
18848 {0x9DBF02E1, 0xE99F4A6A, 0xF665C097, 0x7E886D9B, 0x8B288E57, 0xBEBA181B, 0xBBDEC83C, 0x10931984} } ,
18849 { {0xCCAF31AA, 0x82CAC592, 0x6EA6A834, 0xF9E8B267, 0x13423B3B, 0xBDF4FAB1, 0xF28BEAA3, 0x1D326810},
18850 {0x5493E8C6, 0x2B006C1A, 0x2836B4B4, 0x50F27C70, 0xA698D17E, 0x5611DC5F, 0xBACD3656, 0x05492E37} } } } ;
18851 static const fp12_t var_expected = { { { {0x4A3A931F, 0xDFDE5E6D, 0x587C3763, 0x18F00A7C, 0xB0F99FF1, 0xF9D163E3, 0x0F0FC86A, 0x18E1F272},
18852 {0x9284C376, 0x770B5279, 0x8778D2E9, 0x70DE2930, 0x4F77224D, 0xC766E2FF, 0x4E510160, 0x1A45B491} } ,
18853 { {0xFE2AFB8C, 0xF41FEDA5, 0x2E53048D, 0x5CBBEEEA, 0xC1B0B59E, 0x5927ECF7, 0x0A4D3E07, 0x05657B19},
18854 {0x0D52514E, 0x4A21C775, 0x6380BAB3, 0x27B0B8E1, 0x116CA85F, 0xDDA18B81, 0x0C7A729F, 0x0204B6F1} } } ,
18855 { { {0xE8723498, 0x2587B970, 0xB2DAA536, 0x363C6B44, 0x750A407A, 0xF0FFBF0D, 0x05268254, 0x0F85F8B5},
18856 {0x5BC8B152, 0x9C3A8B52, 0x05162E14, 0xCFD99FC7, 0x462658E9, 0xAE310D2D, 0x8F88995A, 0x1289F6F2} } ,
18857 { {0xE06ACF68, 0x56B56F75, 0xB1BF1C40, 0xC05B78E9, 0x06D35042, 0x2BA2DBAF, 0x6B7C1748, 0x1642948F},
18858 {0x95E38E95, 0x1C4FED48, 0x74D96908, 0xB25B36D4, 0x647E7870, 0x46143D9F, 0x83D61859, 0x17FC03F8} } } ,
18859 { { {0x4597689C, 0x628F98A6, 0x7531F728, 0xCE533886, 0x3062D65F, 0xB550636E, 0xA7543F91, 0x07BDD9E2},
18860 {0x5998CE0B, 0xB0B662AA, 0x3E388E70, 0xD7138B15, 0x66AA4498, 0xB9EEBD6E, 0x9333B290, 0x194F8D59} } ,
18861 { {0xEC48950E, 0x525FA399, 0xC58BFA0B, 0xEDC2ADAD, 0x2B2CC5CA, 0x3FF7CA44, 0x236A0FC0, 0x057A914C},
18862 {0xBD78CA01, 0x6338CA8B, 0x6A1C863F, 0xE13DA736, 0xC8C9305D, 0x157967FB, 0xE5773EB9, 0x1307923C} } } } ;
18864 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2501 a000");
18865 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2502 a001");
18866 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2503 a010");
18867 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2504 a011");
18868 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2505 a100");
18869 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2506 a101");
18870 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2507 a110");
18871 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2508 a111");
18872 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2509 a200");
18873 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2510 a201");
18874 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2511 a210");
18875 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2512 a211");
18878 static const fp12_t var_a = { { { {0xE008B167, 0x3477E299, 0xBE228CD8, 0x7FB93388, 0x74CDC681, 0x5735D2DB, 0x02357DC0, 0x1B216950},
18879 {0xEF3CE05B, 0x3317EF7C, 0x7F56E4C5, 0x0A42D39F, 0x439AEE65, 0xE20077A1, 0x3089D545, 0x0DD666F3} } ,
18880 { {0x565028BB, 0x2B68F817, 0xEEFA5311, 0xBAA226F1, 0xEECFE56A, 0x6B12EAEF, 0x1B071A91, 0x18A80925},
18881 {0xBC0EDBF1, 0x1F146326, 0x41AB3CB3, 0xFF029172, 0xE1A46DE1, 0x10E9A2FB, 0xD1697EA1, 0x18327FD7} } } ,
18882 { { {0x1DF557FE, 0x8EF7EE39, 0xE3764675, 0x662161E3, 0x9F53985A, 0x20E454A9, 0x12C50D39, 0x06239E90},
18883 {0x48886E8A, 0x91C075C5, 0xF2B3F06A, 0xA6609007, 0x3D09CC2E, 0x73B07AC8, 0xD231190C, 0x0D8947F8} } ,
18884 { {0x61FB99D8, 0xC721AD97, 0xC2A15333, 0x797B60BA, 0xE42318E9, 0xE4006821, 0xFB42E103, 0x0EB41852},
18885 {0x5F266CDF, 0xFA8FCECC, 0x58DB13FF, 0x63026657, 0x52C15ACA, 0xF3276E7F, 0x69570432, 0x1C077BB9} } } ,
18886 { { {0x8FCC77BB, 0x71954678, 0xEF99073C, 0x53B2C299, 0x599D1052, 0x90692498, 0xECB07BE5, 0x13399BAF},
18887 {0x0F33A69F, 0x4FB0CD89, 0x77C73091, 0x015CAB79, 0x5F40053F, 0x9F119330, 0x895C31E4, 0x13F710C0} } ,
18888 { {0x5407C998, 0x32C48CBB, 0x11E1F602, 0x89A694C0, 0xDD7D1B61, 0x6E9E8127, 0x3AF17856, 0x065A389D},
18889 {0xA595B888, 0xE41A2FA9, 0x94A9C9E4, 0xDC5F8104, 0xE142DD33, 0xF8ADEEA0, 0xE917F52A, 0x0BC1EBBA} } } } ;
18890 static const fp12_t var_b = { { { {0x9D4F7152, 0xEFF1038A, 0x0BAC9D68, 0xEFB15C7B, 0x8BB4A529, 0x054A9CD0, 0x79E4B3AD, 0x1D33879A},
18891 {0xADA2EB3F, 0x04A0916A, 0x358ED733, 0xCEFD609F, 0x939E8030, 0x498ACDA6, 0xFD068CD3, 0x1443AFF9} } ,
18892 { {0x971EA8DA, 0xAC433C2C, 0x0433B3AE, 0x035DE5ED, 0xC2311979, 0xA82F5C48, 0xBFBA049D, 0x19233FB0},
18893 {0xF4EB2909, 0xD1FFE103, 0x1EAD2D77, 0x787A2622, 0x7412527A, 0x06D07745, 0x7B9E5285, 0x0D355049} } } ,
18894 { { {0xAF92D9B6, 0xC3D18EAA, 0x5F01F10C, 0x3D07D22D, 0x1DB760DE, 0x8E21EC8B, 0xE1433304, 0x2048D5C1},
18895 {0x88100AA4, 0x1EEEA9F5, 0x55B9E46B, 0x0E956ED9, 0xC0168623, 0xCC0C4EB3, 0x969CB106, 0x1830DE41} } ,
18896 { {0x933F19BD, 0x32B63E16, 0xC3454DD8, 0xD1B1F566, 0x79A7BEB4, 0x4785928D, 0xF33B1DB0, 0x005A573D},
18897 {0xB68CEC1B, 0x092F4351, 0x1E31AB01, 0xE49825C9, 0xF5AC02F8, 0x48162F36, 0x0555BEE9, 0x22D54C94} } } ,
18898 { { {0x2EFE2E2C, 0xA61DFE9C, 0x1322AF4E, 0x44236B02, 0xF5D6F761, 0x42700698, 0x4BA110DA, 0x1BF7D315},
18899 {0x0A8A2D67, 0x349DEE31, 0xFFAD0F2E, 0x74F36A06, 0xCF2F19C5, 0x0BC09C92, 0xFC028FE1, 0x176BD05C} } ,
18900 { {0xAFBC285F, 0xED57D7C7, 0x75FB0717, 0x0BA17909, 0xED5AD209, 0x0398DBA4, 0xFE025ADB, 0x0B15AB07},
18901 {0x52AF6A04, 0x113FCFE9, 0xBC34BE1F, 0x1F10AC81, 0x4B2305BA, 0x0055CB75, 0xB0184350, 0x1FC4D601} } } } ;
18902 static const fp12_t var_expected = { { { {0x7D5822A6, 0x7D68E624, 0xC9CF2A2D, 0x0E499003, 0x00826BA3, 0xA24C222C, 0x3C1A316B, 0x13318C68},
18903 {0x9CDFCB9A, 0x37B880E7, 0xB4E5BBF8, 0xD940343E, 0xD7396E95, 0x2B8B4547, 0x2D906219, 0x221A16ED} } ,
18904 { {0xED6ED182, 0x30AC3443, 0xF32E06AC, 0x5CDF0CDE, 0xB100FEDB, 0x590DF9B8, 0x9AC11F2D, 0x0CA7E453},
18905 {0xB0FA04E7, 0x4A14442A, 0x60586A17, 0x165BB794, 0x55B6C054, 0x5D85CCC1, 0x0D07D124, 0x00446B9F} } } ,
18906 { { {0xCD8831A1, 0xABC97CE3, 0x4278376E, 0x42083411, 0xBD0AF930, 0xF4D1F3B4, 0xB408403B, 0x01490FCF},
18907 {0xD098791B, 0x09AF1FBA, 0x486DD4C2, 0x53D4FEE1, 0xFD205249, 0x85887BFB, 0x28CDCA11, 0x0096C1B8} } ,
18908 { {0xF53AB395, 0xF9D7EBAD, 0x85E6A10B, 0x4B2D5621, 0x5DCAD79E, 0x2B85FAAF, 0xEE7DFEB4, 0x0F0E6F90},
18909 {0x15B358E7, 0x5CBF121E, 0x770CBEED, 0xE6798C20, 0x486D5DBA, 0x81095036, 0x2EACC31A, 0x19B963CB} } } ,
18910 { { {0xBECAA5D4, 0x70B34514, 0x02BBB677, 0x36B52D9C, 0x4F7407AB, 0x18A4DDB1, 0xF8518CBE, 0x0A0E0A42},
18911 {0x19BDD3F3, 0xDD4EBBBA, 0x77743FAB, 0x152F1580, 0x2E6F1EFC, 0xF09DE243, 0x455EC1C3, 0x063F7C9B} } ,
18912 { {0x03C3F1F7, 0x201C6483, 0x87DCFD1A, 0x95480DC9, 0xCAD7ED6A, 0x72375CCC, 0x38F3D331, 0x116FE3A5},
18913 {0xF8452279, 0x4E59FF92, 0x50DE87F0, 0x9A4F2D86, 0x2C65E2E5, 0x3ECF6C96, 0x59303879, 0x06635D3A} } } } ;
18915 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2513 a000");
18916 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2514 a001");
18917 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2515 a010");
18918 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2516 a011");
18919 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2517 a100");
18920 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2518 a101");
18921 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2519 a110");
18922 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2520 a111");
18923 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2521 a200");
18924 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2522 a201");
18925 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2523 a210");
18926 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2524 a211");
18929 static const fp12_t var_a = { { { {0x814E9457, 0x75E47986, 0x4FCAF4E6, 0x59C32E3D, 0xFD59E87B, 0x6276223D, 0x61C906E2, 0x13F016FC},
18930 {0x9BF0DCB8, 0x2353C9A3, 0x5B85B0FB, 0x578A10DA, 0xA70453EA, 0x4AF2388D, 0xD68FBFCE, 0x15472FB7} } ,
18931 { {0x533C3E2C, 0xCE86EBE7, 0x446AC42F, 0x06B3CC9B, 0x03DCCE0D, 0x05F0144D, 0x4893DBE6, 0x09645EB9},
18932 {0x315FC67F, 0x3165457B, 0x206B583A, 0xD42E1A13, 0x5F1A0C02, 0x57DBAFC4, 0x64381EFB, 0x0801A9C8} } } ,
18933 { { {0x11948AA1, 0x6E559DA1, 0x3AEAF70D, 0x92B2EE4C, 0x1C9A90DC, 0x8CD291D2, 0x09797E5C, 0x24695A32},
18934 {0xA1F9F343, 0x1459D74A, 0x910CAF36, 0x15179845, 0x3044BC36, 0x870348C5, 0x8D0CD7D3, 0x0CEE02DD} } ,
18935 { {0xE7B8605F, 0xB3C6E4C5, 0x56DC35F6, 0x19AC7C2D, 0xA5CE7CE8, 0x92DD2654, 0x7965D5DB, 0x019C92CE},
18936 {0xBA7B53B7, 0x5E7FC9B2, 0x723B4C10, 0x1264D3A4, 0x18CB4A65, 0x3590AFCC, 0x487A8EE8, 0x006D8B6B} } } ,
18937 { { {0x4433AB63, 0x20C5D84A, 0xFDA5B19C, 0x85745B74, 0x3A0549E4, 0x9225C4AF, 0x6C6198B8, 0x0854DA5D},
18938 {0x862E9CD6, 0x519E8B18, 0xC8C461A2, 0x5B2E0471, 0x5331A7AC, 0xE896B4E2, 0x09B9AB90, 0x0043A527} } ,
18939 { {0xD4806B94, 0x69BE9242, 0xD4CF0634, 0x0142E428, 0xBAEA8C77, 0x5E88FF06, 0x38E51795, 0x1293909C},
18940 {0x55B811D2, 0xBF0B06A0, 0xD9C0B626, 0x39370EB0, 0x5E024A3C, 0x94AA377A, 0xC6169465, 0x049AA1EB} } } } ;
18941 static const fp12_t var_b = { { { {0x84E46106, 0x93AFD3E5, 0xC0558820, 0xF8C91B64, 0x401D8395, 0xF5E6F1DE, 0x3228377C, 0x07878534},
18942 {0xB2EC4AFA, 0x3CB4D05F, 0x29E385EF, 0x8F9D76C5, 0xF6A28938, 0x3E7A98AD, 0xB248A054, 0x11181E80} } ,
18943 { {0x8136497C, 0x06380DD2, 0xE6F60318, 0x6353B695, 0x2AFC313B, 0xC3FDDA45, 0x6E719AE0, 0x1514152C},
18944 {0x6A9C269D, 0x0E2F4E51, 0x7ECA6992, 0x4D17A942, 0x1921C354, 0x8934F8F3, 0x04BAC492, 0x0FD8D592} } } ,
18945 { { {0x38B4A6AF, 0xEFAECE1B, 0xAB85F8DA, 0x48CCD545, 0x1578D956, 0xB99EA294, 0xC36709B1, 0x1BD75366},
18946 {0x8B65B65D, 0x78D0AABD, 0xDC501F60, 0xFFDF7E88, 0x04045760, 0xF9E51A14, 0x30DFED50, 0x1BB2A468} } ,
18947 { {0x57D02C99, 0x64259616, 0xB43745D7, 0x9632910C, 0xDEE2BA97, 0x063F0D0E, 0xC45F0517, 0x0D41AF0B},
18948 {0x628357C9, 0x81B2BF28, 0x89DB558C, 0x4328FD12, 0x321C7A84, 0x9C47BAC3, 0x6B8410F4, 0x0409D95C} } } ,
18949 { { {0xC902B857, 0xC38405F3, 0xE6F5435E, 0x0C9044B8, 0xA2BF33A0, 0xA695747E, 0x46AD934C, 0x01033A15},
18950 {0x7B9ECF1C, 0x2FCDD9FA, 0x09AB6370, 0x09C16F88, 0x6253DACA, 0x17C97911, 0xEA1BEE14, 0x1C4EB72E} } ,
18951 { {0xBC98D0CD, 0xE4967B94, 0x66AC5C4E, 0xFE0896DB, 0xBD922C2F, 0xF18A519A, 0x9FF43B72, 0x20B72BF1},
18952 {0xA49C839B, 0xE801656A, 0x222BF497, 0xDA1AACE4, 0x907C1702, 0x8379B2AA, 0xA30C8D75, 0x002E4D4A} } } } ;
18953 static const fp12_t var_expected = { { { {0x0632F55D, 0x09944D6C, 0x10207D07, 0x528C49A2, 0x3D776C11, 0x585D141C, 0x93F13E5F, 0x1B779C30},
18954 {0x4EDD279F, 0xB9089A03, 0x856936D6, 0x8606879F, 0x9DA6DD1A, 0xCF3883BB, 0x48D86020, 0x013BE9B6} } ,
18955 { {0xD47287A8, 0xD4BEF9B9, 0x2B60C747, 0x6A078331, 0x2ED8FF48, 0xC9EDEE92, 0xB70576C6, 0x1E7873E5},
18956 {0x9BFBED1C, 0x3F9493CC, 0x9F35C1CC, 0x2145C355, 0x783BCF57, 0xE110A8B7, 0x68F2E38D, 0x17DA7F5A} } } ,
18957 { { {0x4A49313D, 0xB7046BBC, 0xE670EFD4, 0x7A5EC391, 0x32136A2A, 0x8C3CE6E6, 0x8CE0880C, 0x1B1D4916},
18958 {0x2D5FA98D, 0xE62A8208, 0x6D5CCE82, 0xB3D616CE, 0x3449138E, 0xC6B41559, 0x7DECC522, 0x037D42C3} } ,
18959 { {0x3F888CF8, 0x17EC7ADC, 0x0B137BCE, 0xAFDF0D3A, 0x84B1377F, 0x991C3363, 0x3DC4DAF2, 0x0EDE41DA},
18960 {0x1CFEAB80, 0xE03288DB, 0xFC16A19C, 0x558DD0B6, 0x4AE7C4E9, 0xD1D86A8F, 0xB3FE9FDC, 0x047764C7} } } ,
18961 { { {0x0D3663BA, 0xE449DE3E, 0xE49AF4FA, 0x9204A02D, 0xDCC47D84, 0x38BB392D, 0xB30F2C05, 0x09581472},
18962 {0x01CD6BF2, 0x816C6513, 0xD26FC512, 0x64EF73F9, 0xB5858276, 0x00602DF3, 0xF3D599A5, 0x1C925C55} } ,
18963 { {0x91193C4E, 0xA7550DD7, 0x3B7B626F, 0x9E2A7B04, 0x787CB89E, 0x95DF0321, 0x98D95306, 0x0E27580B},
18964 {0xFA54956D, 0xA70C6C0A, 0xFBECAABE, 0x1351BB94, 0xEE7E613F, 0x1823EA24, 0x692321DB, 0x04C8EF36} } } } ;
18966 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2525 a000");
18967 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2526 a001");
18968 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2527 a010");
18969 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2528 a011");
18970 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2529 a100");
18971 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2530 a101");
18972 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2531 a110");
18973 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2532 a111");
18974 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2533 a200");
18975 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2534 a201");
18976 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2535 a210");
18977 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2536 a211");
18980 static const fp12_t var_a = { { { {0x9E84D415, 0x2C16113F, 0x989A117E, 0xC1994F3C, 0xCDB1DB3B, 0xEBB8BC46, 0xE4793A7A, 0x1FD65CA6},
18981 {0xE970C169, 0x3C297B66, 0xD842A93A, 0x03CFB059, 0xFA231093, 0xD8C7DD86, 0x89086535, 0x16D7B837} } ,
18982 { {0x1A2EA671, 0x09C3F9FE, 0x23A37663, 0x9A57F1DB, 0xAF13DC1E, 0xC72BBC7D, 0x2A6EE63B, 0x2110A644},
18983 {0x98EB1C9D, 0xFC2A5783, 0x70A4B005, 0x166C76BE, 0x1C5F0202, 0x52051114, 0xD3583FF3, 0x02E34179} } } ,
18984 { { {0x1F42F532, 0x816D49EA, 0xEA9B215F, 0xF3F91193, 0x8020987E, 0x827814F3, 0xC6444C19, 0x0A796B7B},
18985 {0x3E8AE611, 0x3805AC29, 0x701D4CBC, 0xA0F70FA5, 0xB39C80BC, 0x232E01F3, 0xB52ACBF2, 0x0018D5EE} } ,
18986 { {0xD9821A86, 0x1E071D9E, 0x149E8DD5, 0x18187578, 0x9D81082D, 0xB563BE52, 0x4CFBFB17, 0x134758F1},
18987 {0xA747A74E, 0x9AE3DF89, 0x9DE6539D, 0x506C0971, 0xBC743AC1, 0x4B5D71BF, 0xA5E6E55F, 0x0F780BD0} } } ,
18988 { { {0xB597869B, 0xC9B62798, 0x0556F20C, 0x6C05F58C, 0xA3F1C5F9, 0xF3BF9002, 0x91750B4A, 0x0B14AABD},
18989 {0xE16BC465, 0xA6292B14, 0xFBF39CF1, 0x99EC1007, 0x75789936, 0xF297F71F, 0x56789768, 0x04A89E3C} } ,
18990 { {0x60DDCAB9, 0x83E1A34D, 0x61538EFA, 0xDCFE2765, 0x6E0C7564, 0x861B93F2, 0x6CBF4C9B, 0x16BEDD04},
18991 {0x385C27E9, 0x59849B76, 0xCF446D7A, 0x3BD0D6EE, 0x5A023266, 0x53A9267E, 0xBFA6C2B4, 0x1E1E7B00} } } } ;
18992 static const fp12_t var_b = { { { {0xC63526F9, 0x5042A820, 0x0E596AF4, 0xD639C2C9, 0x1C1F77D5, 0x6A662053, 0x306AB8E8, 0x1EC5A1AD},
18993 {0x3A6B05A7, 0x3FFDFA61, 0x9F33C67D, 0xF5744200, 0x29060855, 0x5AF956A9, 0x945C8989, 0x20CCF190} } ,
18994 { {0x17D8BF70, 0xDDF4E094, 0x32AD87C6, 0x36E8D387, 0x0AF80206, 0xAD285430, 0x33D30B1E, 0x0AD3E59C},
18995 {0xB4A8AB1C, 0x00089B96, 0x2FC6BC5C, 0x75B6DFF4, 0xDEE0A731, 0x095E00B9, 0x4AFD6449, 0x1084E6B0} } } ,
18996 { { {0xBD2058B0, 0x9886AC64, 0x30698769, 0x2FA7AEE9, 0xD5B682DD, 0x2915C55C, 0xCA769B1F, 0x1DD7309C},
18997 {0xB2B17236, 0x6F9003FA, 0x85FDB55A, 0xF4199176, 0xB6281358, 0xFB3BAF02, 0x17B4F263, 0x0A464773} } ,
18998 { {0x6661A6DD, 0xFB079D57, 0xAEC9CA0C, 0xE3ABA091, 0x5A9C4B62, 0xDFCD91A0, 0x494159F4, 0x0D7A0952},
18999 {0x8180B77B, 0x3C0F86B6, 0xE5259D80, 0x6D168C84, 0x2E7D81BF, 0xF62EE6FC, 0x6EC3736B, 0x008EC837} } } ,
19000 { { {0xFFB03FF9, 0xEB1B5DFB, 0x927EFEA6, 0x26D370AF, 0xB5DAA83E, 0x596AE6A2, 0x46DE0E2A, 0x09EF5137},
19001 {0xAF3CEE41, 0x4094B4A5, 0xD4260D51, 0x60EB9547, 0x0457F570, 0x5B81DF48, 0x86D401D2, 0x072B4278} } ,
19002 { {0xB5BB0DDE, 0x2906F99F, 0xFFFA1DD7, 0x914D9BC9, 0x45653A75, 0x47D9ACE7, 0x9609CCF5, 0x1EBA020E},
19003 {0x090BC7BF, 0x22DDBC86, 0x18D36CF5, 0x80587CAE, 0x34D8A44A, 0x2CC4AE4A, 0xD34677B2, 0x1BBAAAF3} } } } ;
19004 static const fp12_t var_expected = { { { {0x64B9FAFB, 0xD558B960, 0xA6F37C5E, 0x36B21205, 0xE9D15309, 0x9BEA8F19, 0xD4E3F361, 0x197899D1},
19005 {0x23DBC6FD, 0xD52775C8, 0x77766FA3, 0x9822F25A, 0x232918E0, 0x798CE6B0, 0xDD64EEBD, 0x12814545} } ,
19006 { {0x320765CE, 0x40B8DA92, 0x5650FE16, 0x701FC562, 0xBA0BDE1C, 0xBA1FC32D, 0x1E41F158, 0x06C1275E},
19007 {0x4D93C7B9, 0xFC32F31A, 0xA06B6C61, 0x8C2356B2, 0xFB3FA933, 0x5B6311CD, 0x1E55A43C, 0x1368282A} } } ,
19008 { { {0xDC634DCF, 0x72F3F64E, 0x1B04A8B5, 0xC27FC07D, 0x55D71B53, 0xF1598CD0, 0x50BAE736, 0x032D3796},
19009 {0xF13C5847, 0xA795B023, 0xF61B0216, 0x9510A11B, 0x69C49415, 0x1E69B0F6, 0xCCDFBE56, 0x0A5F1D61} } ,
19010 { {0x3FE3C163, 0x190EBAF6, 0xC36857E2, 0xFBC41609, 0xF81D538F, 0x95314FF2, 0x963D550C, 0x20C16243},
19011 {0x28C85EC9, 0xD6F36640, 0x830BF11D, 0xBD8295F6, 0xEAF1BC80, 0x418C58BB, 0x14AA58CB, 0x1006D408} } } ,
19012 { { {0xB547C694, 0xB4D18594, 0x97D5F0B3, 0x92D9663B, 0x59CC6E37, 0x4D2A76A5, 0xD8531975, 0x1503FBF4},
19013 {0x90A8B2A6, 0xE6BDDFBA, 0xD019AA42, 0xFAD7A54F, 0x79D08EA6, 0x4E19D667, 0xDD4C993B, 0x0BD3E0B4} } ,
19014 { {0x1698D884, 0x05E89CED, 0x614DACBE, 0x0D2AC32F, 0xB371AFD2, 0x13C0F359, 0xC2C9198F, 0x10557A90},
19015 {0x4167EF95, 0xD56257FC, 0xE817DA5B, 0x5B08539C, 0x8EDAD6A8, 0xC6398748, 0x52ED3A64, 0x14B5C172} } } } ;
19017 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2537 a000");
19018 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2538 a001");
19019 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2539 a010");
19020 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2540 a011");
19021 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2541 a100");
19022 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2542 a101");
19023 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2543 a110");
19024 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2544 a111");
19025 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2545 a200");
19026 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2546 a201");
19027 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2547 a210");
19028 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2548 a211");
19031 static const fp12_t var_a = { { { {0xF6926314, 0xAABE8B38, 0x5BC5EEF9, 0x22015493, 0xA5C0A735, 0xCBAF397D, 0x0DDB87FE, 0x041FC23A},
19032 {0x9BDD6C98, 0xFA5FA7C1, 0xB63805BC, 0xE6A5E86B, 0xFC9B36CA, 0xA856DB96, 0xCA820AFD, 0x18034244} } ,
19033 { {0x6D7D9C16, 0x0AFE4F01, 0x4BC7E61C, 0x8E3A5088, 0xB3D2A5FB, 0x58CE5393, 0xC11FFC48, 0x1CBAA3B5},
19034 {0xB343C951, 0x8D5B7AB8, 0xF2F0FC02, 0x4AE6572E, 0xD886D25F, 0x35D60404, 0x6046A36F, 0x11FB2990} } } ,
19035 { { {0x09C75957, 0x2250150C, 0xB49D8B14, 0xCDBD4C47, 0x8CB255E5, 0xA748A8A7, 0x079CA507, 0x0E97B5CE},
19036 {0xDE39F078, 0xB3EC40E7, 0x51705B81, 0x2CFA742B, 0x859606E1, 0x38074BB8, 0xCBF9D445, 0x18017A54} } ,
19037 { {0xF6904A5F, 0x59231914, 0xBBE84A05, 0xDD985BE4, 0x8C78EE40, 0x23D4CDFF, 0xF46A0C5B, 0x06115383},
19038 {0xE8F99012, 0x6E15F653, 0x9956F15F, 0xDC619F57, 0x00B27F6D, 0xF4FBF302, 0x3FF7A0A0, 0x0864850E} } } ,
19039 { { {0xA0A18C30, 0x63D7433A, 0xC59BBD7E, 0xD010FFAB, 0x520EC0E7, 0x48DE4F94, 0x1C4131F5, 0x02AB3B1C},
19040 {0xDFCA8088, 0x23D7530F, 0xCEBE3A70, 0x36C8C9E2, 0x877996AD, 0x2077B9C4, 0xB1E7DD36, 0x043FB08D} } ,
19041 { {0xB6349FC6, 0x8DCDC98A, 0x774D63FF, 0x9F6FF60F, 0xB9FE8DE0, 0x1AF5F93A, 0x15C73462, 0x1DE7E012},
19042 {0x0FD1580B, 0x963A86C7, 0x368F344B, 0xF2A285D3, 0x9616B03D, 0x224F8558, 0x1603598E, 0x1FDB1E66} } } } ;
19043 static const fp12_t var_b = { { { {0x24CBEEE5, 0xE77A306D, 0xB687D60C, 0x4A02DFB6, 0xDF453B89, 0x2029FD0C, 0x34E13184, 0x2463CFD6},
19044 {0x06DE27A7, 0x3C63C2AD, 0x55C925B4, 0x15F46BD9, 0xEB0B7394, 0x46933D21, 0xA36FAAE4, 0x02B52DC1} } ,
19045 { {0x17FBEBC8, 0x3375B75F, 0xA7176655, 0x68798FE7, 0x2121C097, 0x0B95C7FE, 0x4D044C17, 0x1E069A3A},
19046 {0x90403810, 0x929FC12F, 0xF1D95BFC, 0x22D3B7AF, 0x8105D074, 0x8C02773A, 0x0E86BD6C, 0x1289C175} } } ,
19047 { { {0xFC3FBB68, 0x9388259F, 0xAF5D369F, 0x6B313AC9, 0x1CDF861D, 0x40107F96, 0x3685F1A4, 0x094A2051},
19048 {0xBB94E90F, 0x28762046, 0x0EE9E0C0, 0x257929A9, 0x97A8DE74, 0xA59A0375, 0x0B280D03, 0x0D0CE36C} } ,
19049 { {0x80CA7D5E, 0x74BCF99B, 0x729DC79D, 0x96855731, 0xADAF0CFD, 0xF11F0EAB, 0x04E6518F, 0x02D59C0A},
19050 {0xD4939E1B, 0x33BBA158, 0xF22916DB, 0x29D5353E, 0xAA638E3C, 0xE6F85315, 0xCF1094D1, 0x00DE2F13} } } ,
19051 { { {0x9050254A, 0x1671005E, 0xD74DF62A, 0x5DB64BF8, 0xF073E201, 0xEBB49E2C, 0x0B2B0829, 0x1E0B951B},
19052 {0x67E4BE46, 0x8B9A55F9, 0x212B5C5B, 0xB30669B6, 0x763E2B21, 0xAFD5467F, 0x8F1C71C4, 0x007FA271} } ,
19053 { {0x5ADDE0F3, 0xEB644C37, 0x02696E8F, 0x98F2D70D, 0x448EF1ED, 0x6C1FE44F, 0xA224F9AF, 0x173C03FD},
19054 {0x41EACBFA, 0x6AABA4F7, 0x60269164, 0x17572246, 0xF8A9B636, 0x19562148, 0x80A63F37, 0x0FFC6503} } } } ;
19055 static const fp12_t var_expected = { { { {0x1B5E51E6, 0xEB38BBA6, 0x124DC4F2, 0x0AE3344A, 0x8505E2B6, 0x31A4E90A, 0x02BCB981, 0x03602D8E},
19056 {0xA2BB943F, 0x36C36A6E, 0x0C012B71, 0xFC9A5445, 0xE7A6AA5E, 0xEEEA18B8, 0x6DF1B5E1, 0x1AB87006} } ,
19057 { {0x857987CB, 0x97740660, 0xF2DF4C5D, 0x9592E06F, 0xD4F4668A, 0xAA2FCE11, 0xCE24485D, 0x159DD96D},
19058 {0x43840161, 0x1FFB3BE8, 0xE4CA57FF, 0x6DBA0EDE, 0x598CA2D3, 0xC1D87B3F, 0x6ECD60DB, 0x2484EB05} } } ,
19059 { { {0x060714BF, 0xB5D83AAC, 0x63FAC1B3, 0x38EE8711, 0xA991DC03, 0xE759283D, 0x3E2296AB, 0x17E1D61F},
19060 {0x99CED987, 0xDC62612E, 0x605A3C41, 0x52739DD4, 0x1D3EE555, 0xDDA14F2E, 0xD721E148, 0x250E5DC0} } ,
19061 { {0x775AC7BD, 0xCDE012B0, 0x2E8611A2, 0x741DB316, 0x3A27FB3E, 0x14F3DCAB, 0xF9505DEB, 0x08E6EF8D},
19062 {0xBD8D2E2D, 0xA1D197AC, 0x8B80083A, 0x0636D496, 0xAB160DAA, 0xDBF44617, 0x0F083572, 0x0942B422} } } ,
19063 { { {0x30F1B17A, 0x7A484399, 0x9CE9B3A8, 0x2DC74BA4, 0x4282A2E9, 0x3492EDC1, 0x276C3A1F, 0x20B6D037},
19064 {0x47AF3ECE, 0xAF71A909, 0xEFE996CB, 0xE9CF3398, 0xFDB7C1CE, 0xD04D0043, 0x41044EFA, 0x04BF52FF} } ,
19065 { {0x111280A6, 0xD23215C2, 0x79B6D27B, 0xD741CD1C, 0xFE8D7FC5, 0xCCE19009, 0x77EC2E0F, 0x10007F8D},
19066 {0x51BC23F2, 0x59E62BBE, 0x96B5C59C, 0xA8D8A819, 0x8EC0666B, 0x81715921, 0x56A998C3, 0x0AB41EE7} } } } ;
19068 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2549 a000");
19069 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2550 a001");
19070 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2551 a010");
19071 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2552 a011");
19072 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2553 a100");
19073 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2554 a101");
19074 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2555 a110");
19075 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2556 a111");
19076 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2557 a200");
19077 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2558 a201");
19078 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2559 a210");
19079 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2560 a211");
19082 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19083 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19084 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19085 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19086 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19087 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19088 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19089 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19090 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19091 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19092 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19093 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19094 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19095 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19096 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19097 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19098 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19099 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19100 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19101 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19102 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19103 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19104 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19105 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19106 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19107 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19108 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19109 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19110 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19111 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19112 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19113 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19114 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19115 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19116 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19117 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19119 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2561 a000");
19120 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2562 a001");
19121 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2563 a010");
19122 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2564 a011");
19123 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2565 a100");
19124 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2566 a101");
19125 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2567 a110");
19126 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2568 a111");
19127 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2569 a200");
19128 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2570 a201");
19129 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2571 a210");
19130 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2572 a211");
19133 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19134 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19135 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19136 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19137 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19138 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19139 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19140 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19141 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19142 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19143 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19144 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19145 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19146 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19147 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19148 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19149 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19150 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19151 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19152 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19153 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19154 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19155 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19156 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19157 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19158 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19159 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19160 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19161 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19162 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19163 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19164 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19165 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19166 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19167 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19168 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19170 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2573 a000");
19171 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2574 a001");
19172 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2575 a010");
19173 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2576 a011");
19174 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2577 a100");
19175 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2578 a101");
19176 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2579 a110");
19177 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2580 a111");
19178 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2581 a200");
19179 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2582 a201");
19180 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2583 a210");
19181 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2584 a211");
19184 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19185 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19186 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19187 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19188 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19189 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19190 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19191 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19192 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19193 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19194 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19195 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19196 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19197 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19198 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19199 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19200 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19201 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19202 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19203 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19204 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19205 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19206 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19207 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19208 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19209 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19210 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19211 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19212 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19213 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19214 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19215 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19216 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19217 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19218 { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
19219 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19221 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2585 a000");
19222 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2586 a001");
19223 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2587 a010");
19224 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2588 a011");
19225 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2589 a100");
19226 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2590 a101");
19227 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2591 a110");
19228 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2592 a111");
19229 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2593 a200");
19230 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2594 a201");
19231 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2595 a210");
19232 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2596 a211");
19235 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19236 {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482} } ,
19237 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19238 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19239 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19240 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19241 { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
19242 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19243 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19244 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19245 { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
19246 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19247 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19248 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19249 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19250 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19251 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19252 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19253 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19254 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19255 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19256 {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482} } ,
19257 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19258 {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482} } } } ;
19259 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19260 {0x00000011, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482} } ,
19261 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19262 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19263 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19264 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19265 { {0x00000012, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
19266 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
19267 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
19268 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
19269 { {0x00000011, 0xA7000000, 0x00000013, 0x61210000, 0x00000008, 0xBA344D80, 0x40000001, 0x25236482},
19270 {0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
19272 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2597 a000");
19273 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2598 a001");
19274 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2599 a010");
19275 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2600 a011");
19276 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2601 a100");
19277 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2602 a101");
19278 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2603 a110");
19279 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2604 a111");
19280 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2605 a200");
19281 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2606 a201");
19282 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2607 a210");
19283 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2608 a211");
19286 static const fp12_t var_a = { { { {0x49A11C11, 0x4CCA9367, 0x57BC9261, 0xBDA04DC6, 0x44B228D3, 0xA9AD2CB1, 0x9BC465DD, 0x12F1AD1B},
19287 {0x71968FA6, 0x56FE3E8C, 0xB5509D67, 0xCD8C7E39, 0x6D5014CE, 0x495C8255, 0x58CB235D, 0x0452F576} } ,
19288 { {0x0CC21568, 0x7055F190, 0x7D38D7D6, 0x0A548119, 0xCEB46D7E, 0x04601932, 0x0E6A31A0, 0x0AE501C1},
19289 {0x423750AA, 0x4B2EEF9E, 0x652AE3E0, 0x8FE59705, 0x53E50A00, 0x7AD07586, 0x0BC18A53, 0x1A8B42A6} } } ,
19290 { { {0x8E2A02ED, 0xB84C091F, 0x5741950C, 0x419E8ACC, 0xFE5BE907, 0x785B2DB5, 0xCE365CB7, 0x13DC15F4},
19291 {0x41482C82, 0xB3725167, 0xF3CEA97B, 0xD214FA58, 0x66F517F3, 0x6E9BCD0D, 0xCE269FEC, 0x107CAD36} } ,
19292 { {0xFE5ACCD8, 0x1A999201, 0x0CFE442E, 0x4BC03EBF, 0x332FA600, 0xCDDFCF6F, 0xF157B1E9, 0x0B0B904D},
19293 {0x3C427B6A, 0x90AA6EE9, 0x27457A0E, 0x99317184, 0xA3B61DCB, 0x22AF776C, 0x964D715C, 0x1B1A2DBC} } } ,
19294 { { {0xC7386337, 0x82D5435B, 0xFFA83E36, 0x470974D6, 0x09478376, 0x52832904, 0x0C5CA9C2, 0x18E48D03},
19295 {0x406B48A6, 0xD66E3B0F, 0x03CF702A, 0xB53DFED4, 0x48D8D523, 0xA776F151, 0x5894D3B1, 0x087AC8CF} } ,
19296 { {0x98DE9D72, 0xEE5F2406, 0xD6DFE05F, 0x6945083C, 0x5C1D7AD8, 0x95BBD315, 0x3380804B, 0x0C37D10E},
19297 {0x99A6DFC7, 0xF225FB5F, 0xCF398204, 0x39F029B8, 0xD1522C0F, 0x20A396B1, 0x4AACEA56, 0x11FC594E} } } } ;
19298 static const fp12_t var_b = { { { {0x5D6CB2EB, 0x6565410E, 0x77F32FB4, 0xD3A7AEED, 0x4A5D3E5F, 0x4C3D39F8, 0x7C01815B, 0x1F5D377A},
19299 {0xD44473DD, 0xFF0B8796, 0x0D2EB55A, 0x8F518CC3, 0xFC375EED, 0x93E704DC, 0xE0F07115, 0x03F49DCD} } ,
19300 { {0x43D746B3, 0x59FAC683, 0x0538EE5E, 0x5FE076D3, 0x30B322D5, 0xB588184F, 0x3C6B81AA, 0x1509E411},
19301 {0xC0D3CC05, 0x4D4B7997, 0x847F4FA9, 0xC6A7A2F8, 0xC482F8AA, 0xB99CCB87, 0xCFB2B33D, 0x033AFC76} } } ,
19302 { { {0xB7B9064F, 0x95227D45, 0xE6541908, 0xDD7025D7, 0xAB9C654D, 0xEE2D181B, 0x88E9968C, 0x09ADE713},
19303 {0x68EE1652, 0x09083C88, 0x397DF6ED, 0xB419DDDD, 0x68E79A2A, 0x74CCF55B, 0x0C893557, 0x0A14D727} } ,
19304 { {0x6623E14F, 0x85E2A8A4, 0xBF94EFC9, 0x8F754DB5, 0x9738C350, 0x2803501B, 0x7495FB85, 0x2183D9F7},
19305 {0x190DC038, 0xE16EFC07, 0x7041C8EE, 0x5566FC45, 0x65A3A2AF, 0x8B692EA7, 0x0CA718ED, 0x0BE2E7F6} } } ,
19306 { { {0x3D69CB3D, 0x8A545103, 0x75355A0C, 0x818C2181, 0x131761D7, 0xA82E0389, 0x16C92803, 0x1BFFE9E4},
19307 {0x61556876, 0x1EC681CB, 0xAE015FE5, 0x82ACADDE, 0x764D9AC0, 0x4824813C, 0x45212EF3, 0x15DFCEC8} } ,
19308 { {0x69F51D78, 0x85B1E8CD, 0x2DB8D159, 0x9C341814, 0x7A090D09, 0x4B0BEE80, 0xC26D252A, 0x08BF7FF7},
19309 {0x0D6AE89F, 0xE380E81C, 0xB95ED2D4, 0xDC9C66DF, 0x9AA5832D, 0x1E8C0201, 0x6B48BF5A, 0x0A6108D3} } } } ;
19310 static const fp12_t var_expected = { { { {0xEC346939, 0x8E655258, 0xDFC962C0, 0x4B199ED8, 0xFA54EA7C, 0x17A44038, 0x5FC2E484, 0x18B7DA23},
19311 {0x9D521BC9, 0x57F2B6F5, 0xA821E80C, 0x3E3AF176, 0x7118B5E1, 0xB5757D78, 0x77DAB247, 0x005E57A8} } ,
19312 { {0xC8EACEC8, 0xBD5B2B0C, 0x77FFE98B, 0x0B950A46, 0x9E014AB1, 0x090C4E63, 0x11FEAFF7, 0x1AFE8232},
19313 {0x816384A5, 0xFDE37606, 0xE0AB9436, 0xC93DF40C, 0x8F621155, 0xC133A9FE, 0x3C0ED715, 0x1750462F} } } ,
19314 { { {0xD670FC9E, 0x23298BD9, 0x70ED7C04, 0x642E64F4, 0x52BF83B9, 0x8A2E159A, 0x454CC62A, 0x0A2E2EE1},
19315 {0xD85A1630, 0xAA6A14DE, 0xBA50B28E, 0x1DFB1C7B, 0xFE0D7DC9, 0xF9CED7B1, 0xC19D6A94, 0x0667D60F} } ,
19316 { {0x9836EB9C, 0x3BB6E95D, 0x4D695478, 0x1D6BF109, 0x9BF6E2B8, 0x6010CCD3, 0xBCC1B666, 0x0EAB1AD8},
19317 {0x2334BB32, 0xAF3B72E2, 0xB703B11F, 0x43CA753E, 0x3E127B1C, 0x974648C5, 0x89A6586E, 0x0F3745C6} } } ,
19318 { { {0x89CE980D, 0x9F80F258, 0x8A72E43D, 0x269E5355, 0xF63021A7, 0x648972FA, 0x359381C0, 0x220807A1},
19319 {0xDF15E043, 0x5EA7B943, 0x55CE1059, 0x93B250F5, 0xD28B3A6B, 0x1986BD94, 0x5373A4C0, 0x17BE5E89} } ,
19320 { {0x2EE97FFA, 0x68AD3B39, 0xA9270F06, 0xCD10F028, 0xE2146DCE, 0x4AAFE494, 0x71135B21, 0x03785116},
19321 {0x8C3BF728, 0x0EA51343, 0x15DAAF30, 0x5D53C2D9, 0x36ACA8E1, 0x021794B0, 0xDF642AFC, 0x079B507A} } } } ;
19323 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2609 a000");
19324 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2610 a001");
19325 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2611 a010");
19326 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2612 a011");
19327 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2613 a100");
19328 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2614 a101");
19329 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2615 a110");
19330 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2616 a111");
19331 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2617 a200");
19332 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2618 a201");
19333 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2619 a210");
19334 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2620 a211");
19337 static const fp12_t var_a = { { { {0x581784BF, 0x40685971, 0x4C31B53C, 0xADF151E2, 0x6AF2CFDF, 0x310875A5, 0x8F4A08A9, 0x0B25F389},
19338 {0x293B6B0C, 0x734B4100, 0x96B4A81C, 0xEFBB9271, 0x0E65F471, 0x946226E5, 0xF3EF0991, 0x04E5D7EE} } ,
19339 { {0xB5D37F04, 0xF127772E, 0x7798154D, 0xF419B5EC, 0xC095D4D5, 0xB96F28D8, 0x9056AE3E, 0x18806434},
19340 {0x03D69B7D, 0x221B14FE, 0x896AB7C7, 0x1948F1AA, 0x4D0E0751, 0x2A091B98, 0x92C67059, 0x1E4472E6} } } ,
19341 { { {0x6EB4816F, 0x2FF0D3EB, 0x9318F4F0, 0x80D1E5C9, 0x9868A25B, 0xF9605A0F, 0xDB0AA5BF, 0x1CD139D0},
19342 {0x2735E755, 0x7E41C7D4, 0x1743072C, 0x19A74B33, 0x16BD1FDF, 0xCBB01ED4, 0xFE9E5FD7, 0x1DF98655} } ,
19343 { {0xB198946E, 0x3626F966, 0xC55FFAD4, 0xDC3AE8FE, 0x5161ACDF, 0x159D5A1A, 0x84A9483A, 0x03440C84},
19344 {0x6310D24A, 0x2D79EA91, 0x06AC92DC, 0xA0BD5EEE, 0x66F68411, 0x7AF81504, 0xAAC5E392, 0x035D8E5F} } } ,
19345 { { {0xEA849D47, 0xE4A00466, 0x72EF9753, 0x8F119C20, 0x86C73337, 0xCF327DEB, 0x219A169F, 0x0C55FDA5},
19346 {0xC4AC62AF, 0x3CF765D4, 0x5A0E1719, 0xEE1F1343, 0x7878CCD2, 0xA4AB60A5, 0xCD4CF899, 0x1615DF73} } ,
19347 { {0xC5722F9A, 0x5BB6A9CA, 0x3F6CA791, 0x1DB4EE76, 0x16047FDA, 0xE4BE4E33, 0x47B13392, 0x105C4726},
19348 {0x96AC9E6A, 0x227B8D38, 0x581EBB8C, 0xF345F6D8, 0xCB0A1C0E, 0x3C8E05A2, 0xDB5E8635, 0x22097FE4} } } } ;
19349 static const fp12_t var_b = { { { {0x3121F348, 0xD75296A7, 0x11EE7841, 0xF7EBD61A, 0x1C71644E, 0x23EC86E5, 0x4A8226C9, 0x1DEE25D8},
19350 {0x67DF1C8D, 0x7F5E172F, 0x862BC385, 0x2A6EF3E4, 0x1C4E3EBA, 0xD411C207, 0x098C1927, 0x0F724BCB} } ,
19351 { {0x5AE4A226, 0x05023CB9, 0x0C5056D8, 0x01AF10C8, 0xF6292912, 0x99AB0466, 0x81AEC5F6, 0x1DED9EF5},
19352 {0x0312AAEB, 0xC5A5F7BF, 0xA97028DB, 0xF34E585E, 0x668C8B05, 0x5299A7E5, 0x8D1F48A6, 0x0A8D78EC} } } ,
19353 { { {0xAD759A90, 0x0503FDE2, 0x978079F6, 0xA764A6DB, 0x40DBB300, 0xABE65E8B, 0xBF395AC2, 0x087BC65B},
19354 {0x78DE07D9, 0x200D1FFA, 0xC5633096, 0x247316B5, 0xE888A6F9, 0x9D1ADF94, 0x5B65CFD9, 0x0CD2F831} } ,
19355 { {0xD7C3FAA1, 0x5C57BD91, 0x56D17BF9, 0xE9253138, 0xD99213CD, 0x2F7F4E30, 0x99D3F5E1, 0x22901F9F},
19356 {0x127CB09C, 0xAF1E1E11, 0x1F06E804, 0x0FD54DE2, 0x1F500D94, 0x5EC0AEDC, 0x27066453, 0x059CC6CD} } } ,
19357 { { {0xC5C261D9, 0x75D3D724, 0x2D473045, 0x65A5E608, 0xDC8F5A7C, 0xF2BE86EA, 0x262EFD6C, 0x14B9FEF1},
19358 {0x5F8FC2FD, 0x4B3DAC69, 0x3D34A78D, 0x395E16EC, 0xC6077EA1, 0xFC1A3116, 0x28513694, 0x08D2EA7C} } ,
19359 { {0xA43B3617, 0x962B77BE, 0x43EAF63C, 0xC62C649C, 0xA712CD94, 0x30498AC2, 0xF948E6A1, 0x02E8BD5E},
19360 {0x2CFAF105, 0x9BB41216, 0xE4F5782D, 0x50B49635, 0xDCBE2FD2, 0x74357055, 0xD38A2A02, 0x136D3EBA} } } } ;
19361 static const fp12_t var_expected = { { { {0x26F5918A, 0x1015C2CA, 0x3A433D0E, 0x17267BC8, 0x4E816B99, 0xC7503C40, 0x84C7E1E1, 0x125B3233},
19362 {0xC15C4E92, 0x9AED29D0, 0x1088E4AA, 0x266D9E8D, 0xF217B5C0, 0x7A84B25D, 0x2A62F06B, 0x1A96F0A6} } ,
19363 { {0x5AEEDCF1, 0x93253A75, 0x6B47BE89, 0x538BA524, 0xCA6CABCC, 0xD9F871F1, 0x4EA7E849, 0x1FB629C1},
19364 {0x00C3F092, 0x5C751D3F, 0xDFFA8EEB, 0x25FA994B, 0xE6817C4B, 0xD76F73B2, 0x05A727B2, 0x13B6F9FA} } } ,
19365 { { {0xC13EE6DF, 0x2AECD608, 0xFB987AFA, 0xD96D3EED, 0x578CEF5A, 0x4D79FB84, 0x1BD14AFD, 0x14557375},
19366 {0xAE57DF7C, 0x5E34A7D9, 0x51DFD696, 0xF534347D, 0x2E3478E5, 0x2E953F3F, 0xA3388FFE, 0x11268E24} } ,
19367 { {0xD9D499E0, 0x80CF3BD4, 0x6E8E7EEE, 0x5436B7C6, 0x77CF991A, 0xA0525969, 0x2AD5525A, 0x05D75167},
19368 {0x509421C1, 0x255BCC80, 0xE7A5AAEB, 0xF209110B, 0x47A67685, 0xD66BB3A8, 0xC3BF7F40, 0x22E42C14} } } ,
19369 { { {0x24C23B81, 0x15CC2D42, 0x45A86722, 0x8A8CB618, 0xAA37D8C3, 0x96A84480, 0x3B6B1934, 0x1CBF6336},
19370 {0x651C9FB2, 0xF1B9B96B, 0x1CD96F8B, 0xB4C0FC57, 0xB2714E31, 0xA8912F8E, 0xA4FBC204, 0x0D42F4F7} } ,
19371 { {0x2136F983, 0xC58B320C, 0xFB81B154, 0x578889D9, 0x6EF1B245, 0xB474C370, 0x4E684CF1, 0x0D7389C7},
19372 {0x69B1AD65, 0x86C77B22, 0x7329435E, 0xA29160A2, 0xEE4BEC3C, 0xC858954C, 0x07D45C32, 0x0E9C412A} } } } ;
19374 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2621 a000");
19375 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2622 a001");
19376 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2623 a010");
19377 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2624 a011");
19378 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2625 a100");
19379 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2626 a101");
19380 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2627 a110");
19381 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2628 a111");
19382 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2629 a200");
19383 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2630 a201");
19384 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2631 a210");
19385 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2632 a211");
19388 static const fp12_t var_a = { { { {0xE19C87D9, 0x3B08531C, 0xFB1589EE, 0xD5F646D0, 0xD72C641B, 0x4D605D70, 0x67C22AC1, 0x1A3CE5E9},
19389 {0x85AB9295, 0xB8CC7B83, 0x17CE7D75, 0x714A5234, 0x9E3DDF96, 0x05370C30, 0x9B3EC5AD, 0x00CB33BE} } ,
19390 { {0x2ACA817C, 0x2A13D159, 0xFCC82FD2, 0xBB0C7CC6, 0x4991A406, 0x0952EDF5, 0x87296E67, 0x005EDB42},
19391 {0xB86FB64E, 0x9CD62559, 0x1E0B4153, 0x57A5C663, 0x87D5AF6C, 0xEA5C52AE, 0x7792CB75, 0x0BD81652} } } ,
19392 { { {0x6AEC7451, 0x100A8ABC, 0x29F577DF, 0xFE4661DD, 0x1A64C8ED, 0xD3C9911F, 0xAC4BD864, 0x17010FC1},
19393 {0x51C05EA2, 0xEA3E7ACA, 0x7B160275, 0x80454190, 0x5631E0CB, 0xB4088A7A, 0x9B91971B, 0x1EEF475D} } ,
19394 { {0xD04171D2, 0x62CB32EC, 0xA8CF50C4, 0x741A9F23, 0xA60A433C, 0xE93E4CCF, 0x2C85A3D9, 0x1D4A8828},
19395 {0x1E94C28D, 0xA39808DD, 0xF6C4F0DA, 0x36920AD2, 0x072553AC, 0xA7CFD154, 0x3C7C20CD, 0x15B88263} } } ,
19396 { { {0xC7ED76AA, 0xD167E936, 0xDE20A33D, 0x34D4CCC0, 0x8CFB8928, 0xC5BA5606, 0x9B13DF97, 0x11389DBC},
19397 {0x2B2FA8CD, 0xBDB76563, 0x91A66352, 0x0348BFD1, 0xD87DEC22, 0x90A644F8, 0x0F1EB745, 0x14E0DBC9} } ,
19398 { {0xFEC8399F, 0xAB32E6C2, 0x71946172, 0x3508D70B, 0xA78E454F, 0x6CB59094, 0x906065E9, 0x0D06AB69},
19399 {0xC6F2D1CA, 0xC4B3EEAD, 0x9356F2F5, 0x903E022F, 0x45D2C118, 0x05BC0F5E, 0x0A1876D5, 0x096D5841} } } } ;
19400 static const fp12_t var_b = { { { {0x603178F8, 0xBDD090CE, 0x440903F3, 0x90E82B48, 0x15CDC6DE, 0xC2533BFE, 0x1E570692, 0x239911E3},
19401 {0x7C2D8518, 0x92017032, 0x81CB9CBF, 0x5F9C6422, 0x0B521F65, 0x69931789, 0x603166B5, 0x05677546} } ,
19402 { {0x1CDAEB94, 0x0C4AF95F, 0x7DE17B77, 0xC691A442, 0x3241D756, 0x1C1B6356, 0x5AB2E5D7, 0x18C191F2},
19403 {0x19EB156C, 0x5F81B0AB, 0x1FA7CDC4, 0xCBB493B3, 0x28965FFB, 0xD2192D60, 0x48AA563E, 0x0A621010} } } ,
19404 { { {0x9E9BBEC7, 0x611AB504, 0x81529B6E, 0xA5893F47, 0x9DC6DB63, 0x98B42EB8, 0x5B4A0DCF, 0x0996AFAF},
19405 {0xABC49AD6, 0xEB8BE071, 0x7286611E, 0x4E5AD31C, 0xD8709D7F, 0x3A95E532, 0x76896987, 0x19012E04} } ,
19406 { {0x9343ACE0, 0x993B2083, 0xF5B4F061, 0xCB8E9128, 0x325A4B98, 0x511ACB97, 0x746633B7, 0x167FAAD3},
19407 {0x7EB0A4E3, 0xC003ED0C, 0xC05196DF, 0x95C6B434, 0x98BD2A22, 0x377981DE, 0xE0EC52FB, 0x199A0D48} } } ,
19408 { { {0xE864A0DA, 0xC53D029E, 0xBED4155D, 0x3AF7FE51, 0x0DEA79E3, 0xCFD51F8F, 0xFB0FB591, 0x0B82AE65},
19409 {0x20D2161E, 0xB967B641, 0x8E8CFED3, 0x22C20EF7, 0x2631EFD3, 0x2EB9BCD7, 0xB95852F8, 0x21C69BC2} } ,
19410 { {0xCA27F2F9, 0x2D50974B, 0x01417343, 0x9B4EC01D, 0x8C25B7CD, 0x4F536EEF, 0x845CC421, 0x0DA1FB9F},
19411 {0x5E4A01C7, 0x69DE2B1B, 0x9FA55580, 0xED5F4486, 0x7D298CBA, 0x78C73EE7, 0xF80AD10D, 0x0DC908C1} } } } ;
19412 static const fp12_t var_expected = { { { {0x816B0EF4, 0x2437C24E, 0xB70C860E, 0xA62F1B88, 0xC15E9D45, 0x45416EF2, 0x896B2430, 0x1BC73888},
19413 {0x097E0D90, 0xCDCB0B51, 0x9602E0C9, 0x72CEEE11, 0x92EBC039, 0x55D84227, 0x7B0D5EF9, 0x208722FA} } ,
19414 { {0x0DEF95FB, 0xC4C8D7FA, 0x7EE6B46E, 0x559BD884, 0x174FCCB8, 0xA76BD81F, 0x6C768891, 0x0CC0ADD2},
19415 {0x9E84A0E2, 0x3D5474AE, 0xFE63738F, 0x8BF132AF, 0x5F3F4F70, 0x1843254E, 0x2EE87537, 0x01760642} } } ,
19416 { { {0xCC50B58A, 0xAEEFD5B7, 0xA8A2DC70, 0x58BD2295, 0x7C9DED8A, 0x3B156266, 0x5101CA95, 0x0D6A6012},
19417 {0xA5FBC3CC, 0xFEB29A58, 0x088FA156, 0x31EA6E74, 0x7DC1434C, 0x7972A547, 0x25082D94, 0x05EE1959} } ,
19418 { {0x3CFDC4F2, 0xC9901269, 0xB31A6062, 0xA88C0DFA, 0x73AFF7A3, 0x98238138, 0xB81F7022, 0x06CADD54},
19419 {0x9FE41DBD, 0x8A941BD0, 0x36735A0E, 0x01EC569E, 0x6E682992, 0x2A8A9CF5, 0x9B8FCDD4, 0x2141D99C} } } ,
19420 { { {0xDF88D5D0, 0x0C2AE697, 0x1F4C8DE0, 0xF9DCCE6F, 0x7F110F44, 0xF5E53677, 0xA0042A05, 0x05B5EF56},
19421 {0x0A5D92C2, 0xAB4FAF22, 0x03196492, 0x41A7B0DA, 0xB24BFC57, 0x1C20D5A1, 0x95C6644F, 0x183DA488} } ,
19422 { {0x34A046B9, 0x24E24F77, 0x7052EE43, 0xFADB16EE, 0x1B688D89, 0xD7966F25, 0x4C03A1C9, 0x2488144C},
19423 {0x68A8D016, 0x01D5C392, 0xF3B19D89, 0x03FFBDA8, 0xC8A93466, 0x47291DF6, 0x520DA5C9, 0x20C7B401} } } } ;
19425 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2633 a000");
19426 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2634 a001");
19427 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2635 a010");
19428 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2636 a011");
19429 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2637 a100");
19430 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2638 a101");
19431 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2639 a110");
19432 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2640 a111");
19433 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2641 a200");
19434 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2642 a201");
19435 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2643 a210");
19436 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2644 a211");
19439 static const fp12_t var_a = { { { {0xA6193E78, 0x1358FD00, 0x239C773E, 0xACCBA0E7, 0x4C4DC1BE, 0x64BC9724, 0x65C3CAF1, 0x20B59106},
19440 {0x4407AA61, 0xDA4A4AB0, 0xFB46523B, 0x32D5C63D, 0xDD7D5A26, 0x88523C65, 0xD145C88F, 0x249B305D} } ,
19441 { {0x2AFDBB22, 0x08F804F3, 0xC9EB41F0, 0x4C288295, 0x2A038C5A, 0xB4BF93C0, 0x7368FF13, 0x1A0D22F0},
19442 {0x1F948B0C, 0xDC59FFA7, 0xE4A57026, 0x8761DBAE, 0xC04E3BA3, 0x9303F35F, 0x79A4CCF9, 0x0E96B882} } } ,
19443 { { {0x419A4121, 0xD9AA666D, 0xD8E8C5AB, 0x9299B08E, 0x421A5BDE, 0x24346CC5, 0xC37131E4, 0x096E12F8},
19444 {0x7EE9817D, 0x0690F0BB, 0xE1D2A702, 0x85C9AEA0, 0xE5D53CE9, 0x5A451053, 0xE56AD3FF, 0x2033867D} } ,
19445 { {0x198EC999, 0x5EC65BA1, 0x744F5573, 0xD250E65A, 0xF36630EA, 0x0893F0EC, 0xA951C672, 0x1A848C5F},
19446 {0x2C3DFB64, 0x436026BB, 0xB709185F, 0xC2DE9D6C, 0x483613E5, 0x8010F470, 0xCBD0AA4F, 0x1661D193} } } ,
19447 { { {0x201B9469, 0x8D999B8C, 0x042FB0D2, 0x08442562, 0xD88E9386, 0x80752797, 0xFB1BEC22, 0x04D1FC72},
19448 {0x36D241FF, 0x66359BCD, 0x6A01AC1E, 0x75F2CF4F, 0x274C655D, 0xA167901E, 0x5E572654, 0x0F10572D} } ,
19449 { {0x01F9DA1D, 0xEA70BCD9, 0x2C3A80CB, 0x33D34B86, 0xCFD89EE2, 0x5F3CA29A, 0x4ED3FF87, 0x0C429E4A},
19450 {0xEAC8DEC4, 0xB083AEF9, 0x403CAE1B, 0x42B30B8B, 0xFE7CED15, 0x9A71CFA1, 0xD516FFD8, 0x0021B5C2} } } } ;
19451 static const fp12_t var_b = { { { {0xAB24190A, 0x7BAEF8DA, 0xD0163F84, 0xBDC26D8F, 0xF5FC7356, 0xA40B0393, 0xF6B82755, 0x16F674DB},
19452 {0xD4EE0115, 0x7EDB7B2C, 0xBD5752AA, 0xBC7FD569, 0x8A876E1F, 0x5B720A26, 0x250D68AC, 0x19830CAE} } ,
19453 { {0x4AB0E67F, 0x7CD35700, 0x17AEA309, 0x2F79F3A3, 0xA7F4F5AA, 0x70D30880, 0x099D21D9, 0x0FEFE426},
19454 {0xC38E116B, 0xBCF71546, 0xA65C31BA, 0x7808D289, 0xC9537BDF, 0x83198A97, 0x01735656, 0x14F4BE63} } } ,
19455 { { {0x4B936834, 0xB6953B6A, 0x647C73A7, 0x57838145, 0x81CADC52, 0xE6C729C1, 0x9C314528, 0x181918A3},
19456 {0xC1403F83, 0xCFCAA5EA, 0x010FBFCE, 0x54A967FB, 0xF6C21887, 0xC7D0A770, 0x5F047E63, 0x1671461A} } ,
19457 { {0x5A7A54B0, 0x48EC5079, 0x5EE1D334, 0xBA04958B, 0x626A1C5F, 0xC2341E3B, 0x4454BAA5, 0x051E5296},
19458 {0x1EBA3656, 0x66936D19, 0x123EAAA0, 0x4E89A414, 0x917F2464, 0xEE8A6503, 0xB5560144, 0x0E3169AE} } } ,
19459 { { {0x669787F7, 0x8821E57C, 0xE86FFF02, 0x8384F894, 0x65719F1E, 0x74FDC7C6, 0xD564E37C, 0x08D63A48},
19460 {0x659DDEC8, 0xA6EAAFCA, 0x5F143656, 0xEE9F730F, 0x54CDA361, 0x13616A5A, 0xF726D63B, 0x0498FD4F} } ,
19461 { {0x9B7137C4, 0x1FE09EE0, 0x293E832D, 0x9245EC68, 0xE8FD55CD, 0x0D40B3A8, 0xA58FFB0D, 0x0BFCD1A3},
19462 {0x634A32FF, 0xEBD37A15, 0xAC678C54, 0xDC9004CC, 0x3E59D79D, 0x7C019E33, 0xDAA6DD4A, 0x05708E64} } } } ;
19463 static const fp12_t var_expected = { { { {0xFAF5256E, 0x97AA0425, 0x538637B9, 0xEF093357, 0x56514E67, 0xC0B19390, 0x6F0BA39B, 0x09BF1C2A},
19464 {0x6F19A94C, 0x5B6ECF83, 0x3DEEFF91, 0x7655F0D4, 0x52F5EC06, 0x2CE0323F, 0xAC385FE3, 0x0B1823AF} } ,
19465 { {0xE04CD4A3, 0x8C24ADF2, 0xB23C9EE6, 0x1CAE8EF2, 0x820E96B0, 0x43EC8B3F, 0x69CBDD3A, 0x0A1D3ECA},
19466 {0x5C0679B4, 0xC662EA60, 0x3E493E7F, 0x707A0925, 0xF6FABFCC, 0xCA1EB647, 0xB83176A4, 0x1EC55EA1} } } ,
19467 { { {0xF606D900, 0xCA152B02, 0x746C5217, 0x9C372F49, 0xC04F7F94, 0xF7A19083, 0x673FECBC, 0x16785ED7},
19468 {0xBDA941FA, 0x36C64AD0, 0xE0C2E733, 0x312046A5, 0xEF132462, 0x927468E2, 0x8666559B, 0x09C24063} } ,
19469 { {0xBF1474E9, 0x15DA0B27, 0x156D823F, 0x184C50CF, 0x90FC148B, 0x465FD2B1, 0x64FD0BCC, 0x156639C9},
19470 {0x0D83C50E, 0xDCCCB9A2, 0xA4CA6DBE, 0x7454F958, 0xB6B6EF81, 0x91868F6C, 0x167AA90A, 0x083067E5} } } ,
19471 { { {0xB9840C85, 0xAC77B60F, 0x1BBFB1E3, 0xE5E02CCD, 0x731CF46F, 0xC5ABAD51, 0x65B708A7, 0x211F26AC},
19472 {0xD1346337, 0xBF4AEC02, 0x0AED75C7, 0x87535C40, 0xD27EC1FB, 0x8E0625C3, 0x67305019, 0x0A7759DD} } ,
19473 { {0x6688A259, 0xCA901DF8, 0x02FBFD9E, 0xA18D5F1E, 0xE6DB4914, 0x51FBEEF1, 0xA944047A, 0x0045CCA6},
19474 {0x877EABD8, 0x6BB034E4, 0x93D521DA, 0xC74406BE, 0xC023157F, 0xD8A47EEE, 0x3A70228F, 0x1FD48BE0} } } } ;
19476 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2645 a000");
19477 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2646 a001");
19478 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2647 a010");
19479 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2648 a011");
19480 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2649 a100");
19481 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2650 a101");
19482 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2651 a110");
19483 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2652 a111");
19484 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2653 a200");
19485 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2654 a201");
19486 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2655 a210");
19487 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2656 a211");
19490 static const fp12_t var_a = { { { {0x67B5A6CA, 0xC1469B7A, 0x8435E154, 0xFF991AC1, 0x887F98A3, 0x0643F2B1, 0x4822E996, 0x0B418AED},
19491 {0x26AE2667, 0x61CB569E, 0xFF08FB60, 0xEECD8550, 0x8B092907, 0x0C2D57B2, 0x54D1B003, 0x0AA66D4F} } ,
19492 { {0x75048851, 0x4BF4EEDA, 0x9F62AC57, 0x663F4F75, 0x2187DE88, 0x7A64E84F, 0x15D94333, 0x24CF3820},
19493 {0xFB12A8BE, 0xB8D8D94F, 0x9C142AA7, 0x1FDF1ADF, 0xB9CDEC56, 0x870F32D2, 0xD8BA2052, 0x05C67BC5} } } ,
19494 { { {0xB3C5D5F9, 0xAD1D8BBD, 0x6045189E, 0x78C6F081, 0xD296C953, 0xC2B3D29C, 0xDF308F78, 0x1D7E4BB7},
19495 {0x6EF0B08E, 0xA69D1E9E, 0x094244DF, 0xA34617BB, 0x836EF522, 0x21A84F35, 0x1DD96AEE, 0x02BCA4E2} } ,
19496 { {0x4EF55D6E, 0x399586FF, 0xEA20FBEF, 0x78513DE2, 0xF6F18395, 0xA91A3D50, 0x3BB2A818, 0x01DD23BD},
19497 {0x4DBB6B01, 0xF7651FD6, 0x0A341998, 0x76A085F6, 0xE95DFD57, 0x09F11E4B, 0x1760217B, 0x082A50C0} } } ,
19498 { { {0xB4F4C27A, 0x5FE3CAB8, 0xA34B49EF, 0x958D54B7, 0x2C6D736E, 0x06AF7C8C, 0x80496A2D, 0x19DAFCA3},
19499 {0xA4B56D3D, 0x4537F539, 0xA4C82494, 0xC899E3E0, 0x2587E3C5, 0x0A3464FE, 0xFB84C79E, 0x0C16FF8C} } ,
19500 { {0x905A2A81, 0x9751255B, 0x307FFB8C, 0xF300F374, 0x4F3E4017, 0xDCC1995F, 0x018F803F, 0x1461DE13},
19501 {0xC1BE03F0, 0xD1E3FAEA, 0x1D699E20, 0x3E012EF0, 0xB61EBC0A, 0x0146D45A, 0xFED721E2, 0x0556ABB9} } } } ;
19502 static const fp12_t var_b = { { { {0xD1C26EE5, 0x21F9BBF7, 0x76286EAB, 0x02FA080D, 0x7CCC2FA1, 0xFB1D161E, 0x141B7526, 0x01029514},
19503 {0x3023996C, 0xE214D4E2, 0xF9596D7E, 0xAEE1333D, 0x5872B593, 0x390CA6D8, 0x968D3AE6, 0x0360CC53} } ,
19504 { {0xA39EF172, 0x63DAE60B, 0x9AB7392A, 0xBF9AFC52, 0x1280D3BF, 0xCC0C1EC2, 0xCDD5EC39, 0x0F26B021},
19505 {0xBF6C235B, 0xB25E587C, 0xFE0A177B, 0x72D019EC, 0x08B9D002, 0xC7CDBB45, 0xF7D5190B, 0x09AD5C8D} } } ,
19506 { { {0x7204F12A, 0xFCE46C76, 0x01F075AC, 0x88F9C50F, 0xAD920B38, 0x28C12382, 0x43461AB7, 0x1C365FFA},
19507 {0x7B32B63D, 0x6D50624D, 0x3167A06D, 0x6282381A, 0x04E36EF5, 0x90399C77, 0x1623323E, 0x104E8ABA} } ,
19508 { {0xED7F84CD, 0xFE092576, 0x5038764E, 0x486BC27F, 0x29DF5CFF, 0x42BC1DDD, 0x09E263C8, 0x17A8EBE8},
19509 {0xB0E81BAC, 0x32848252, 0xD524636E, 0xCE5B342A, 0xC869B10C, 0x41811EB9, 0xA88280E7, 0x07785D06} } } ,
19510 { { {0x00E22436, 0xCA4EFBD2, 0x6CEAF891, 0xC18F4F33, 0xA4B1A0AD, 0x1702F735, 0xF4603E60, 0x1A718A72},
19511 {0xECB0880F, 0xDAAE96AD, 0x7215D695, 0x37EB5787, 0x1220AF91, 0x3D7131A4, 0xE2E7608D, 0x03295320} } ,
19512 { {0xD810BF16, 0x7AD95992, 0x7AA3C9BD, 0x2F02258B, 0x7B97F9C8, 0x9D0F7146, 0x9B053B0B, 0x07642B35},
19513 {0xFB296074, 0x2FAC4478, 0xCA754FB6, 0xA1913139, 0xDE017D49, 0xB1774158, 0xBA7B1653, 0x07A637B1} } } } ;
19514 static const fp12_t var_expected = { { { {0x95F337E5, 0x9F4CDF82, 0x0E0D72A9, 0xFC9F12B4, 0x0BB36902, 0x0B26DC93, 0x3407746F, 0x0A3EF5D9},
19515 {0xF68A8CFB, 0x7FB681BB, 0x05AF8DE1, 0x3FEC5213, 0x32967374, 0xD320B0DA, 0xBE44751C, 0x0745A0FB} } ,
19516 { {0xD16596DF, 0xE81A08CE, 0x04AB732C, 0xA6A45323, 0x0F070AC8, 0xAE58C98D, 0x480356F9, 0x15A887FE},
19517 {0x3BA68576, 0xAD7A80D3, 0x9E0A133F, 0x0E3000F2, 0xB1141C5C, 0x7975C50D, 0x20E50748, 0x213C83BA} } } ,
19518 { { {0x41C0E4CF, 0xB0391F47, 0x5E54A2F1, 0xEFCD2B72, 0x2504BE1A, 0x99F2AF1A, 0x9BEA74C1, 0x0147EBBD},
19519 {0xF3BDFA64, 0xE04CBC50, 0xD7DAA485, 0xA1E4DFA0, 0x7E8B8635, 0x4BA3003E, 0x47B638B1, 0x17917EAA} } ,
19520 { {0x6175D8B4, 0xE28C6188, 0x99E885B3, 0x91067B63, 0xCD12269E, 0x20926CF3, 0x71D04452, 0x0F579C57},
19521 {0x9CD34F55, 0xC4E09D83, 0x350FB62A, 0xA84551CB, 0x20F44C4A, 0xC86FFF92, 0x6EDDA093, 0x00B1F3B9} } } ,
19522 { { {0xB4129E57, 0x3C94CEE6, 0x36605171, 0x351F0584, 0x87BBD2C9, 0xA9E0D2D6, 0xCBE92BCE, 0x248CD6B2},
19523 {0xB804E52E, 0x6A895E8B, 0x32B24DFE, 0x90AE8C59, 0x13673434, 0xCCC3335A, 0x189D6710, 0x08EDAC6C} } ,
19524 { {0xB8496B6B, 0x1C77CBC8, 0xB5DC31CF, 0xC3FECDE8, 0xD3A6464F, 0x3FB22818, 0x668A4534, 0x0CFDB2DD},
19525 {0xC694A38F, 0x4937B671, 0x52F44E7E, 0xFD90FDB6, 0xD81D3EC8, 0x0A03E081, 0x845C0B90, 0x22D3D88A} } } } ;
19527 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2657 a000");
19528 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2658 a001");
19529 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2659 a010");
19530 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2660 a011");
19531 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2661 a100");
19532 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2662 a101");
19533 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2663 a110");
19534 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2664 a111");
19535 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2665 a200");
19536 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2666 a201");
19537 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2667 a210");
19538 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2668 a211");
19541 static const fp12_t var_a = { { { {0xE2D76D69, 0x6803F6D7, 0xDE93DD38, 0x063B8149, 0x4B2F3015, 0x08E5448C, 0xD1F449B3, 0x01267C18},
19542 {0xEB3F0F67, 0x3B95596B, 0xE43DAC7F, 0x8F557EE0, 0x69040BBA, 0x526165C4, 0xA4F1076B, 0x091F96DF} } ,
19543 { {0xCBB7B7FB, 0xCA6701D4, 0x3FCFD427, 0x839B06F1, 0xF1F8547B, 0xBCFD9864, 0xAB813057, 0x02551AAF},
19544 {0x09FCF8FF, 0xE5CC0C5C, 0x0571FF6E, 0x05EA4FF6, 0x30E6D3E5, 0xB5A8BC6A, 0x15D1AF00, 0x232E2865} } } ,
19545 { { {0x80B66C62, 0xDDF3BEDF, 0x819C0388, 0x1A7669EA, 0x8925BC55, 0x86D7C205, 0x807F338E, 0x1860FF25},
19546 {0xE1547D83, 0xB90D27D0, 0xB16D2679, 0xC5407566, 0xF1FE6672, 0xCA2BD4D6, 0xC2CB40FE, 0x1D1D614B} } ,
19547 { {0x2F2F0888, 0x16F87B29, 0xC8C5E00B, 0xA307DFA9, 0x71674BF7, 0xA2512B12, 0xA38FF5D5, 0x02AA751E},
19548 {0x41FE04A3, 0x76800D2A, 0xAE3D57AC, 0x370232DE, 0xA80FB780, 0x32F95839, 0xA008FED2, 0x193AF512} } } ,
19549 { { {0x43A2BA4E, 0x0535ED90, 0x7BE8ED1C, 0x9BCF514D, 0x46C22136, 0x16EEC161, 0xEA7289DF, 0x0FE79C40},
19550 {0x353935F6, 0x69C6B02D, 0xFFE5A18A, 0x7FF62E68, 0x921251F8, 0x0191C8D1, 0x25754771, 0x18A94E9A} } ,
19551 { {0x6B85F870, 0xAAF1EF94, 0x3EC5120A, 0x3A69516C, 0xE55A8446, 0x749A71CB, 0x6A59B80E, 0x0CC6DC65},
19552 {0x0BA427AB, 0x1F0A60DF, 0xECB6649D, 0x4A59B22E, 0x2D0B5804, 0xCB27B419, 0x45185A87, 0x054882BF} } } } ;
19553 static const fp12_t var_b = { { { {0x9213A32B, 0x6302AF73, 0xF58F6C2E, 0x4275D512, 0x6B473389, 0xB70AFF06, 0xF7337C6C, 0x121C4875},
19554 {0x4F0AC25A, 0xA91180FD, 0xF89BBAA8, 0x24061D7D, 0x35D65ABA, 0xC51E91EC, 0x3560C490, 0x1D542AF6} } ,
19555 { {0xE71CC4D4, 0xD0E02BDE, 0xC63F91C3, 0xFA66B71F, 0x355F0330, 0x6143DEEB, 0xE700AE39, 0x2050CEA7},
19556 {0xCF3411CA, 0x634B2696, 0xE86BCDC1, 0xF90EAE59, 0xA8F9FC7C, 0x790F6E10, 0xEA6F8EF5, 0x137B0ECE} } } ,
19557 { { {0xD5D6DDE7, 0x1FB62BE0, 0x17DF465F, 0x6941F67F, 0xDF0AD254, 0x637202AF, 0x0F1DE862, 0x19974A5C},
19558 {0x98B9D19D, 0xB1E49779, 0xC23836B8, 0xA7918250, 0xC17473F6, 0x9B3907D3, 0x59731671, 0x0C1C0F2E} } ,
19559 { {0x0BACCE0B, 0x0B7188DD, 0x8BDBAE0A, 0xDE3CBBFF, 0x4714CC98, 0xA9954965, 0x43979C0F, 0x121F329B},
19560 {0xF6CBEE07, 0xC5CEAC8A, 0xCA9F3381, 0x3C4EE048, 0xFF8FD5C7, 0x7D3CB833, 0xB8EEA0A5, 0x1689E2A0} } } ,
19561 { { {0x750C497B, 0xF4D2E5C5, 0x0856E4DD, 0x187929AA, 0x8B76087D, 0x2FBD1FDA, 0x597B5F32, 0x232C8E4D},
19562 {0x770C2EB9, 0xBDD9162E, 0x8619EE1B, 0x205FC27D, 0x1FAD4186, 0x24598C40, 0x7B099D2D, 0x0028A6F8} } ,
19563 { {0x403DDF88, 0x4C79CADF, 0xB4721466, 0xF2B9E4F0, 0x062E77BC, 0x32F91414, 0xA6256509, 0x0883F55B},
19564 {0xE758E51A, 0x21BE8C59, 0xBA49A0B2, 0x6D20AAF2, 0x1C17D652, 0x1C20F5A2, 0x57E89CCA, 0x14FEAD40} } } } ;
19565 static const fp12_t var_expected = { { { {0x50C3CA51, 0xAC014764, 0xE904711D, 0x24E6AC36, 0xDFE7FC94, 0x0C0E9305, 0x1AC0CD48, 0x142D9825},
19566 {0x9C344D20, 0x3983D86E, 0xEBA1F1EA, 0xCC706162, 0x332DB108, 0x47772158, 0xAF9042DC, 0x10EED06B} } ,
19567 { {0xE49AF33A, 0xA086D5F5, 0x79904277, 0xEA554FD1, 0xBC995152, 0x15EE06F9, 0x04808220, 0x0727B08A},
19568 {0x3AC8E735, 0x8280E5C5, 0x1D0631AD, 0x0CDBA19C, 0x87ECD768, 0x3C994E59, 0x2B62200B, 0x0FB31996} } } ,
19569 { { {0xAADF8E8E, 0x653D92FE, 0x69BCBD3D, 0x1255736B, 0xAA1AEA09, 0xDD9A0CD5, 0xB1614B2D, 0x23ED194B},
19570 {0x489AABE6, 0x07289057, 0xEF34EFC1, 0x1DAEF315, 0x3089F27C, 0x2EF2CD03, 0x69582A8D, 0x1101521D} } ,
19571 { {0x23823A90, 0xB286F24C, 0x3CEA3214, 0x25EC23AA, 0x2A527F67, 0xB2F02F2D, 0x9FF859C7, 0x15AEA705},
19572 {0x4B32169C, 0xB0B1609F, 0xE39E242A, 0xFAB35295, 0xA87FE1B8, 0xB5BCA005, 0xE71A5E2C, 0x02B11271} } } ,
19573 { { {0xCE9670E6, 0xB76307CA, 0x73920851, 0xE47727A3, 0xBB4C18C1, 0xA165EF06, 0xD0F72AAE, 0x11DE7275},
19574 {0xBE2D073D, 0xABED99FE, 0x79CBB36E, 0x5F966BEB, 0x72651072, 0xDD383C91, 0xAA6BAA43, 0x1880A7A1} } ,
19575 { {0x2B4818E8, 0x5E7824B5, 0x8A52FDA4, 0x47AF6C7B, 0xDF2C0C89, 0x41A15DB7, 0xC4345305, 0x0442E709},
19576 {0x244B42A4, 0xA44BD485, 0x326CC3FE, 0x3E5A073C, 0x10F381BA, 0x693B0BF7, 0x2D2FBDBF, 0x156D3A01} } } } ;
19578 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2669 a000");
19579 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2670 a001");
19580 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2671 a010");
19581 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2672 a011");
19582 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2673 a100");
19583 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2674 a101");
19584 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2675 a110");
19585 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2676 a111");
19586 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2677 a200");
19587 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2678 a201");
19588 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2679 a210");
19589 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2680 a211");
19592 static const fp12_t var_a = { { { {0xD928A32E, 0x16FB1CCC, 0xF2A8FAEF, 0x43956B14, 0x55082441, 0xA30F8F90, 0x3E91348A, 0x0EC1F03A},
19593 {0x549CBB3A, 0x3D2FD903, 0x6B4FB988, 0x8DA1B3FD, 0x36D27D00, 0xBB4FB882, 0x01F2013A, 0x011EF995} } ,
19594 { {0xED2E5A4E, 0xE0EE04A3, 0x6813EB5A, 0xE7112986, 0x5774CDA4, 0x268CC80B, 0xF8A78DC4, 0x06F1CC72},
19595 {0x0B9F9076, 0x0EEACDF6, 0xDF14F2C4, 0x3FF3EDBF, 0xE76B9143, 0x3AD29B35, 0x6E265DC1, 0x04419681} } } ,
19596 { { {0x69F44489, 0xFDFB2F4B, 0xFBBF322F, 0x0A3D523D, 0x2752CFA1, 0x2EC34AE5, 0xA69383ED, 0x2202059C},
19597 {0x98D668B8, 0x36C71A44, 0x9B9F55A5, 0xFD21F4A4, 0xEECA4B33, 0x2CB9D96A, 0xD46E833F, 0x048EB54B} } ,
19598 { {0x7A337ACF, 0x5CEC7A6C, 0xD0FF0545, 0x72468337, 0x23C360E2, 0x6C03C8F2, 0xE00DCB83, 0x0235D67F},
19599 {0xC835790C, 0x7FC708DE, 0x6360431B, 0xC30FD842, 0x47FF12CC, 0xBD5358C8, 0x27E655E1, 0x0A8F8B39} } } ,
19600 { { {0x8E8BDB84, 0xA5BEFE9E, 0x4CB7D285, 0x57E8229E, 0xE9F92B3D, 0x8A20C7CA, 0xF9AC3CED, 0x133F0BC2},
19601 {0xAAFC35A9, 0x15271915, 0x3C8355AF, 0x6A163B33, 0x2F129502, 0xD02EE720, 0x5C353EEE, 0x10A66CB4} } ,
19602 { {0x50518F9A, 0x2FB181B7, 0x14AE0C69, 0x905F8349, 0x530A2B94, 0x5B200868, 0xC7398BB0, 0x023C0228},
19603 {0x88888FD8, 0xA86D88FB, 0x6C3F5541, 0xEB66BDBE, 0x24D6B8CA, 0x2B06EF3C, 0xE8D85E17, 0x0A984B2F} } } } ;
19604 static const fp12_t var_b = { { { {0xAE5E2283, 0xDF564C52, 0x0DDF6BE6, 0xED25D89A, 0x81B9ECB0, 0x6A18E2A7, 0xDFF92DE2, 0x02879B18},
19605 {0xF2232547, 0xEE79B5EF, 0x772705FE, 0x7AE6A773, 0xE2B66221, 0x022C9C63, 0x8172774A, 0x00469ED4} } ,
19606 { {0xD6E22E61, 0x98A162FD, 0x5CC8A44A, 0x5889DCE5, 0xCF4D1EAA, 0x9492E974, 0x96037F98, 0x247D668D},
19607 {0xB3D6A5A8, 0xC9986CCE, 0x2379F984, 0xD094DE00, 0x66890DE5, 0x266AD218, 0x9A207DFC, 0x1C35EA23} } } ,
19608 { { {0x34329D17, 0x2EF820A3, 0x66BB854C, 0x7DBD46E3, 0xD95E6F46, 0xCBC5CD3E, 0x408C0D51, 0x19182BC0},
19609 {0xD8353587, 0xA78C168E, 0x746D540A, 0xA79015EE, 0xEE5B377F, 0x1A525733, 0x6AC3E659, 0x118D3AD4} } ,
19610 { {0x749677A5, 0x24423D16, 0xD02C9C37, 0x5DAAFDE4, 0x7DA5C834, 0xE50DDAFC, 0x72372493, 0x232DEB86},
19611 {0xAF33EA4C, 0x85A7CB43, 0xB0887C67, 0xBDAC450A, 0xF645A297, 0x1B3DCF57, 0xE557ADB9, 0x1EA83040} } } ,
19612 { { {0x851E527F, 0x6CFC2BE0, 0x7E043F5F, 0xA7E61AC5, 0xD8CBD62C, 0x3842B254, 0x036A8391, 0x071F59E0},
19613 {0xC5EF6063, 0x5ED24AD3, 0x5BEAC50C, 0x2B166DA9, 0x3B386966, 0xFEFC4B62, 0x003B007C, 0x05AC547B} } ,
19614 { {0x936E467A, 0xA440E9B2, 0x97ED11CE, 0x5FDD9EC8, 0x473DE9A9, 0x027A18C0, 0x06954F89, 0x1D47CC14},
19615 {0xE6866060, 0x28A0D4CA, 0x3A9D0EAE, 0x61E6900A, 0xBBCCE82A, 0x39D9905D, 0xB189AD14, 0x131834CA} } } } ;
19616 static const fp12_t var_expected = { { { {0x2ACA80AB, 0x37A4D07A, 0xE4C98F08, 0x566F927A, 0xD34E3790, 0x38F6ACE8, 0x5E9806A8, 0x0C3A5521},
19617 {0x627995F3, 0x4EB62313, 0xF428B389, 0x12BB0C89, 0x541C1ADF, 0xB9231C1E, 0x807F89F0, 0x00D85AC0} } ,
19618 { {0x164C2C00, 0xEF4CA1A6, 0x0B4B4723, 0xEFA84CA1, 0x8827AF02, 0x4C2E2C16, 0xA2A40E2D, 0x0797CA67},
19619 {0x57C8EAE1, 0xEC526127, 0xBB9AF952, 0xD0800FBF, 0x80E28365, 0xCE9C169D, 0x1405DFC6, 0x0D2F10E0} } } ,
19620 { { {0x35C1A772, 0xCF030EA8, 0x9503ACE3, 0x8C800B5A, 0x4DF4605A, 0x62FD7DA6, 0x6607769B, 0x08E9D9DC},
19621 {0xC0A13344, 0x363B03B5, 0x273201AE, 0xB6B2DEB6, 0x006F13BC, 0xCC9BCFB7, 0xA9AA9CE7, 0x1824DEF9} } ,
19622 { {0x059D033D, 0xDFAA3D56, 0x00D26921, 0x75BC8553, 0xA61D98B6, 0x412A3B75, 0xADD6A6F1, 0x042B4F7B},
19623 {0x19018ED3, 0xA11F3D9B, 0xB2D7C6C7, 0x66849337, 0x51B9703D, 0x5C49D6F0, 0x828EA82A, 0x110ABF7A} } } ,
19624 { { {0x096D8905, 0x38C2D2BE, 0xCEB39326, 0xB00207D8, 0x112D5510, 0x51DE1576, 0xF641B95C, 0x0C1FB1E2},
19625 {0xE50CD546, 0xB654CE41, 0xE09890A2, 0x3EFFCD89, 0xF3DA2B9C, 0xD1329BBD, 0x5BFA3E71, 0x0AFA1839} } ,
19626 { {0xBCE34933, 0x32709804, 0x7CC0FAAE, 0x91A2E480, 0x0BCC41F3, 0x12DA3D28, 0x00A43C29, 0x0A179A97},
19627 {0xA2022F8B, 0x26CCB430, 0x31A246A7, 0xEAA12DB4, 0x6909D0A8, 0xAB61AC5E, 0x774EB104, 0x1CA37AE7} } } } ;
19629 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2681 a000");
19630 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2682 a001");
19631 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2683 a010");
19632 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2684 a011");
19633 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2685 a100");
19634 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2686 a101");
19635 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2687 a110");
19636 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2688 a111");
19637 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2689 a200");
19638 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2690 a201");
19639 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2691 a210");
19640 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2692 a211");
19643 static const fp12_t var_a = { { { {0x0B908372, 0x32DF251F, 0x7FA600EA, 0xDAA9F9EE, 0x67F6242E, 0x4D36AEA8, 0x918D335C, 0x198A549D},
19644 {0x20E39476, 0x8B60EA2B, 0x53E753EE, 0x2665FA7E, 0xB2167CA3, 0x2001608B, 0x2C613E0F, 0x2041B9DA} } ,
19645 { {0x9AC170E6, 0x6369D86F, 0xDA50A5A1, 0x0C6C5267, 0x14550B73, 0x194ACC68, 0x39D1B67E, 0x14D43C21},
19646 {0xC08B5CA7, 0x132AF121, 0xEB993253, 0x22B7C92B, 0x9D720D78, 0x4BC28C96, 0x6539C7C8, 0x199C5B1C} } } ,
19647 { { {0x2D476A16, 0xEE4332CC, 0x8FC12774, 0x582B8E24, 0x6DE85415, 0xAAF54BAC, 0x92E2C7A5, 0x010971CA},
19648 {0x5275AAB3, 0x99F0B8E7, 0x866160BC, 0xDAD2B87E, 0x3A567B12, 0x1D3AE17C, 0x942F6CF6, 0x141DBFA9} } ,
19649 { {0xF1390324, 0x1AB2F800, 0xC1D094BD, 0x683F1FC9, 0xCD40201D, 0x3D69C293, 0x32917ADD, 0x0729FE6A},
19650 {0xA3D1FB83, 0x5890E75C, 0xE9151EC4, 0xA65732AF, 0x8520D0FD, 0xAC763840, 0xEB59999C, 0x0EC7898D} } } ,
19651 { { {0x5358EF17, 0xA5ED4192, 0xD7A9A664, 0xEA989863, 0xD2BF7423, 0xD9804B11, 0xAE4CFA1D, 0x0918FE66},
19652 {0xC1DF6125, 0x7BE1470C, 0x1A0A9550, 0x5A01A6E4, 0xBBE953BA, 0xDAEE197E, 0x6014EF0A, 0x07333500} } ,
19653 { {0x01D6719D, 0xBB2F96F6, 0x741BF748, 0x83CA06B5, 0x5968198B, 0x5247B974, 0x1A72B07E, 0x1B00BAD3},
19654 {0xF9BB9F2F, 0x59C4FCA3, 0x5D5C2D1B, 0x53441DDB, 0x5953636F, 0x293E405B, 0xA953E2A5, 0x14397805} } } } ;
19655 static const fp12_t var_b = { { { {0xE62B6689, 0x6DC5741C, 0x7FE7B803, 0x363C03FA, 0x7EAEBEE6, 0x3023CB92, 0xCDA19E48, 0x091371C1},
19656 {0xD72F5BEB, 0x92349820, 0x3846D762, 0x09B01A1F, 0x1D582ED1, 0x2759B209, 0xFAF210BC, 0x1E44E5CC} } ,
19657 { {0x31E8DAAA, 0xC91E3D9B, 0x1B13D5F6, 0x5AF59E6F, 0xA047822F, 0x9AF3DB73, 0x1904ED86, 0x25190113},
19658 {0x29826726, 0xB959162C, 0x6F6C48CA, 0x74A5B939, 0x041C3C27, 0x32D171C0, 0x48034A32, 0x05058C5F} } } ,
19659 { { {0x4D7E4680, 0x20D97B30, 0xAE36888C, 0x8ED6F50C, 0x5AFAB767, 0xF420FD0D, 0x96A8AC13, 0x04AA76C6},
19660 {0xFC46154B, 0x4990BC71, 0x082F2CEF, 0x2C411366, 0x49BCC8A5, 0xA18270E8, 0x08214ABD, 0x0C6C5F89} } ,
19661 { {0xE91640FB, 0x79DC9B6A, 0xDECD6391, 0xDFE0A32A, 0x8A6E1A1E, 0x9EABB75B, 0x97C9CD33, 0x066345FE},
19662 {0x9C2FAA60, 0xDA86DCE7, 0x47F94D3E, 0x71FFE7A8, 0x6B1FF6AC, 0x9743B6E8, 0x30BB2BD1, 0x05539CE3} } } ,
19663 { { {0xF05FE6A3, 0xFD5AFBA1, 0x8E87D73F, 0x0C31E210, 0x4DFD4084, 0xC417AAE5, 0xF2214ADC, 0x1913588D},
19664 {0x96DADD83, 0x393F7B50, 0xB191A8A0, 0x32838863, 0x26C5D097, 0xEA0EE9BD, 0xF36A8B47, 0x1C0DA601} } ,
19665 { {0x915CBC8C, 0x57EC64A1, 0xE4951F0A, 0xF01884A5, 0x00816FC3, 0x71AB610F, 0xFC3A8327, 0x23BEA739},
19666 {0xB9A37056, 0xE429DC71, 0x0C6A7D84, 0xA9D40BBB, 0x78962860, 0x536730D9, 0xC83E6011, 0x0EF175A0} } } } ;
19667 static const fp12_t var_expected = { { { {0x25651CE9, 0xC519B102, 0xFFBE48E6, 0xA46DF5F3, 0xE9476548, 0x1D12E315, 0xC3EB9514, 0x1076E2DB},
19668 {0x49B4388B, 0xF92C520A, 0x1BA07C8B, 0x1CB5E05F, 0x94BE4DD2, 0xF8A7AE82, 0x316F2D52, 0x01FCD40D} } ,
19669 { {0x68D8964F, 0x414B9AD4, 0xBF3CCFBE, 0x1297B3F8, 0x740D894C, 0x388B3E74, 0x60CCC8F9, 0x14DE9F90},
19670 {0x9708F581, 0x59D1DAF5, 0x7C2CE988, 0xAE120FF2, 0x9955D150, 0x18F11AD6, 0x1D367D96, 0x1496CEBD} } } ,
19671 { { {0xDFC923A9, 0x7469B79B, 0xE18A9EFC, 0x2A759917, 0x12ED9CB6, 0x71089C1F, 0x3C3A1B93, 0x21825F86},
19672 {0x562F9568, 0x505FFC75, 0x7E3233CD, 0xAE91A518, 0xF099B26D, 0x7BB87093, 0x8C0E2238, 0x07B16020} } ,
19673 { {0x0822C229, 0xA0D65C96, 0xE303312B, 0x885E7C9E, 0x42D205FE, 0x9EBE0B38, 0x9AC7ADA9, 0x00C6B86B},
19674 {0x07A25123, 0x7E0A0A75, 0xA11BD185, 0x34574B07, 0x1A00DA51, 0x15328158, 0xBA9E6DCB, 0x0973ECAA} } } ,
19675 { { {0x62F90887, 0x4F9245F0, 0x4921CF38, 0x3F87B653, 0x84C233A8, 0xCF9CEDAC, 0xFC2BAF42, 0x15290A5A},
19676 {0x2B0483B5, 0xE9A1CBBC, 0x6878ECC3, 0x889F1E80, 0x9523832B, 0xAB137D41, 0xACAA63C4, 0x1048F380} } ,
19677 { {0x7079B524, 0x0A433254, 0x8F86D852, 0xF4D2820F, 0x58E6A9CF, 0x9AD0A5E5, 0x5E382D58, 0x1C65781B},
19678 {0x40182ED9, 0x759B2032, 0x50F1AF96, 0xA9701220, 0xE0BD3B0E, 0xD5D70F81, 0xE1158293, 0x05480264} } } } ;
19680 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2693 a000");
19681 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2694 a001");
19682 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2695 a010");
19683 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2696 a011");
19684 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2697 a100");
19685 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2698 a101");
19686 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2699 a110");
19687 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2700 a111");
19688 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2701 a200");
19689 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2702 a201");
19690 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2703 a210");
19691 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2704 a211");
19694 static const fp12_t var_a = { { { {0x3835349B, 0x939DEC9E, 0x45FEABCE, 0x42D19DB2, 0x4025B8EC, 0x6BA63E2E, 0x09BED450, 0x01416135},
19695 {0x0F74D57B, 0xD02EF0C7, 0x5DEF5036, 0x5FE0BD6C, 0x9DB53D0D, 0x9ECB6471, 0x630D88F5, 0x03CCBC47} } ,
19696 { {0x9207BE8A, 0x4BF73066, 0x56E8FFEA, 0xBA84FD7E, 0xE9367768, 0x278E22CC, 0x2FC35AE3, 0x135D6EE1},
19697 {0xE891EF99, 0x9EC1A8AF, 0xE7D9DFE3, 0xB726DDE8, 0x124E41DD, 0x04FBD234, 0x3AC507A9, 0x05304CCF} } } ,
19698 { { {0x8CB6706A, 0xEA1A00D5, 0xFCF2FBA8, 0xF9776AB1, 0x1AF4135C, 0x7446659B, 0x8322EC98, 0x0407134E},
19699 {0xCF70E3AB, 0x82F02E4D, 0x327D0D70, 0xD36095CC, 0x9564AA23, 0x2F4BC60F, 0x40BCFF46, 0x03A3FFF0} } ,
19700 { {0x53BA451A, 0x5CC6600B, 0x5C7AA0B9, 0x0966A0B7, 0x2E5C298A, 0x48FFD96D, 0xDAC248C4, 0x1D745721},
19701 {0x918101AA, 0x4773FEAD, 0x0118B79B, 0xB2B73D14, 0x22A75E3C, 0x4D62367C, 0x6CFE53AE, 0x0592DE1E} } } ,
19702 { { {0x54F0E861, 0x2A6FFFEF, 0xDBF14E39, 0x8F3D122A, 0xC3FFF398, 0xDB7CA540, 0xC8E97B02, 0x1D3C74F8},
19703 {0x3C02B69A, 0x2DBBE4E7, 0x59248ECB, 0xE485E09E, 0xF63CAF00, 0xE069B786, 0x329E082B, 0x23F5F8F0} } ,
19704 { {0x3D6B1C0A, 0x9E4AFFE9, 0x1E2F6790, 0x7F2170E5, 0xB5D01938, 0x2EF28A3B, 0xE38C72D6, 0x1B115A41},
19705 {0x1DCE9FEC, 0x2905E435, 0x80A7DD56, 0x48E403DC, 0x8E962970, 0x5479AEF5, 0x470852BC, 0x0E24F451} } } } ;
19706 static const fp12_t var_b = { { { {0xF942B072, 0xE15D2FF1, 0x09BB70C5, 0x9534F3D2, 0x23F2C462, 0x6C961214, 0xFFA0C5A9, 0x05A110A4},
19707 {0xC02DB221, 0x3D68FA53, 0xFA813A22, 0xD5C4B3BC, 0xA83D3C01, 0x511D9754, 0xE04D5999, 0x16B0D476} } ,
19708 { {0xB6640E87, 0x5C94A355, 0xC321AEF3, 0xCBA26B98, 0x688812FB, 0x03DC78CD, 0x3369B8B0, 0x0CA3755A},
19709 {0xF3A66183, 0x8FE5CC9A, 0x8CBF3A75, 0x280DD440, 0x41A5AF3D, 0x488035BC, 0xB378B446, 0x22B53AE6} } } ,
19710 { { {0xE26259A8, 0x88C9B1DF, 0xB0421B90, 0x2DC312A9, 0x2389D4E4, 0x9B47AE41, 0x12C96A01, 0x03DAB2A3},
19711 {0xC2CCF738, 0x1377369C, 0x3CE71123, 0x0DF8B639, 0x94F9F2E1, 0x4D5EB61D, 0xB4D99267, 0x00F205C2} } ,
19712 { {0x28452595, 0x65DC5229, 0x75A0F28B, 0xABB12170, 0x2F8BAD73, 0x7D728BE3, 0x71933FB0, 0x1110DA68},
19713 {0x7B0FEC43, 0xFD22BB41, 0x4F4B27C3, 0x4DA5EF1A, 0x20F03CD3, 0x6A0CEA77, 0xD7589D22, 0x18C40D11} } } ,
19714 { { {0x7758B4DA, 0x67BCE751, 0xF6B09783, 0x055C2E8E, 0xAA967160, 0x90A17337, 0xE7D9769A, 0x177DCCA4},
19715 {0xAB8C5626, 0x0F08DFAD, 0x49599F61, 0xF40177F2, 0xA19780DC, 0xA38BF1A4, 0x14C38A73, 0x029A50CE} } ,
19716 { {0xFBFEE197, 0x5D7D626D, 0x5A2DFB4E, 0x6C234562, 0xF0F4EEE0, 0x0FC1A1D7, 0x473BFC8C, 0x062B32E8},
19717 {0x1EDF755F, 0x62716161, 0xEFE9D828, 0xC53706E1, 0x152836CC, 0x9E5C6EBE, 0xDD23680F, 0x14CC5865} } } } ;
19718 static const fp12_t var_expected = { { { {0x3EF2843C, 0x5940BCAC, 0x3C433B1C, 0x0EBDA9E0, 0x1C32F492, 0xB944799A, 0x4A1E0EA8, 0x20C3B512},
19719 {0x4F47236D, 0x39C5F673, 0x636E1628, 0xEB3D09AF, 0xF5780113, 0x07E21A9C, 0xC2C02F5E, 0x123F4C52} } ,
19720 { {0xDBA3B003, 0xEF628D10, 0x93C750F6, 0xEEE291E5, 0x80AE646C, 0x23B1A9FF, 0xFC59A233, 0x06B9F986},
19721 {0xF4EB8E29, 0xB5DBDC14, 0x5B1AA581, 0xF03A09A8, 0xD0A892A8, 0x76AFE9F7, 0xC74C5364, 0x079E766A} } } ,
19722 { { {0xAA5416C2, 0x61504EF5, 0x4CB0E018, 0xCBB45808, 0xF76A3E78, 0xD8FEB759, 0x70598296, 0x002C60AB},
19723 {0x0CA3EC73, 0x6F78F7B1, 0xF595FC4D, 0xC567DF92, 0x006AB742, 0xE1ED0FF2, 0x8BE36CDE, 0x02B1FA2D} } ,
19724 { {0x2B751F85, 0xF6EA0DE2, 0xE6D9AE2D, 0x5DB57F46, 0xFED07C16, 0xCB8D4D89, 0x692F0913, 0x0C637CB9},
19725 {0x1671157A, 0xF151436C, 0xB1CD8FEA, 0xC6324DF9, 0x01B72171, 0x9D899985, 0xD5A5B68D, 0x11F2358E} } } ,
19726 { { {0xDD983387, 0xC2B3189D, 0xE540B6B5, 0x89E0E39B, 0x19698238, 0x4ADB3209, 0xE1100468, 0x05BEA853},
19727 {0x90766074, 0x1EB30539, 0x0FCAEF6A, 0xF08468AC, 0x54A52E23, 0x3CDDC5E2, 0x1DDA7DB8, 0x215BA822} } ,
19728 { {0x416C3A73, 0x40CD9D7B, 0xC4016C42, 0x12FE2B82, 0xC4DB2A58, 0x1F30E863, 0x9C50764A, 0x14E62759},
19729 {0xFEEF2AA0, 0x6D9482D3, 0x90BE0541, 0xE4CDFCFA, 0x796DF2AB, 0x70518DB7, 0xA9E4EAAE, 0x1E7C006D} } } } ;
19731 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2705 a000");
19732 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2706 a001");
19733 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2707 a010");
19734 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2708 a011");
19735 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2709 a100");
19736 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2710 a101");
19737 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2711 a110");
19738 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2712 a111");
19739 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2713 a200");
19740 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2714 a201");
19741 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2715 a210");
19742 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2716 a211");
19745 static const fp12_t var_a = { { { {0x218082A1, 0x9463D34F, 0x04627244, 0xC1F3D057, 0xA000FCC3, 0xA4F08615, 0x673969DD, 0x1A4784B1},
19746 {0xE2EE4857, 0xEBE15B65, 0x4791DE3E, 0x8DA1BCAB, 0xB8D2F71A, 0x6931E9B6, 0x290395B8, 0x1D2A9175} } ,
19747 { {0x95D876E1, 0xA6F65996, 0x9B7E02C4, 0x75AC3CB2, 0x95F5DE11, 0x84B22F10, 0x1B843B32, 0x0F5A65AD},
19748 {0x43C13CBA, 0x7B28457B, 0x95EECB24, 0x98460840, 0x0792F2EC, 0xF96CAD25, 0xEBCA7308, 0x15F0DC37} } } ,
19749 { { {0x468A3559, 0x580F7A0E, 0x02E61F9F, 0x0E0262CF, 0xEEC0089D, 0x060C5048, 0x79493FD7, 0x0F53F14A},
19750 {0xCF48EE49, 0x366ED893, 0x5FFC262B, 0x6F2DD542, 0xBFF92A3D, 0x69B47177, 0x1A03CEE8, 0x07920FC7} } ,
19751 { {0x606C0163, 0x53EAD4DC, 0x607EE0B2, 0x6B44B619, 0x06D12355, 0x38AAE6FF, 0xD6862DC9, 0x02FF3A11},
19752 {0x5234FFE8, 0xFF45E00D, 0x6A602D34, 0xCA5CFA03, 0xDE0696CC, 0x8DA140EC, 0x2AB2EC80, 0x1A190392} } } ,
19753 { { {0x517BA44D, 0x83354604, 0x1801A839, 0xABDE3A23, 0x7AE57648, 0x69076584, 0xC7587E09, 0x1237D025},
19754 {0xDAC30458, 0xD6BCE57D, 0xB9BB14DB, 0x0EE1EE6E, 0xA0EF0595, 0xFFF72B19, 0x11A264A0, 0x052F86E1} } ,
19755 { {0xC4A8C49E, 0xE620652E, 0xD04A3951, 0x047536A2, 0x29DF9BBF, 0x2639EEA8, 0x604C6F64, 0x0BF9D660},
19756 {0xB48E7B4C, 0x2668C3FF, 0x93FA44A2, 0x51B2C3D1, 0x83F3EA30, 0xE46A6660, 0x02B496CB, 0x00BEB272} } } } ;
19757 static const fp12_t var_b = { { { {0xA7ABCAB3, 0xBA6D69D6, 0x6DAB4F70, 0xE6EAB148, 0x2F9089DA, 0x3D4A5AFE, 0xF7AE3D64, 0x00734725},
19758 {0x6C5DE2E8, 0xA67C1C53, 0x7DA4775E, 0xC45C6193, 0x432BE8CB, 0x6C8C3004, 0xB432E49D, 0x18C20092} } ,
19759 { {0x27D06292, 0xF8837437, 0x15369D7F, 0xF691AFAF, 0xE88BF7AF, 0x32E5032F, 0x61D79454, 0x22668653},
19760 {0xD0F4DEB7, 0xD4D4B743, 0x3B2CDEDD, 0xA44D0532, 0xDD583CA3, 0x557E835F, 0x9B1C97E8, 0x0BA60756} } } ,
19761 { { {0xB2C782EF, 0xEF763E9F, 0x2B114396, 0xCD5134CF, 0xF2F6065D, 0x6A8CFCEF, 0x32833040, 0x0313E3ED},
19762 {0xECE672E2, 0x2906BF1E, 0xD23F335C, 0x89680923, 0x8EB7FEA2, 0xF3F103D7, 0x2C7A7E32, 0x1ABF28A2} } ,
19763 { {0xF3781732, 0x17222706, 0x55C6BC07, 0xD4C80CBC, 0x2A575379, 0x2C65E173, 0x011AB3AE, 0x0042C71A},
19764 {0x0E634E50, 0x3E71E135, 0x8818B79C, 0xB76FE86C, 0xD4CB2F69, 0x6B13440A, 0x5DAB3E02, 0x19CFB551} } } ,
19765 { { {0xD9CF3734, 0xB930AB0D, 0x78923ECC, 0x15EA54A4, 0xAD6348BD, 0xD3E95062, 0x2005B01E, 0x0E5A292E},
19766 {0xC3052CF3, 0x3A525BB1, 0xE2CA32AF, 0xB7AA9014, 0x6B339E53, 0xD77F6DE6, 0x21B555D0, 0x0E6CC8E5} } ,
19767 { {0x908DF1DA, 0xF1303DC6, 0xB9B58DD0, 0xC9A5C943, 0xD8D4D161, 0x56846B2E, 0x27FCE947, 0x128DFFB1},
19768 {0xD7A851A0, 0xE8CCE031, 0xA496E009, 0x87A8F0B6, 0x51759F45, 0x6579B518, 0x6F96D304, 0x0018A280} } } } ;
19769 static const fp12_t var_expected = { { { {0x79D4B7EE, 0xD9F66978, 0x96B722D3, 0xDB091F0E, 0x707072E8, 0x67A62B17, 0x6F8B2C79, 0x19D43D8B},
19770 {0x7690656F, 0x45653F12, 0xC9ED66E0, 0xC9455B17, 0x75A70E4E, 0xFCA5B9B2, 0x74D0B11A, 0x046890E2} } ,
19771 { {0x6E081462, 0x5572E55F, 0x86476558, 0xE03B8D03, 0xAD69E669, 0x0C017960, 0xF9ACA6E0, 0x121743DB},
19772 {0x72CC5E03, 0xA6538E37, 0x5AC1EC46, 0xF3F9030E, 0x2A3AB648, 0xA3EE29C5, 0x50ADDB20, 0x0A4AD4E1} } } ,
19773 { { {0x93C2B26A, 0x68993B6E, 0xD7D4DC08, 0x40B12DFF, 0xFBCA023F, 0x9B7F5358, 0x46C60F96, 0x0C400D5D},
19774 {0xE2627B7A, 0xB4681974, 0x8DBCF2E2, 0x46E6CC1E, 0x31412BA3, 0x2FF7BB20, 0x2D8950B7, 0x11F64BA7} } ,
19775 { {0x6CF3EA31, 0x3CC8ADD5, 0x0AB824AB, 0x967CA95D, 0xDC79CFDB, 0x0C45058B, 0xD56B7A1B, 0x02BC72F7},
19776 {0x43D1B198, 0xC0D3FED8, 0xE2477598, 0x12ED1196, 0x093B6763, 0x228DFCE2, 0xCD07AE7E, 0x00494E40} } } ,
19777 { { {0x77AC6D19, 0xCA049AF6, 0x9F6F696C, 0x95F3E57E, 0xCD822D8B, 0x951E1521, 0xA752CDEA, 0x03DDA6F7},
19778 {0x17BDD778, 0x436A89CC, 0xD6F0E240, 0xB8585E59, 0x35BB6749, 0xE2AC0AB3, 0x2FED0ED1, 0x1BE6227E} } ,
19779 { {0x341AD2D7, 0x9BF02768, 0x1694AB94, 0x9BF06D5F, 0x510ACA65, 0x89E9D0F9, 0x784F861E, 0x1E8F3B31},
19780 {0xDCE629AC, 0x3D9BE3CD, 0xEF636498, 0xCA09D31A, 0x327E4AEA, 0x7EF0B148, 0x931DC3C7, 0x00A60FF1} } } } ;
19782 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2717 a000");
19783 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2718 a001");
19784 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2719 a010");
19785 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2720 a011");
19786 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2721 a100");
19787 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2722 a101");
19788 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2723 a110");
19789 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2724 a111");
19790 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2725 a200");
19791 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2726 a201");
19792 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2727 a210");
19793 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2728 a211");
19796 static const fp12_t var_a = { { { {0x8418A8FA, 0xDFA182DD, 0x7DC33D0B, 0x5D74DB48, 0x47345EE1, 0x1951C9CA, 0xE956C533, 0x0687790B},
19797 {0x58330C7A, 0x19006D03, 0xD3364D8D, 0x624FC9E7, 0xC1D19C2B, 0xB578260B, 0x7B91C6D2, 0x0F15BC85} } ,
19798 { {0x644C0D4A, 0x6104F515, 0x69F274EF, 0x6EA98363, 0xD9AC3591, 0x36758822, 0xBC59EE77, 0x07E3BE20},
19799 {0x926958A6, 0x6815F5E1, 0xB531327B, 0x86BFCD2E, 0x3B12746E, 0xE5E0C45B, 0x3A845BE5, 0x0B798711} } } ,
19800 { { {0x1C4A9EBA, 0x9FF0E628, 0x626C1B69, 0xB8EDDCF6, 0xA9DA23DC, 0xD8DF4361, 0x758B33EA, 0x0688BED5},
19801 {0x13BD8F8A, 0x8C50FF90, 0xCE283554, 0x27CBF7BB, 0x7959AC61, 0x2D367F78, 0x6132B27D, 0x005FB3B9} } ,
19802 { {0xD947CE1D, 0xEB1AED73, 0x8C9E757F, 0x7AF587A6, 0x159B7B8B, 0xCB3BC84B, 0xA8019422, 0x0D774EB9},
19803 {0xA71C2F56, 0xD31F1EC7, 0xE428AF90, 0x57332F2C, 0x7AF37E5E, 0x44CD1769, 0xA6946534, 0x134F035C} } } ,
19804 { { {0x0861A6F6, 0xD66CAB12, 0x4E894528, 0x7F58C538, 0xBADC5FC7, 0x57116AD0, 0x6BAF819E, 0x1450E2AD},
19805 {0x5CC4AFA9, 0xE72A4F2E, 0xFBF957E7, 0xD78C2BF7, 0x7A25B3D9, 0x82881A5A, 0x3D2DC7FB, 0x204619E2} } ,
19806 { {0x56661966, 0xB8100646, 0x4C1051A3, 0x4E556886, 0x746F74E3, 0x0F41391A, 0x53B857CD, 0x1BB12039},
19807 {0x7E0D7A36, 0x74633E7A, 0x586FF1D3, 0xA691985F, 0xF6FD538A, 0xABCD81ED, 0x9B55D417, 0x19D565C1} } } } ;
19808 static const fp12_t var_b = { { { {0xB0ADCC1A, 0x9784B649, 0x6B4A62A5, 0x55487371, 0x62D4D372, 0xED3C4C24, 0xB5BF045B, 0x07FE4C40},
19809 {0x9C3EDD8B, 0xA2166DD5, 0x81B7D5B2, 0x4CCD8BFE, 0xAC242B6C, 0xDE2A6EF8, 0xB58DD0D3, 0x06B028E1} } ,
19810 { {0x44E28EDC, 0x6BA944F9, 0xCFD1BA85, 0x33C7901B, 0xDF0D5FD9, 0x7478C3C0, 0x6535E93F, 0x0E0DF141},
19811 {0x805B2F4B, 0x74FC3C26, 0x3BAC93BA, 0xD4982B43, 0x98AA23C9, 0x19F558A8, 0x80CDA7C1, 0x181AB954} } } ,
19812 { { {0x7DD4521C, 0xB1CF63E5, 0xDF13FB48, 0xF93040D5, 0x896F604D, 0x4F8F9C83, 0xF9ACE95D, 0x0246BA3D},
19813 {0x3AF5F152, 0xDC44DFEC, 0x8A2260FE, 0x07F3AC7F, 0xF8D970FC, 0x6EC06E32, 0xF2D2F557, 0x1E37E654} } ,
19814 { {0x094AC3CD, 0xD5CCB3BA, 0x3EA17D28, 0xE940D27E, 0x3D6E81E0, 0xB0455979, 0x8524B55A, 0x05A172EE},
19815 {0x14FA107B, 0x1DAB27BB, 0xB33A9B7F, 0x8BDF825C, 0x470695C1, 0xB79AF68F, 0x3F73C758, 0x10E270CC} } } ,
19816 { { {0xD6CD6F9B, 0x0006E61A, 0xD37D2652, 0xC09E1A54, 0x18701AE6, 0xC23B8AB0, 0xDF5C3F60, 0x05E60763},
19817 {0x9E85347F, 0x92854387, 0x3CB02A7A, 0xF392E1CA, 0x445C2C33, 0xE52B6C66, 0x5CED0E20, 0x1E7C8794} } ,
19818 { {0x10807E67, 0x62854649, 0xC170A6F8, 0x6EB5F85B, 0x769CC790, 0x1D748762, 0x1C246F5A, 0x0A84091C},
19819 {0xA3B0261C, 0xBAD4545A, 0xE929E23E, 0x7CFC7CCF, 0xECB19F01, 0xB1767AA0, 0xBE35CC53, 0x06B5A244} } } } ;
19820 static const fp12_t var_expected = { { { {0xD36ADCF3, 0xEF1CCC93, 0x1278DA79, 0x694D67D7, 0xE45F8B77, 0xE649CB25, 0x7397C0D8, 0x23AC914D},
19821 {0xBBF42EEF, 0x76E9FF2D, 0x517E77DA, 0x15823DE9, 0x15AD70BF, 0xD74DB713, 0xC603F5FE, 0x086593A3} } ,
19822 { {0x1F697E81, 0x9C5BB01C, 0x9A20BA7D, 0x9C02F347, 0xFA9ED5C0, 0x7C3111E1, 0x97240539, 0x1EF93161},
19823 {0x120E296E, 0x9A19B9BB, 0x79849ED4, 0x1348A1EB, 0xA26850AD, 0x861FB932, 0xF9B6B426, 0x1882323E} } } ,
19824 { { {0x9E764C9E, 0xEE218242, 0x83582020, 0xBFBD9C20, 0x206AC38E, 0x894FA6DE, 0x7BDE4A8D, 0x04420497},
19825 {0xD8C79E4B, 0x570C1FA3, 0x4405D469, 0x80F94B3C, 0x80803B6D, 0x78AA5EC5, 0xAE5FBD27, 0x074B31E6} } ,
19826 { {0xCFFD0A50, 0x154E39B9, 0x4DFCF857, 0x91B4B528, 0xD82CF9AA, 0x1AF66ED1, 0x22DCDEC8, 0x07D5DBCB},
19827 {0x92221EDB, 0xB573F70C, 0x30EE1411, 0xCB53ACD0, 0x33ECE89C, 0x8D3220DA, 0x67209DDB, 0x026C9290} } } ,
19828 { { {0x3194375B, 0xD665C4F7, 0x7B0C1ED6, 0xBEBAAAE3, 0xA26C44E0, 0x94D5E020, 0x8C53423D, 0x0E6ADB49},
19829 {0xBE3F7B2A, 0x54A50BA6, 0xBF492D6D, 0xE3F94A2D, 0x35C987A5, 0x9D5CADF4, 0xE040B9DA, 0x01C9924D} } ,
19830 { {0x45E59AFF, 0x558ABFFD, 0x8A9FAAAB, 0xDF9F702A, 0xFDD2AD52, 0xF1CCB1B7, 0x3793E872, 0x112D171D},
19831 {0xDA5D541A, 0xB98EEA1F, 0x6F460F94, 0x29951B8F, 0x0A4BB489, 0xFA57074D, 0xDD2007C3, 0x131FC37C} } } } ;
19833 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2729 a000");
19834 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2730 a001");
19835 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2731 a010");
19836 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2732 a011");
19837 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2733 a100");
19838 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2734 a101");
19839 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2735 a110");
19840 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2736 a111");
19841 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2737 a200");
19842 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2738 a201");
19843 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2739 a210");
19844 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2740 a211");
19847 static const fp12_t var_a = { { { {0x23E60504, 0xAE04A94B, 0x6F54329E, 0x09EB92F4, 0xF6AB65DB, 0x4002975B, 0xD1A900DE, 0x0EF4014C},
19848 {0x30614D0E, 0x7D50F11B, 0xC089CF00, 0x169E8BBE, 0x7B569BFA, 0x59A559CB, 0x1A46E92B, 0x052F2449} } ,
19849 { {0xBEBAEB27, 0x1A02BA60, 0x8066AE71, 0xD0355D35, 0x73B852DD, 0x8921535F, 0x13C99BF0, 0x0F3F2A55},
19850 {0x941A3858, 0x1C7E857B, 0x053D8127, 0x64DE12C2, 0x6EE26584, 0xBCFDDC53, 0xA673CAF7, 0x15119954} } } ,
19851 { { {0xCDBD5DB7, 0x06CDB3EC, 0xDA974DE9, 0x83C5EC1F, 0x0B0D0F53, 0xF56C73B3, 0xB6601E8A, 0x1EBD1BD0},
19852 {0x59CD412E, 0xA6BD9B38, 0x3E8C3F43, 0x394F6EC3, 0x8207FB54, 0x533870A4, 0xD6B69287, 0x1A0BA6BD} } ,
19853 { {0x7D84DD4C, 0x6A96773D, 0xA3DCA45E, 0x0BBD78D8, 0x1BF621B0, 0x4CDE6902, 0xCF9B1A7C, 0x1C72C4C4},
19854 {0x4FA746A8, 0xE756074B, 0x2FEB3905, 0x92032811, 0xB5600E72, 0x4A7D7FBF, 0x9F011CCC, 0x1AE357AC} } } ,
19855 { { {0x3B49E05A, 0x89830AC7, 0x3E7C3242, 0x276D385F, 0x409165FF, 0x22D277C6, 0xB54489C0, 0x08BEFD2D},
19856 {0x81E36D7E, 0x798CF3AB, 0xDE48A823, 0x9D5D045A, 0x4342D308, 0x6F81E1E9, 0x368DA3D2, 0x1004A107} } ,
19857 { {0xB4BB02E7, 0xD3B976B9, 0x51615992, 0x1E117283, 0x579D9D37, 0xAA3B65FA, 0x7B15B0B1, 0x06FBD5E7},
19858 {0x3C9A07E4, 0xD4ACD6C0, 0x8F5FE091, 0x092A5FD6, 0xA9899EE8, 0x6F6AC661, 0xD12A2AEE, 0x17053A9A} } } } ;
19859 static const fp12_t var_b = { { { {0xD5D0CF97, 0x62711011, 0xC169D050, 0x10C15B09, 0x7C4A595F, 0x8158B326, 0xF7093C23, 0x1E0CC2BA},
19860 {0x0E917E56, 0x781E49A9, 0xC7045F6C, 0xFCB7C9B8, 0xA56D5BD7, 0xACFAABD5, 0x238E885D, 0x122BC3F5} } ,
19861 { {0xCB9221BC, 0x5D051F82, 0xB3B684F0, 0xCEC2B43B, 0x0D0A3C32, 0x2AAF6017, 0xBEA88F23, 0x1861294C},
19862 {0xC40A5E5E, 0x9E74C0F0, 0x4C79C505, 0xD012E73E, 0x334ED487, 0x3DA2DC8B, 0x63A8373E, 0x0517060B} } } ,
19863 { { {0x04F105BD, 0xFD03EAE0, 0x8CFCF583, 0x80D12962, 0xA75E8AFB, 0xAE5B7EDC, 0x245A4506, 0x118072B1},
19864 {0x6A976B99, 0x3B792E65, 0x22B9CA17, 0x099295FB, 0x9084CFC0, 0xEE9338DA, 0x45EECCC2, 0x1650F669} } ,
19865 { {0x2B9050E4, 0x073A2AE7, 0xF1D2F742, 0x0A497DD5, 0x27AC1684, 0x83358F49, 0xFFB6E5F0, 0x05D50FA5},
19866 {0x4EE4D3EC, 0x36458413, 0x8FCB1FDA, 0xF3885233, 0x3A330081, 0x9C062D04, 0x7EAD2AB9, 0x0C97BC42} } } ,
19867 { { {0x2E9AA872, 0xB9CBDE77, 0xC704FBB2, 0xDF9371AA, 0xAA0772C4, 0x78B60D20, 0xA4D3D110, 0x06A22BF4},
19868 {0xFC8B71AD, 0x0E4819AB, 0x17134E34, 0x72DAE863, 0xED15CB19, 0x60EAFF02, 0x84596490, 0x1EF33581} } ,
19869 { {0x3B8E351F, 0xD63A86C2, 0x33E0BB0B, 0x9840742C, 0x8C078526, 0x3D133DAC, 0xE7986197, 0x1A656D5F},
19870 {0x42E61859, 0xB05DF6C8, 0x809D7A12, 0x1C346250, 0xA651DFC5, 0xE2033DCA, 0x0ADE5657, 0x058B9E29} } } } ;
19871 static const fp12_t var_expected = { { { {0x4E153580, 0xF2939939, 0xADEA6261, 0x5A4B37EA, 0x7A610C84, 0x78DE31B5, 0x1A9FC4BC, 0x160AA314},
19872 {0x21CFCECB, 0xAC32A772, 0xF9856FA7, 0x7B07C205, 0xD5E9402A, 0x66DEFB75, 0x36B860CF, 0x1826C4D6} } ,
19873 { {0xF328C97E, 0x63FD9ADD, 0xCCB02994, 0x6293A8F9, 0x66AE16B3, 0x18A640C8, 0x95210CCF, 0x1C01658A},
19874 {0xD00FD9FA, 0x7E09C48A, 0xB8C3BC21, 0x94CB2B83, 0x3B9390FC, 0x7F5AFFC8, 0x42CB93B9, 0x0FFA9349} } } ,
19875 { { {0xC8CC57FA, 0x09C9C90C, 0x4D9A5865, 0x02F4C2BD, 0x63AE8458, 0x4710F4D6, 0x9205D984, 0x0D3CA91F},
19876 {0xEF35D595, 0x6B446CD2, 0x1BD2752C, 0x2FBCD8C8, 0xF1832B94, 0x64A537C9, 0x90C7C5C4, 0x03BAB054} } ,
19877 { {0x51F48C68, 0x635C4C56, 0xB209AD1C, 0x0173FB02, 0xF44A0B2C, 0xC9A8D9B8, 0xCFE4348B, 0x169DB51E},
19878 {0x00C272BC, 0xB1108338, 0xA020192B, 0x9E7AD5DD, 0x7B2D0DF0, 0xAE7752BB, 0x2053F212, 0x0E4B9B6A} } } ,
19879 { { {0x0CAF37E8, 0xCFB72C50, 0x7777368F, 0x47D9C6B4, 0x9689F33A, 0xAA1C6AA5, 0x1070B8AF, 0x021CD139},
19880 {0x8557FBE4, 0x1244D9FF, 0xC7355A03, 0x8BA31BF7, 0x562D07F7, 0xC8CB3066, 0xF2343F43, 0x1634D007} } ,
19881 { {0x792CCDDB, 0xA47EEFF7, 0x1D809E9A, 0xE6F1FE57, 0xCB961818, 0x275C75CD, 0xD37D4F1C, 0x11B9CD09},
19882 {0xF9B3EF8B, 0x244EDFF7, 0x0EC2667F, 0xECF5FD86, 0x0337BF22, 0x8D678897, 0xC64BD496, 0x11799C71} } } } ;
19884 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2741 a000");
19885 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2742 a001");
19886 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2743 a010");
19887 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2744 a011");
19888 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2745 a100");
19889 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2746 a101");
19890 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2747 a110");
19891 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2748 a111");
19892 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2749 a200");
19893 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2750 a201");
19894 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2751 a210");
19895 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2752 a211");
19898 static const fp12_t var_a = { { { {0xBE10E405, 0x697DBBE6, 0x9A866A78, 0xEA9B14A1, 0x6C936CFD, 0x94BAB45A, 0x1E0836F4, 0x1B43326E},
19899 {0x2DD80AA1, 0x95D804EC, 0xCE733103, 0x86623E2A, 0xA344A380, 0x74D15B36, 0x87EDF461, 0x072F1BAF} } ,
19900 { {0x63BB35AD, 0x390D37F9, 0xA13C4610, 0xBB41360D, 0x25B4B625, 0xF69C3A26, 0x1E98BF4B, 0x05D5D07E},
19901 {0x09A471AB, 0x6C9A2113, 0x47EA14BA, 0xAE04E2B0, 0x60567599, 0xDED5FEFE, 0x6F524746, 0x15013498} } } ,
19902 { { {0x19EDA8B2, 0x99F3338B, 0x2CBAABD9, 0x365412F5, 0xD563E365, 0xD34DB5EF, 0xBC7DF82E, 0x0BFBA71A},
19903 {0x63B9EDBD, 0xD71C1446, 0x6FF08BC4, 0x0B796060, 0x9AC7C026, 0xB0A52774, 0xF83D218D, 0x185AE868} } ,
19904 { {0x0C9AB8FD, 0xC6DD3815, 0x627A9CF7, 0xE4D5EC4F, 0xD95D4D69, 0x4F49257F, 0x0CF8528A, 0x16B2C2AC},
19905 {0x0A854022, 0x0F82698A, 0x0C615A29, 0xF68F7108, 0x4F82E6DA, 0x0222BF7B, 0x559888C4, 0x147D2ECC} } } ,
19906 { { {0xA91B66E3, 0x522945E6, 0xA70BB100, 0x8B619F28, 0xCEEE573B, 0xBA2A0B56, 0x24ACDBC1, 0x1F428581},
19907 {0x094100DA, 0x41A93305, 0x2252327F, 0x44F1BB64, 0xBBE9F95E, 0xB55E4162, 0x7D50D2B8, 0x04FFAEF2} } ,
19908 { {0x9D006251, 0x02FA6178, 0x9F5F8403, 0x0ED6DCA3, 0x90C4F5F5, 0x88FCBC10, 0xD8EA8FD4, 0x20743E17},
19909 {0xADC470E4, 0x533BAC4A, 0xF6643E4C, 0xFAA8598F, 0x5BAA5145, 0x60B7D195, 0xE4AE720C, 0x0372C085} } } } ;
19910 static const fp12_t var_b = { { { {0xD5DCBE5B, 0xFF41974B, 0x311B9821, 0x2B653765, 0x3DBE8870, 0xEA217D72, 0xFF02E8E6, 0x0A44E957},
19911 {0x845457CA, 0x6BBABB1C, 0x0E169724, 0xA309AA66, 0xED89EC6D, 0x219191D9, 0x7FA08104, 0x17F26EC0} } ,
19912 { {0x7E1942E7, 0x20D644A8, 0x80E6A3AB, 0x315BF88B, 0x33BC069D, 0x2DCA16F0, 0xEC959504, 0x04BE04FF},
19913 {0x5B72FAC9, 0x07926419, 0x2E0DB12E, 0x7B645D3F, 0x6D37AA00, 0xB08E9401, 0xC30BF307, 0x014353F5} } } ,
19914 { { {0x05C5446E, 0xA980DFE9, 0xF3BC5DB5, 0xDF0DABC0, 0x0D70867D, 0xE9B647BC, 0xF5E27524, 0x1302278B},
19915 {0x3EAD2B17, 0x312C121A, 0x5C6DBE1F, 0xC0B2CD7B, 0x181B5812, 0x7C8ECF4D, 0xE51C83C3, 0x044BE0FA} } ,
19916 { {0x18631E98, 0x97091233, 0x2D3DB4B5, 0x68AA760C, 0xA82C1113, 0xABF89FB2, 0x2E17B898, 0x05F7CEAF},
19917 {0x7A715BD7, 0x08F7CB44, 0xDC24048A, 0xCB6D8FE1, 0x6C26928A, 0x341A4EE6, 0x9B975656, 0x11DB73B2} } } ,
19918 { { {0xA2BC36FF, 0xF34E42AC, 0x15F982A4, 0xF30B3673, 0x23B6CE16, 0x2A2365AF, 0xADA13712, 0x184BC31D},
19919 {0x9ED8D987, 0x2C814C10, 0x343D230E, 0x10365AC6, 0x25A476E4, 0x66B4D924, 0x19274F27, 0x136ACF10} } ,
19920 { {0xD1AF9C22, 0x0C4E7AAD, 0xCEC5AB60, 0x04F85B89, 0xDA118482, 0x74F59DA6, 0x477E0A8B, 0x0255133E},
19921 {0x75790D77, 0x687FFCBB, 0x282B5621, 0x90831F6D, 0x40083490, 0x43229E15, 0x54AE1398, 0x0FD7BDDC} } } } ;
19922 static const fp12_t var_expected = { { { {0xE83425AA, 0x6A3C249A, 0x696AD256, 0xBF35DD3C, 0x2ED4E48D, 0xAA9936E8, 0x1F054E0D, 0x10FE4916},
19923 {0xA983B2EA, 0xD11D49CF, 0xC05C99F2, 0x447993C4, 0xB5BAB71B, 0x0D7416DC, 0x484D735F, 0x14601171} } ,
19924 { {0xE5A1F2C6, 0x1836F350, 0x2055A265, 0x89E53D82, 0xF1F8AF88, 0xC8D22335, 0x32032A47, 0x0117CB7E},
19925 {0xAE3176E2, 0x6507BCF9, 0x19DC638C, 0x32A08571, 0xF31ECB99, 0x2E476AFC, 0xAC46543F, 0x13BDE0A2} } } ,
19926 { { {0x14286457, 0x977253A2, 0x38FE4E37, 0xB8676734, 0xC7F35CEF, 0xA3CBBBB3, 0x069B830B, 0x1E1CE411},
19927 {0x250CC2A6, 0xA5F0022C, 0x1382CDA5, 0x4AC692E5, 0x82AC6813, 0x34165827, 0x13209DCA, 0x140F076E} } ,
19928 { {0xF4379A65, 0x2FD425E1, 0x353CE842, 0x7C2B7643, 0x31313C56, 0xA35085CD, 0xDEE099F1, 0x10BAF3FC},
19929 {0x9013E44B, 0x068A9E45, 0x303D559F, 0x2B21E126, 0xE35C5450, 0xCE087094, 0xBA01326D, 0x02A1BB19} } } ,
19930 { { {0x065F2FE4, 0x5EDB033A, 0x91122E5B, 0x985668B5, 0xAB378924, 0x9006A5A7, 0x770BA4AF, 0x06F6C263},
19931 {0x6A682766, 0xBC27E6F4, 0xEE150F84, 0x95DC609D, 0x96458282, 0x08DDB5BE, 0xA4298393, 0x16B84464} } ,
19932 { {0xCB50C62F, 0xF6ABE6CA, 0xD099D8A2, 0x09DE8119, 0xB6B37173, 0x14071E69, 0x916C8549, 0x1E1F2AD9},
19933 {0x384B6380, 0x91BBAF8F, 0xCE38E83E, 0xCB463A22, 0x1BA21CBD, 0xD7C98100, 0xD0005E75, 0x18BE672B} } } } ;
19935 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2753 a000");
19936 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2754 a001");
19937 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2755 a010");
19938 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2756 a011");
19939 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2757 a100");
19940 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2758 a101");
19941 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2759 a110");
19942 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2760 a111");
19943 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2761 a200");
19944 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2762 a201");
19945 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2763 a210");
19946 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2764 a211");
19949 static const fp12_t var_a = { { { {0x13003729, 0x0739B574, 0xBE0BB84B, 0xC6EC8E7E, 0x695666D2, 0xA8DDA583, 0x91894354, 0x1368ACB2},
19950 {0x0C38D8F8, 0xFFE0D1FC, 0xBE1EA2DE, 0xDB7C712C, 0xFABF5B13, 0x502BED72, 0xC196CC63, 0x210406D4} } ,
19951 { {0x14268845, 0xE0849049, 0x8A16DF71, 0x6B5B1356, 0xAE7B417C, 0x560917AA, 0x9FCEE860, 0x1B9B3904},
19952 {0xB114FFCF, 0xF8E012E0, 0x3A53FC91, 0x89C42E37, 0xD1011DB3, 0x96CA79F1, 0x96219438, 0x17E581EA} } } ,
19953 { { {0xC01F0610, 0xC0F2602F, 0x186586FE, 0xAD73F845, 0xC62AF3A2, 0xA78A3FAD, 0x47D71DBE, 0x08CE93FD},
19954 {0xF100B1F4, 0x2C13FD24, 0x225F62F5, 0x20A46920, 0x829D4428, 0x7B9FC828, 0x07B69A59, 0x04A230A5} } ,
19955 { {0x464005D5, 0x7EADAB86, 0x8BF93490, 0xDF080076, 0x0E8E39E0, 0xEFC6387B, 0xDDFE8169, 0x046BD058},
19956 {0x98A51765, 0xEC78508E, 0x3A84ECA9, 0xADC79F73, 0x08CC16BB, 0xB67F7DF5, 0xC835FFF6, 0x0C19DFD9} } } ,
19957 { { {0x12003D82, 0x5E4E033F, 0x49A9FA69, 0xBE6D5897, 0x2221D62B, 0xC42D8528, 0xB8BDC22F, 0x1277FACB},
19958 {0xB43C01F0, 0x4D88BEEC, 0x87FFC437, 0x4E0128FA, 0xA2FFFB57, 0x879E9219, 0x51445B77, 0x07EC3F81} } ,
19959 { {0xD1CCD1D8, 0x80F1487A, 0xF76C4BD2, 0xD0230C0E, 0xE18004F3, 0xE0E04915, 0x6BFB61A6, 0x0A2D8011},
19960 {0x915CA2EE, 0x15463DE3, 0x4F592705, 0xB7B1ED86, 0xCCB3013A, 0x572B6A6F, 0x94A20339, 0x0BAB8E8E} } } } ;
19961 static const fp12_t var_b = { { { {0x70D90604, 0xA74551C2, 0x7AB04DCC, 0x986A42A5, 0x663B45BA, 0x9E6B560B, 0x0C60AFFE, 0x1838B9ED},
19962 {0xBDC8683C, 0x75503EA6, 0x16B544F4, 0x0AA16E61, 0x443D2FAF, 0xCE0B327F, 0x8773FC9D, 0x04EDF88D} } ,
19963 { {0x1CEE7431, 0x679BED31, 0xF7A2A205, 0x3C263B07, 0x0FA07C69, 0x6A79009D, 0x6FA4FB63, 0x02347FBC},
19964 {0x0542D896, 0xBDEEC936, 0xA221227C, 0x575BF8A8, 0x069AAE64, 0xA5CAD3D7, 0xE095A177, 0x16622017} } } ,
19965 { { {0x4238DBD6, 0xC3F55832, 0xD3869320, 0x95071172, 0x798F65DB, 0x354C30E3, 0xAADBF0D3, 0x11666668},
19966 {0x75568E65, 0x04227EDA, 0xF7E86975, 0xBAD73049, 0x4F41C9AF, 0x1C986FD5, 0x13EA023C, 0x1BB9E400} } ,
19967 { {0x901A82E9, 0x261A09AE, 0xB201C6F4, 0x311B3F62, 0x814B5852, 0x73D537D2, 0x12CC32DF, 0x114DFB8F},
19968 {0x5A314B1B, 0xF8B871D1, 0x5BE0308B, 0x3099D858, 0x9DF3B8AD, 0xFA15CDDD, 0x95AEF48D, 0x07AD6FBA} } } ,
19969 { { {0xF1FC36EE, 0x839FE3D9, 0x7B6C5AA4, 0x7783F12B, 0x444764F8, 0x3BEBF459, 0x3C3B23FE, 0x1DC13C5A},
19970 {0x436B13D5, 0xF857FB8A, 0x52B8AF15, 0x4C80E0FB, 0xAC8A4C57, 0x2B2D1126, 0x5BC4D3BD, 0x06B844EA} } ,
19971 { {0x931CD362, 0x6100D7F5, 0x52237AA4, 0xFB5008BC, 0x1EF7C39E, 0x6CBD3E80, 0xFC3CE690, 0x16467074},
19972 {0xFAD96A8D, 0xCE915CDA, 0xA24CF09C, 0x0CA5B221, 0x79C96060, 0xDCCA3B14, 0x5B03FEDA, 0x242AAD84} } } } ;
19973 static const fp12_t var_expected = { { { {0xA2273138, 0x06F463B1, 0x435B6A92, 0x8FA34BD9, 0x031B2120, 0xC4A69CF8, 0xC5289357, 0x20535747},
19974 {0x4E7070BC, 0x8A909355, 0xA7695DEA, 0xD0DB02CB, 0xB6822B64, 0x8220BAF3, 0x3A22CFC5, 0x1C160E47} } ,
19975 { {0xF7381414, 0x78E8A317, 0x92743D6C, 0x2F34D84E, 0x9EDAC513, 0xEB90170D, 0x3029ECFC, 0x1966B948},
19976 {0xABD22739, 0x3AF149AA, 0x9832DA15, 0x3268358E, 0xCA666F4F, 0xF0FFA61A, 0xB58BF2C0, 0x018361D2} } } ,
19977 { { {0x7DE62A4D, 0xA3FD07FD, 0x44DEF3F1, 0x798DE6D2, 0x4C9B8DCF, 0x2C725C4A, 0xDCFB2CED, 0x1C8B9216},
19978 {0x7BAA23A2, 0xCEF17E4A, 0x2A76F993, 0xC6EE38D6, 0x335B7A80, 0x193BA5D3, 0x33CC981F, 0x0E0BB127} } ,
19979 { {0xB62582FF, 0xFF93A1D7, 0xD9F76DAF, 0x0F0DC113, 0x8D42E197, 0x36254E28, 0x0B324E8C, 0x1841394C},
19980 {0x3E73CC4A, 0xF3BFDEBD, 0xDEA4BC1D, 0x7D2DC71A, 0x6AD85E0E, 0xBC69B017, 0x32870B68, 0x046C701F} } } ,
19981 { { {0x200406A7, 0x81AE1F65, 0xCE3D9FD8, 0xA80A676B, 0xDDDA713B, 0x4275DE4E, 0xBC829E33, 0x19DA22F3},
19982 {0x70D0EE1B, 0x5530C362, 0x35471521, 0x018047FF, 0xF675AF00, 0x5C7180F2, 0xF57F87BA, 0x0133FA96} } ,
19983 { {0x3EAFFE89, 0xC6F07085, 0xA548D141, 0x35F40352, 0xC288415D, 0x2E575815, 0xAFBE7B18, 0x190A741E},
19984 {0x96833874, 0xEDB4E108, 0xAD0C367B, 0x0C2D3B64, 0x52E9A0E3, 0x34957CDB, 0x799E0460, 0x0CA4458C} } } } ;
19986 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2765 a000");
19987 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2766 a001");
19988 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2767 a010");
19989 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2768 a011");
19990 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2769 a100");
19991 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2770 a101");
19992 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2771 a110");
19993 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2772 a111");
19994 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2773 a200");
19995 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2774 a201");
19996 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2775 a210");
19997 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2776 a211");
20000 static const fp12_t var_a = { { { {0xE45B5B90, 0xACA8D7A5, 0x9CD5633E, 0xDAFBF8F9, 0xADA09561, 0x539EB221, 0xE8818AFA, 0x21E8E3AB},
20001 {0x8F609450, 0x58EF50EC, 0x4FF46E60, 0x8518C9B8, 0x412C2D08, 0x7E7343C5, 0x098EFEE2, 0x0DA98CFB} } ,
20002 { {0x8F12B9B2, 0xD10641C4, 0xFDD5E0FD, 0x9FD25783, 0xCE2AFBFB, 0x66996E0E, 0x55AE7928, 0x0C5798F0},
20003 {0x4DBFF8F4, 0x940781FE, 0x9ED1AF72, 0x74018830, 0x82B86445, 0x4A6C88D0, 0x5A1C6E89, 0x0084A287} } } ,
20004 { { {0x83DDFD0C, 0xD7999ACE, 0x5C6A3EFF, 0x72B037BA, 0x9EED84AB, 0x60A5C4B1, 0x57A40D48, 0x1305D870},
20005 {0xC1639801, 0x388AD919, 0x1522C7F3, 0x0ABD5862, 0xF8CC2A6A, 0x73E414E1, 0x034D8784, 0x07A68DC6} } ,
20006 { {0xEC6E3FEF, 0x4705C14D, 0xDD1BA7AD, 0xE0694D5F, 0x7A82E71E, 0x1C86DD7E, 0xC4D45F8D, 0x152ACD11},
20007 {0xBA388811, 0xFA50C650, 0x798EDBD5, 0x910F093B, 0xA1F1DB37, 0x84B8C3A0, 0x79F66E74, 0x09043E51} } } ,
20008 { { {0x375E0BF5, 0xF51F73DA, 0xE40600A3, 0x503CC830, 0xFF93186B, 0x46A907BE, 0xB18D4B43, 0x18964E9F},
20009 {0x427694E6, 0x8A6F5142, 0xCD7A8D0E, 0xECBB74BD, 0xB9A7AAD9, 0xED2B9F16, 0x72763064, 0x1BCD62B2} } ,
20010 { {0x10F8657C, 0xF7FD429F, 0x182B2F39, 0xAED70247, 0x09AEB0B8, 0x1261BE0B, 0xB34FA4A7, 0x0E4F55DE},
20011 {0xA971EE5B, 0x814426E3, 0x595665CC, 0x5FCD6637, 0xBD390FE5, 0xCE889483, 0xE1016E3C, 0x12315493} } } } ;
20012 static const fp12_t var_b = { { { {0x660E6242, 0x1A0BEB78, 0x5CBBE004, 0x1792E327, 0xB60DA733, 0x625BB18C, 0xDE19A03C, 0x0A1B0578},
20013 {0x796DE50E, 0x608878CD, 0xA0EB2C10, 0xCE35CDC1, 0x6A8B11A4, 0x45871156, 0x3DF4C430, 0x24BF8E9E} } ,
20014 { {0x65C85151, 0xB1120716, 0xD66DB630, 0xCAEE14CA, 0x637160AF, 0x01089DC2, 0xC8B875C1, 0x17F6EAB2},
20015 {0x8269C5EF, 0xF05ECF98, 0x67B032FE, 0x7CD82565, 0xBEE95728, 0xC5D61133, 0xBA22E650, 0x0238A1FB} } } ,
20016 { { {0x7B72828C, 0xC95131B7, 0xECCBEFF7, 0x7F3CF000, 0xADE811F3, 0xAE9A31FA, 0xC61A2F42, 0x129000BB},
20017 {0xCFF2BFEA, 0xE463B4FA, 0xB4159A4B, 0x0D91307B, 0xF5DA1D0C, 0x795F1F42, 0xCE266298, 0x1A0D5DB5} } ,
20018 { {0x534E9181, 0x1B898370, 0x418284FB, 0x818F3A0A, 0x71A47771, 0x57B584AA, 0xAC9BAFE6, 0x10414F71},
20019 {0xAEF3E4E0, 0x2DBE46B1, 0xCBD78189, 0x61B0ED26, 0x8DEEEF9B, 0xC6739229, 0x2CB1297F, 0x179BF369} } } ,
20020 { { {0xDB62535D, 0xF20C7C0D, 0xBBB0B850, 0xDC699836, 0xCBC6DF1D, 0x55057C5F, 0xD057EE34, 0x040E6CA2},
20021 {0xAB833968, 0xF131B278, 0x314E37F8, 0x01ECD7FB, 0x428D40E5, 0xC9C6ABF0, 0xCBDEC0FC, 0x00F5B182} } ,
20022 { {0x404C50DB, 0x94CF46F8, 0x7F3A15D1, 0x397AD3E5, 0x1A338905, 0xE47C9673, 0xC777640F, 0x16DF1F66},
20023 {0x93B7D7EC, 0x34298A8C, 0xACBB53A5, 0xF70B612D, 0x11C9D5A9, 0x84128EBD, 0x9F7C2CEF, 0x07FB0DE1} } } } ;
20024 static const fp12_t var_expected = { { { {0x7E4CF94E, 0x929CEC2D, 0x4019833A, 0xC36915D2, 0xF792EE2E, 0xF1430094, 0x0A67EABD, 0x17CDDE33},
20025 {0x15F2AF55, 0x9F66D81F, 0xAF094263, 0x1803FBF6, 0xD6A11B6C, 0xF3207FEE, 0x0B9A3AB3, 0x0E0D62DF} } ,
20026 { {0x294A6874, 0xC6F43AAE, 0x27682AE0, 0x360542B9, 0x6AB99B54, 0x1FC51DCC, 0xCCF60369, 0x198412BF},
20027 {0xCB563318, 0x4AA8B265, 0x37217C87, 0x584A62CB, 0xC3CF0D25, 0x3ECAC51C, 0xDFF9883A, 0x236F650D} } } ,
20028 { { {0x086B7A80, 0x0E486917, 0x6F9E4F08, 0xF37347B9, 0xF10572B7, 0xB20B92B6, 0x9189DE05, 0x0075D7B4},
20029 {0xF170D82A, 0xFB27241E, 0x610D2DBA, 0x5E4D27E6, 0x02F20D66, 0xB4B9431F, 0x752724ED, 0x12BC9492} } ,
20030 { {0x991FAE6E, 0x2B7C3DDD, 0x9B9922B2, 0x5EDA1355, 0x08DE6FAD, 0xC4D158D4, 0x1838AFA6, 0x04E97DA0},
20031 {0x0B44A344, 0x73927F9F, 0xADB75A60, 0x907F1C14, 0x1402EBA4, 0x78797EF7, 0x8D4544F6, 0x168BAF6A} } } ,
20032 { { {0x5BFBB898, 0x0312F7CC, 0x28554853, 0x73D32FFA, 0x33CC394D, 0xF1A38B5F, 0xE1355D0E, 0x1487E1FC},
20033 {0x96F35B7E, 0x993D9EC9, 0x9C2C5515, 0xEACE9CC2, 0x771A69F4, 0x2364F326, 0xA6976F68, 0x1AD7B12F} } ,
20034 { {0xD0AC14B4, 0x0A2DFBA6, 0x98F1197C, 0xD67D2E61, 0xEF7B27BB, 0xE8197517, 0x2BD84098, 0x1C939AFA},
20035 {0x15BA166F, 0x4D1A9C57, 0xAC9B1227, 0x68C20509, 0xAB6F3A3B, 0x4A7605C6, 0x4185414D, 0x0A3646B2} } } } ;
20037 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2777 a000");
20038 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2778 a001");
20039 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2779 a010");
20040 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2780 a011");
20041 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2781 a100");
20042 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2782 a101");
20043 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2783 a110");
20044 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2784 a111");
20045 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2785 a200");
20046 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2786 a201");
20047 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2787 a210");
20048 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2788 a211");
20051 static const fp12_t var_a = { { { {0xF00BD7C3, 0x87786AC5, 0xF315EEA0, 0x3CC2D94F, 0xF95D56A6, 0x3CD059B2, 0x2587AFD8, 0x042062AC},
20052 {0x75713321, 0x90CA0876, 0x419EC437, 0x70D9BEDF, 0x372DFC66, 0xBFC34E90, 0xDD6384A1, 0x22D13BF1} } ,
20053 { {0x96D897AB, 0xC071D944, 0xBA9C3E32, 0x3E9B7FD3, 0x461DD4D2, 0x195FDAB0, 0xC0C067F2, 0x0B78257D},
20054 {0x9C3059D2, 0x0D063228, 0x34FFDA06, 0x073FE872, 0x328EA0DA, 0x882A8BFB, 0xBBC24DCE, 0x1E518A24} } } ,
20055 { { {0x21EEE594, 0xD4F66639, 0xBADB13A4, 0x4F5414C4, 0x1E78947F, 0x8EE46A70, 0xAD5A2A29, 0x15746CF9},
20056 {0x95E15F86, 0x85A7DAAA, 0x0AC33F79, 0x3D4DF0E0, 0xBED933FC, 0x41BAF882, 0x6C707A8E, 0x0E0A71B8} } ,
20057 { {0xBD5D7E26, 0x7024A017, 0x18E35A15, 0x50D2A8EE, 0xDD76DDE5, 0xACCCD718, 0x41DED7C3, 0x0A4E26E5},
20058 {0x2EAECEDB, 0xB66193D5, 0x89F9E0B0, 0x7D0C8888, 0xD9E65EE0, 0x8A33F115, 0xE73A22DF, 0x11C7DFBB} } } ,
20059 { { {0xD6DDE84E, 0x5B0B096D, 0x39162996, 0x0FC12450, 0x22F3AB14, 0x8FF9205A, 0x90710615, 0x0BE5F847},
20060 {0x74CD36C8, 0xD9E577DB, 0xB52DD8CB, 0x30E5DEFC, 0xBF459467, 0xD37A78D3, 0x2034EF68, 0x0A80ABBE} } ,
20061 { {0x1B9A6B8D, 0x5DBEBDD0, 0xC27B7732, 0x734B1CB5, 0xC8670A21, 0xB053CA51, 0x702BA8B7, 0x13BB6123},
20062 {0xB353C237, 0x90ECE1A8, 0xD4B534CC, 0xBDAEB2B3, 0xED0F6CC6, 0x5638ED8A, 0x8C0A3E13, 0x03BC5D35} } } } ;
20063 static const fp12_t var_b = { { { {0x7803933E, 0x9F60777E, 0x970D521A, 0x36266C3C, 0xEDC0BB7D, 0x395E8F6F, 0xB562E556, 0x10C63223},
20064 {0x7902F181, 0x45480054, 0x6A03D41F, 0x4EFFB0AA, 0x20B8DE0F, 0x8CCADCA2, 0x2050F29B, 0x159195E3} } ,
20065 { {0x1AA04DAE, 0x4F3AF5FC, 0xDF087BD4, 0x464B98F5, 0xEE2B3AA9, 0xC57AA243, 0x76F92A8E, 0x0A238339},
20066 {0x92185967, 0xFBF85121, 0x3DF30ED3, 0x3267155D, 0x56DA4956, 0xBBA9AE6A, 0x12D0FEEC, 0x1851642B} } } ,
20067 { { {0x6EDB9B5F, 0xC7C3C970, 0xFE3D82E9, 0x1E4EEB13, 0x68E7099A, 0x88CD0735, 0x86B56C0D, 0x219C5156},
20068 {0x0C228206, 0x6E3505DD, 0x511D7B6F, 0xE4C493A2, 0xCB0B4DF9, 0xDD1164EE, 0x16DCA181, 0x0B3487E4} } ,
20069 { {0x21D6D309, 0xF1B78B7C, 0x9960505A, 0x3770606F, 0x381360BC, 0x72839B76, 0x7B8A9B24, 0x04A287CB},
20070 {0x34C8D1EC, 0x64803A8A, 0xEC248129, 0x1D1A7450, 0xFDAA7FC3, 0x58BC774F, 0x219D5500, 0x0203F285} } } ,
20071 { { {0x2036790D, 0xE9246BCF, 0x945725B4, 0x6E4D4D4C, 0x7A801D9E, 0xD915CDCD, 0xE9EA4FA8, 0x14098445},
20072 {0x96A19249, 0xB5B62BA9, 0x920801AF, 0x5ABB10B6, 0xA7AFEBDB, 0x9114B14D, 0x686374DE, 0x0F71649E} } ,
20073 { {0x99F6A790, 0x21792AC3, 0x168D0FE2, 0x9A41D0A2, 0x8D811D38, 0xFB8265F8, 0x2616A806, 0x0A51398E},
20074 {0x00020082, 0x631E3795, 0x0872D98A, 0xEF19734D, 0xC87A6FDC, 0xCB4BE773, 0x20F5903C, 0x0C9AD3A4} } } } ;
20075 static const fp12_t var_expected = { { { {0x78084498, 0x8F17F347, 0x5C089C99, 0x67BD6D13, 0x0B9C9B31, 0xBDA617C3, 0xB024CA83, 0x187D950A},
20076 {0xFC6E41A0, 0x4B820821, 0xD79AF018, 0x21DA0E34, 0x16751E57, 0x32F871EE, 0xBD129206, 0x0D3FA60E} } ,
20077 { {0x7C3849FD, 0x7136E348, 0xDB93C25E, 0xF84FE6DD, 0x57F29A28, 0x53E5386C, 0x49C73D63, 0x0154A244},
20078 {0x0A18006B, 0x110DE107, 0xF70CCB32, 0xD4D8D314, 0xDBB45783, 0xCC80DD90, 0xA8F14EE1, 0x060025F9} } } ,
20079 { { {0xB3134A48, 0xB4329CC8, 0xBC9D90CE, 0x922629B0, 0xB5918AED, 0xC04BB0BA, 0x66A4BE1D, 0x18FB8025},
20080 {0x89BEDD80, 0x1772D4CD, 0xB9A5C40A, 0x58895D3D, 0xF3CDE602, 0x64A99393, 0x5593D90C, 0x02D5E9D4} } ,
20081 { {0x9B86AB1D, 0x7E6D149B, 0x7F8309BA, 0x1962487E, 0xA5637D29, 0x3A493BA2, 0xC6543C9F, 0x05AB9F19},
20082 {0xF9E5FCEF, 0x51E1594A, 0x9DD55F87, 0x5FF21437, 0xDC3BDF1D, 0x317779C5, 0xC59CCDDF, 0x0FC3ED36} } } ,
20083 { { {0xB6A76F54, 0x18E69D9E, 0xA4BF03F5, 0x0294D703, 0xA8738D7E, 0x7117A00C, 0xE686B66E, 0x1CFFD883},
20084 {0xDE2BA492, 0xCB2F4C31, 0x2325D72F, 0x374BCE46, 0x1795A894, 0xFC9A1506, 0xF7D17A8B, 0x2032ABA1} } ,
20085 { {0x81A3C3FD, 0x3C45930C, 0xABEE6750, 0xD9094C13, 0x3AE5ECE8, 0xB4D16459, 0x4A1500B0, 0x096A2795},
20086 {0xB351C1C8, 0xD4CEAA13, 0xCC425B55, 0x2FB63F66, 0x2494FCF2, 0x45215397, 0xAB14ADD8, 0x1C44EE13} } } } ;
20088 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2789 a000");
20089 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2790 a001");
20090 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2791 a010");
20091 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2792 a011");
20092 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2793 a100");
20093 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2794 a101");
20094 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2795 a110");
20095 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2796 a111");
20096 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2797 a200");
20097 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2798 a201");
20098 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2799 a210");
20099 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2800 a211");
20102 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20103 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20104 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20105 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20106 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20107 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20108 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20109 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20110 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20111 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20112 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20113 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20114 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20115 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20116 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20117 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20118 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20119 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20120 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20121 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20122 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20123 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20124 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20125 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20126 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20127 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20128 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20129 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20130 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20131 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20132 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20133 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20134 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20135 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20136 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20137 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20139 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2801 a000");
20140 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2802 a001");
20141 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2803 a010");
20142 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2804 a011");
20143 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2805 a100");
20144 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2806 a101");
20145 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2807 a110");
20146 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2808 a111");
20147 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2809 a200");
20148 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2810 a201");
20149 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2811 a210");
20150 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2812 a211");
20153 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20154 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20155 { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
20156 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20157 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20158 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20159 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20160 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20161 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20162 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
20163 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20164 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20165 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20166 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20167 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20168 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20169 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20170 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20171 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20172 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20173 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20174 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20175 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20176 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20177 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20178 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20179 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20180 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20181 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20182 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20183 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20184 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20185 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20186 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20187 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20188 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20190 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2813 a000");
20191 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2814 a001");
20192 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2815 a010");
20193 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2816 a011");
20194 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2817 a100");
20195 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2818 a101");
20196 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2819 a110");
20197 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2820 a111");
20198 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2821 a200");
20199 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2822 a201");
20200 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2823 a210");
20201 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2824 a211");
20204 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20205 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20206 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20207 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20208 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20209 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20210 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20211 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20212 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20213 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
20214 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20215 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20216 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20217 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20218 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20219 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20220 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20221 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20222 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20223 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20224 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20225 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20226 { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
20227 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20228 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20229 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20230 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20231 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20232 { { {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F},
20233 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
20234 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20235 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20236 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20237 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20238 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20239 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
20241 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2825 a000");
20242 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2826 a001");
20243 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2827 a010");
20244 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2828 a011");
20245 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2829 a100");
20246 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2830 a101");
20247 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2831 a110");
20248 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2832 a111");
20249 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2833 a200");
20250 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2834 a201");
20251 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2835 a210");
20252 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2836 a211");
20255 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20256 {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F} } ,
20257 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20258 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20259 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20260 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20261 { {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F},
20262 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20263 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20264 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20265 { {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F},
20266 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } } } ;
20267 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20268 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
20269 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20270 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20271 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20272 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20273 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20274 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20275 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20276 {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F} } ,
20277 { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
20278 {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F} } } } ;
20279 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20280 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
20281 { {0x0000010A, 0x22000000, 0x00000113, 0x4FCE0000, 0x00000075, 0x2EDC3D00, 0x80000018, 0x07EF7F1F},
20282 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
20283 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
20284 {0xFFFFFF09, 0x84FFFFFF, 0xFFFFFF00, 0x1152FFFF, 0xFFFFFF93, 0x8B58107F, 0xBFFFFFE9, 0x1D33E562} } ,
20285 { {0x0000010A, 0x22000000, 0x00000113, 0x4FCE0000, 0x00000075, 0x2EDC3D00, 0x80000018, 0x07EF7F1F},
20286 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } } ,
20287 { { {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F},
20288 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
20289 { {0x0000010A, 0x22000000, 0x00000113, 0x4FCE0000, 0x00000075, 0x2EDC3D00, 0x80000018, 0x07EF7F1F},
20290 {0x0000010A, 0x22000000, 0x00000113, 0x4FCE0000, 0x00000075, 0x2EDC3D00, 0x80000018, 0x07EF7F1F} } } } ;
20292 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2837 a000");
20293 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2838 a001");
20294 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2839 a010");
20295 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2840 a011");
20296 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2841 a100");
20297 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2842 a101");
20298 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2843 a110");
20299 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2844 a111");
20300 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2845 a200");
20301 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2846 a201");
20302 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2847 a210");
20303 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2848 a211");
20306 static const fp12_t var_a = { { { {0x8C23A1C2, 0xDECE1424, 0xF4A69A01, 0x1172E974, 0x0EB0E3C5, 0x5785FF1C, 0xC936992E, 0x01283ED3},
20307 {0x042D5476, 0xF4394E43, 0x9A4CB661, 0x76E54D50, 0xACA88AF0, 0x9A32D130, 0x155DA24D, 0x0ACEF4C4} } ,
20308 { {0x3E5DDB80, 0x0E17E795, 0xC44DFA35, 0x63AD4C75, 0xC8C5BB8C, 0x91877E8F, 0xA80A9446, 0x12229332},
20309 {0x4DF6D348, 0xF4813BA9, 0x4917A506, 0x95ABF1CC, 0xD807B43C, 0xEF1AAFB2, 0xF188636E, 0x24ABB99C} } } ,
20310 { { {0x351C3CDF, 0x6F7B79A5, 0xD965DC48, 0xEC1DD7DC, 0x4E7E5528, 0x5DE0BCB4, 0x41A20A19, 0x02014FF5},
20311 {0x5794B65C, 0xF54323EB, 0xA07054F4, 0x5827576E, 0xED0A91E5, 0xA1BAA35F, 0x57F0E4F9, 0x197FEE6B} } ,
20312 { {0x69798C57, 0x41F98C6C, 0x1436E52C, 0x3B30F0B1, 0x415DD10A, 0x0EB4A55B, 0x55D9EAFF, 0x245B1DDD},
20313 {0xD847525C, 0x4B9DAA91, 0xA80F6798, 0xD0E05BDF, 0xF0804B93, 0x7D3665F4, 0x6F6B6ED4, 0x0EF43363} } } ,
20314 { { {0x604738F0, 0x03A86C95, 0xD7F3C948, 0x80F8CF55, 0xD5F35405, 0x0A5B2B49, 0x71BC1A36, 0x088DA215},
20315 {0x28A8D8C2, 0x4563DF1C, 0xABCAEA52, 0xAB6D615F, 0xBD9B23B7, 0x9FE58ECA, 0xF232EBC3, 0x1C342ABC} } ,
20316 { {0x30CA8A1B, 0x6A35D029, 0x94C6E3EF, 0x155F737B, 0xF89C5350, 0x9FA67160, 0x7E5B7731, 0x2049E935},
20317 {0x9C569DE0, 0x08E1B695, 0x5522D0BB, 0x310A477E, 0xD17421FB, 0x190BAACF, 0x31B10CE7, 0x20A4D473} } } } ;
20318 static const fp12_t var_b = { { { {0x7898EA9A, 0x8C95A55E, 0x6F29FA88, 0xB9604DAE, 0xE449C7B6, 0xD168B109, 0x03260942, 0x075AA802},
20319 {0x8668680F, 0x8B518170, 0x8D7FC002, 0xF9318F4F, 0x27F3022F, 0x3B560A83, 0x8A428CCE, 0x0A7E2D35} } ,
20320 { {0x580A14FB, 0x09A9E30D, 0xE859F078, 0x29C02BAA, 0xAE707FE4, 0x88C59276, 0xE3DD6FF0, 0x0B0F9246},
20321 {0x88098258, 0x17FA71C1, 0xBD0BFF18, 0xA4A5D87F, 0x38DC6CA0, 0x3CB964DE, 0x43E96A63, 0x0B7DBCE4} } } ,
20322 { { {0x3202255A, 0xAF137C17, 0xEBFE69EE, 0x782ECA17, 0xDBEC156C, 0xDA0D3D5F, 0xD45FE5E0, 0x24070114},
20323 {0xF98D83E6, 0xDFDCE41E, 0x0401C3D3, 0x36427A47, 0xF96980C9, 0x0A6AFF0C, 0x1A4BA6BD, 0x216A891E} } ,
20324 { {0x9E8B2030, 0xFFBAA7FF, 0xD6E7C7A6, 0x4CE365ED, 0x1E0BE28C, 0xF055A6CC, 0x7D7B2019, 0x1688BB12},
20325 {0x33E88BA2, 0x07F3E670, 0xAF16C432, 0x5F66729E, 0x7A5B0462, 0x2CFF3787, 0xA55F4BE0, 0x15277677} } } ,
20326 { { {0xF11C4E35, 0xFF3CD686, 0xE8A182FC, 0x9C713BA1, 0xC6A11427, 0xDA0A58D5, 0x49C2F2A2, 0x0CBF260F},
20327 {0xC509BA22, 0xCA2E7CC2, 0xF375C54F, 0x2318DF2E, 0x86C2EB2C, 0xFA1BCA2F, 0xD2D4DE3E, 0x0499C7DD} } ,
20328 { {0xCD709F6C, 0x47AE5D09, 0x90E81DB7, 0x6E687B74, 0xD86DCC60, 0xBBAA387B, 0x4B7B244E, 0x12F3DDF4},
20329 {0x23E8B681, 0x7C650711, 0xCCD4D7C7, 0x8D042855, 0x97587019, 0xCB839F3F, 0x3E3B7C75, 0x2462B772} } } } ;
20330 static const fp12_t var_expected = { { { {0x7FB2E582, 0xD509F0BD, 0x2FA506D3, 0x441187C0, 0x4D8F7A0F, 0xD33FED43, 0x893DF4F8, 0x11AF7C0F},
20331 {0xF2511FEE, 0x8078AA42, 0x3BDC6D01, 0xCA187711, 0xD5174E59, 0x1EEEBFB5, 0x7DAB5A55, 0x23D0F4B3} } ,
20332 { {0x7FB6CFEC, 0x30093234, 0x93A5000D, 0x12D5D56C, 0x88FA45F8, 0x4902BDB2, 0x473E5E09, 0x0F621AB1},
20333 {0xAA753370, 0x4CBD3B3C, 0x789D0552, 0xA136741D, 0xEEB5D1F1, 0x6233D6E4, 0x41BE4186, 0x1D6C2D7E} } } ,
20334 { { {0x8AB7FF3C, 0xCF263BA6, 0xF5864460, 0xD4AD673F, 0x2793A67C, 0x14AAA44C, 0x583C32C9, 0x22C612E1},
20335 {0x11FAE1DA, 0x44075A23, 0xE220D6FC, 0x00F6742E, 0xDEC86B91, 0x04E8316E, 0xE607257B, 0x0553C4EF} } ,
20336 { {0xB41B862F, 0xCE8E5C5A, 0x179014AE, 0xCCDF1D70, 0x762045C6, 0x98D2CA67, 0xC87C9AC3, 0x13AA9668},
20337 {0xFF3A0FA0, 0x6D95B31F, 0xB70C0F6D, 0xC451BD4E, 0x8F6BE4AD, 0x43A47D67, 0x7E8E9432, 0x0C1E9617} } } ,
20338 { { {0x3A684497, 0xDF669198, 0xF17FC32E, 0xF1A345A4, 0x7EEF9763, 0xDCCDF72B, 0x10BEDCFA, 0x02D0829F},
20339 {0x0000860A, 0x191A9571, 0x9FDC0B4C, 0x26CE4B54, 0x5D7AA96C, 0x88544338, 0x522CCA5A, 0x1C6EAEFB} } ,
20340 { {0xF94C7B41, 0xB0E9CE33, 0xA04BFC5C, 0xB512B469, 0x1339A7EB, 0x34245693, 0xBB3157B1, 0x09014E13},
20341 {0x322A408D, 0xDC811E73, 0x09EF5677, 0x842F6C3E, 0xB1626BBA, 0xD0D91AD3, 0x318AAFA4, 0x06B33A71} } } } ;
20343 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2849 a000");
20344 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2850 a001");
20345 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2851 a010");
20346 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2852 a011");
20347 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2853 a100");
20348 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2854 a101");
20349 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2855 a110");
20350 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2856 a111");
20351 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2857 a200");
20352 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2858 a201");
20353 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2859 a210");
20354 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2860 a211");
20357 static const fp12_t var_a = { { { {0xD61F078F, 0x855D91F2, 0xA693E54C, 0x57011199, 0x9556762A, 0x52C043BD, 0x852733D4, 0x047A7D1D},
20358 {0x099F96CF, 0x7E9B880A, 0x083C17BF, 0x8F9530F0, 0x41F20998, 0x796E4EB6, 0xF8D4E580, 0x1CBC7B0C} } ,
20359 { {0xDD10AFE3, 0x75F9E327, 0xBD7D3E9C, 0x3081FF49, 0xB3E33A4C, 0x7594BE51, 0x81F5474F, 0x1F39A0C9},
20360 {0x62BC1374, 0x14255177, 0xD5527D01, 0x162BB2C7, 0x6A5792A4, 0xF4AC3A17, 0xD46CDE6F, 0x1B4B4E24} } } ,
20361 { { {0x9EEAE0CE, 0x992C90F5, 0xA9A52A83, 0x331DABEB, 0xEBD675F6, 0xF6877BBC, 0x02D18DC4, 0x0F9B4833},
20362 {0xD7FB6A24, 0x51BA1CC2, 0xE1B6BD90, 0x6E94571A, 0x73E8C041, 0x24E923D4, 0xA04E1003, 0x14B208C6} } ,
20363 { {0xC2FF9832, 0x17DD3078, 0x3EE27C47, 0xD53CC516, 0xC5A1CEC6, 0x74F9B9AA, 0x5DD173FD, 0x18D2CC2C},
20364 {0xBB6830A2, 0x7501CF79, 0xF4871FFB, 0xF424E275, 0xD33F6369, 0xB4EF648D, 0xD29C95E3, 0x1565A4BB} } } ,
20365 { { {0xB5FDF601, 0x3E697192, 0x3640F7A1, 0x245E938A, 0x42AE1260, 0xA4111F78, 0xAC3628DC, 0x19423EE7},
20366 {0x41D3FECD, 0x03F43A71, 0xED48A0BB, 0x8E0A8BE5, 0x5FA7B3C4, 0x85FAF973, 0xC8DED857, 0x07BAB4B5} } ,
20367 { {0x9DAD7B8E, 0x71FEBE36, 0xB3667F9A, 0xC82DA8A8, 0x226F7BCD, 0x911E3E88, 0xAA92E339, 0x0926F101},
20368 {0xB66ABA01, 0x8DA531B9, 0x9049FDD1, 0xBAAC5F7A, 0xB6DB014C, 0xD2AA8E0E, 0x9962A703, 0x061B645C} } } } ;
20369 static const fp12_t var_b = { { { {0xDF8FCBF3, 0xB86E142B, 0xE2DC7533, 0x21C64581, 0x1BF4AAE6, 0x9FE4BED2, 0x51C08E06, 0x19CDEE09},
20370 {0x4B85D6F3, 0x4D13594D, 0x61B014BF, 0x0514F5BD, 0xD5BE6325, 0xB2E042E9, 0xDB7668DC, 0x0D3C402C} } ,
20371 { {0xA39FA887, 0x97F5E52F, 0x525DCFA0, 0x19472E17, 0x6903F637, 0xE6B30D03, 0x6836D65E, 0x22190E6F},
20372 {0xD3EF28E8, 0x7A14CD52, 0xF94A240D, 0xF98E7CB4, 0xAB482AD2, 0x0D081C00, 0x87E048A1, 0x137C5307} } } ,
20373 { { {0xDDFFBADB, 0x867F4BED, 0xDCF50485, 0x84BF725C, 0xCAD67B6D, 0xD10C58DB, 0x0BF6CB0B, 0x1F3741DC},
20374 {0x32EAC7F5, 0x3156EA52, 0xDF52F978, 0x99EF9E6F, 0xE4C80E29, 0x718BA7D2, 0xE224657E, 0x0B027CCA} } ,
20375 { {0x8C0F7C22, 0x756CCF82, 0x74FF7C44, 0xFA521E28, 0x52ECA4EC, 0xA9491629, 0xD316282C, 0x1B2AF4BA},
20376 {0xB793132D, 0xF35029DE, 0x8D5A5F4B, 0x79AC0498, 0x566CACCE, 0xA153258A, 0xC8823E18, 0x1AB1FE62} } } ,
20377 { { {0xEA66DE18, 0xB26FAB70, 0xB24EE566, 0x44A8B348, 0x6DA07FAD, 0x248D7191, 0xFC66AA2F, 0x24B0FED6},
20378 {0xD114F454, 0x6B7BF927, 0xE42E1704, 0x3C807B3B, 0x949D784F, 0x987117A6, 0x90884A4C, 0x14D0ED4D} } ,
20379 { {0xDFAF4D9B, 0xC9296F8B, 0x93DCD766, 0xD06B5F44, 0x7D60C9A9, 0x1A41EB17, 0x8F07EBBE, 0x009D1BD1},
20380 {0xBC5FB6C2, 0x469B897B, 0xC76AF526, 0x15313FB3, 0x22F63300, 0x033A10DC, 0x3FBD2F87, 0x0D307D0F} } } } ;
20381 static const fp12_t var_expected = { { { {0xB3468B07, 0x902A3541, 0x4B0579CD, 0x77051EDA, 0x479B3F19, 0x5EB82ED9, 0xEC7EF200, 0x20AAB260},
20382 {0xAB96A242, 0x7526C7FA, 0x744D3F18, 0x1D731067, 0xE8592055, 0xA305A736, 0x477084AB, 0x0E2EAA8B} } ,
20383 { {0x04B64548, 0x3AC78C72, 0x6AA9F523, 0x6A6A0025, 0x896EEB41, 0xFA66A3D7, 0xA17CDA97, 0x1FF3D6D7},
20384 {0x95DE17E5, 0x582352C3, 0xF69FD660, 0x59B55175, 0x114BBDD6, 0x3A057271, 0x17DB1366, 0x2060706B} } } ,
20385 { { {0xACE141D4, 0xF4136A2F, 0x8E27231C, 0xCF344E2A, 0x2A5AAF53, 0x350BDF1C, 0x9358E392, 0x15E3F334},
20386 {0xCDF97A51, 0x4E5B8A1C, 0xB2349603, 0x21BFA5BA, 0x54BC4059, 0xFA23BB82, 0x2F299412, 0x104887B7} } ,
20387 { {0xD66A638A, 0x41BBA600, 0x18E313B4, 0x5A93B071, 0x73D3FCFD, 0x62973D3F, 0xBD46AC8C, 0x200BDC0C},
20388 {0x1DA3A6AB, 0x126E5469, 0x866F27AF, 0x0C8DE562, 0x27DA6345, 0x45A4221A, 0x5750F002, 0x183C21E8} } } ,
20389 { { {0x4A67861E, 0x18477109, 0xD004F47B, 0x1ED78408, 0x42F359E8, 0x45BD25F3, 0xED296BEA, 0x227745B7},
20390 {0xED5C9C5B, 0xAEC917CF, 0x08661757, 0x4B89FCFF, 0x412756C6, 0xBB12F730, 0xB81AA520, 0x20FC5CF1} } ,
20391 { {0xD8D146C3, 0xD480B262, 0x078703EF, 0x715D2B5C, 0xCB2AACAA, 0xD11F0968, 0x79D7A1E9, 0x1D71BBFC},
20392 {0x13D49CD3, 0x0B6615A4, 0x4936116C, 0xA38328A4, 0x00EA9B20, 0x3DFA2AF3, 0xE5D9279C, 0x22CD4E51} } } } ;
20394 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2861 a000");
20395 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2862 a001");
20396 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2863 a010");
20397 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2864 a011");
20398 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2865 a100");
20399 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2866 a101");
20400 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2867 a110");
20401 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2868 a111");
20402 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2869 a200");
20403 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2870 a201");
20404 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2871 a210");
20405 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2872 a211");
20408 static const fp12_t var_a = { { { {0xA638F46C, 0x778EDD76, 0x89A59A00, 0x10C7F714, 0xDF05FAF2, 0x3C725E28, 0xD9CD347D, 0x20B3566E},
20409 {0x54E6FB75, 0x5AF68197, 0x773DC8DA, 0xAF2CB5D1, 0x7C5C6103, 0x294A16F4, 0x754657EA, 0x0CAF4D9F} } ,
20410 { {0xFA436FDF, 0x37FA1343, 0x98E69F0F, 0x67EF420D, 0x6E6D710C, 0xC233E4EB, 0x5F2A3283, 0x133B4393},
20411 {0xB300FFF3, 0xE5DCF422, 0xB015732E, 0x573C97DE, 0x81EF9D7E, 0x7C910938, 0xD08D2047, 0x0441E851} } } ,
20412 { { {0x4E20A8CA, 0xBB9B7B23, 0x8980C215, 0x30CEF055, 0x41BA6C18, 0xAE3FC39E, 0xBD750CA7, 0x08C6E6DE},
20413 {0x0D3634B0, 0xD9D8F2BE, 0xCFADDEDB, 0x2E9B50FE, 0xAD395D78, 0x25E952B0, 0x0FE2A520, 0x19B5BA76} } ,
20414 { {0x24A0DEC7, 0x828B8BFD, 0xDE2B6E77, 0x1D5DFBFE, 0x2EAFD4B0, 0x012FF5F0, 0xC6146EC9, 0x170C9C0D},
20415 {0xC184BDF5, 0x0D1E72A6, 0xBC306E6D, 0x75AE9055, 0x7957B724, 0x8412BDE0, 0x1A153462, 0x2080A116} } } ,
20416 { { {0xCB7F99B5, 0x2DFBBA4A, 0x159CA52D, 0xF5A811F5, 0xB7325A7C, 0x86B5C3E9, 0xB82BAEAD, 0x0A00FD6E},
20417 {0x400329F6, 0x550AEF61, 0x259EAB27, 0xE58D4427, 0x7F8C1E57, 0x4AAE9FC3, 0x567FE338, 0x0E8883A6} } ,
20418 { {0xB15886B1, 0x8F342DD3, 0xE4C148AA, 0x361897A1, 0xF5142512, 0x279F7E80, 0xC4CAD4A6, 0x0A0B49B2},
20419 {0x36777481, 0x04E79724, 0x2FE637CA, 0x9F4B5DC3, 0x11824269, 0xF769D75D, 0x8784FD25, 0x1FAC7C13} } } } ;
20420 static const fp12_t var_b = { { { {0x7619AD11, 0x258B99C3, 0xC7A0EE16, 0xC4165700, 0x242A7FD0, 0xE152DCE1, 0x75AC4AA3, 0x14A1CD9A},
20421 {0x3C51E0AB, 0x04383DBB, 0xAF4B02D6, 0xB6F89794, 0xE08EADD5, 0x01DE529F, 0x0A85E21E, 0x0B83B935} } ,
20422 { {0x6EC822ED, 0x9F267DAD, 0xBA59B6B5, 0x63A9D68A, 0x9A52EA0F, 0x52B3ED4D, 0xAF87BFC2, 0x177F8EE1},
20423 {0xB5D5DF47, 0xA228ACA8, 0x167204EF, 0xCDE1A93D, 0x14E8A061, 0xE97D211A, 0x8A71F107, 0x11166E51} } } ,
20424 { { {0x1D90180A, 0xB8BA7A0F, 0xE5DC88BF, 0x2311F268, 0x0A97203A, 0xCF05B4F4, 0xC2F3C085, 0x0E2E5CA9},
20425 {0xC65C6493, 0xCB1219F4, 0x97F63047, 0x3D527F6B, 0xFB2CAEE9, 0xD1C78EB4, 0xF2FA01E2, 0x08311D4E} } ,
20426 { {0xBF861FCF, 0xF78BCB3B, 0x0AEBD853, 0xCE396E5E, 0x67CC1624, 0x7567EEBE, 0x03365769, 0x1DE10839},
20427 {0x0C33F88B, 0xFF64A12E, 0x71D7886E, 0x23095114, 0x8EC1AF12, 0x9BF1274A, 0xDB8ED551, 0x172B3990} } } ,
20428 { { {0x6B4ED42C, 0x2DB16783, 0x28F2752C, 0xEA7D5844, 0xCC247172, 0x599372D9, 0xADD40955, 0x03D9A72D},
20429 {0x5B307A11, 0x98077F2B, 0x629921CF, 0xD73B27CE, 0xC377D4CB, 0xD2414E16, 0x1E7D5473, 0x177E52F5} } ,
20430 { {0x04C29417, 0x479E81CD, 0xDE9395E0, 0x4C82DA88, 0xAF7C9CA6, 0x3073F4F7, 0x32182CC1, 0x11B6A43E},
20431 {0x3CF26E47, 0xC5C3B75D, 0x8157D324, 0xCE44E218, 0x9AFAE83B, 0xB5BDB8EE, 0x07B1ADF2, 0x06B9019C} } } } ;
20432 static const fp12_t var_expected = { { { {0x3FD65A4F, 0xE9D725C5, 0xDEC11102, 0xE0927EC7, 0x39E53966, 0x0F582177, 0x1A933A83, 0x1E8B92A6},
20433 {0x720F5236, 0x87BD9CAE, 0xFC8B8A06, 0x53804786, 0xD52F1F38, 0xF806ABCA, 0xDA27E998, 0x13FB19CE} } ,
20434 { {0x15972083, 0x301925C5, 0xBCC3EDFF, 0x2F221782, 0x14E4C720, 0x3D6C1F34, 0xD9C4A2F2, 0x1BD15430},
20435 {0x919AB211, 0xD5BE68D3, 0x5430B089, 0x4698A7DB, 0x7CEF5522, 0x69C775A3, 0x30E20926, 0x0E4EBB20} } } ,
20436 { { {0xBAF16B46, 0xC2FDCCC1, 0x17BD12E7, 0x6161B7FE, 0xFFF17A56, 0xB3FD6FB9, 0x86A996C3, 0x15E2E0B5},
20437 {0x8E4F3DE7, 0xC3BEE002, 0x1A919F3A, 0xE8F4AC0B, 0xD9B67B07, 0xEDE850EA, 0x4C0DAC85, 0x0B1B1710} } ,
20438 { {0x6C007249, 0xE62187D2, 0x5B550186, 0x426B654A, 0xAC09AE3B, 0x9F868E8D, 0xCFFA47AA, 0x127834CF},
20439 {0xB6EA5B4A, 0xC7CA7A8F, 0xB7032000, 0x1DDB1925, 0x9D4B5C18, 0x4843D151, 0xCFDF4F9D, 0x1FF96384} } } ,
20440 { { {0x69CE9A8A, 0x5B948CB9, 0x2B4D055D, 0xF964DA5D, 0x213C7E9E, 0x24CA2A4B, 0x29D90853, 0x041BD940},
20441 {0x43BA5C91, 0x944A9D79, 0xCCE41FD4, 0x8B8675D0, 0x74BA91A7, 0x4F4DCDFF, 0xCD6235A5, 0x17F496D7} } ,
20442 { {0x7C3B0E3C, 0x997D670C, 0x283E13ED, 0xA183252D, 0x4FA3C9D1, 0xD35F6E05, 0x3E27341B, 0x1A9E90AB},
20443 {0x489D3B05, 0x742BD5B0, 0x05E82D04, 0x9E13FAE7, 0x1D82A4F8, 0x5630FA4F, 0xEE35B6CB, 0x0754B155} } } } ;
20445 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2873 a000");
20446 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2874 a001");
20447 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2875 a010");
20448 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2876 a011");
20449 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2877 a100");
20450 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2878 a101");
20451 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2879 a110");
20452 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2880 a111");
20453 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2881 a200");
20454 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2882 a201");
20455 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2883 a210");
20456 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2884 a211");
20459 static const fp12_t var_a = { { { {0x0B60A3D4, 0x2B705AB8, 0x4799D047, 0x19C4BB33, 0x641657E9, 0x10B792CE, 0xE03CB53D, 0x202D1246},
20460 {0x2BFD8576, 0xE83B1204, 0x7CB4F0C4, 0xD7906FDE, 0xC7084A56, 0xCA9D5FE9, 0x6513DCBF, 0x0EE04F25} } ,
20461 { {0xDDC77E7D, 0xFAFF1EF9, 0xFEC28B9A, 0xDC3D9EA8, 0xA5875359, 0x21528855, 0x3E78D8C0, 0x0F249EBC},
20462 {0x90C8771C, 0x7DA04FF0, 0x22375665, 0x7A71C1A4, 0x6D276876, 0xCDF41A68, 0x1ACF7BE7, 0x05567278} } } ,
20463 { { {0x6EB9FD12, 0xA757A93B, 0x7B94E02A, 0x1C7ABCED, 0x0B6303A4, 0x5C60AC9A, 0x5C429D05, 0x169C94F3},
20464 {0xFC5CB35D, 0xA493402A, 0xF91CCBD1, 0x22AABAC2, 0x60A00DA6, 0xAD4D2AA2, 0x8FA34830, 0x247109C2} } ,
20465 { {0x02AD1C28, 0x8078C05A, 0xD7F55AA7, 0xAA886597, 0x323CF96B, 0xBDCC2041, 0x503E3169, 0x04F18EB7},
20466 {0x6E5AD4EA, 0x7E9A7BBB, 0x5BB6FCD7, 0x237D20F0, 0x20FFD44F, 0xC40F8A62, 0x50844CE6, 0x24260DA7} } } ,
20467 { { {0xC2518213, 0xD1C93DAE, 0xF9693528, 0x773735E4, 0xC4965AD2, 0x49395545, 0x37F1BD20, 0x0C86EBD8},
20468 {0xCA05FF00, 0x46335D29, 0x26C2BF6D, 0x946639B8, 0x65D613DE, 0xD218DA8E, 0x9AC85580, 0x118C6F46} } ,
20469 { {0x6B6514BF, 0x7956BD1D, 0xCF107313, 0xBAF8592B, 0x0B0ACAB6, 0x1F6666B1, 0xFE3D1752, 0x0140D5AF},
20470 {0x4A8687EC, 0x90E3263C, 0x1D48F4BF, 0xB0CE037F, 0x2457D77D, 0xB7C18848, 0xD7E48A48, 0x21A5D097} } } } ;
20471 static const fp12_t var_b = { { { {0x1558846E, 0xCEB694CA, 0xEB6112AA, 0xEC87A47A, 0x3613931E, 0x9D23C820, 0x4F3F9A99, 0x208C3262},
20472 {0x94B4B50B, 0x26E2F50D, 0xC0495B7C, 0xC4124508, 0x39916978, 0x0D14490D, 0x26C3DEB1, 0x16422740} } ,
20473 { {0xC2C8965D, 0x3876BF0A, 0xD12CAD94, 0xF70CEB7A, 0x10E079F0, 0x813F869B, 0xD2EC914A, 0x1B5BBA0D},
20474 {0x0CDA8BB3, 0x66280D8F, 0x5EA5BF92, 0xEE88583C, 0x9C9912E9, 0x6D7DE570, 0xD4B378A2, 0x0AF36343} } } ,
20475 { { {0x8A7D3444, 0xE1BC0B4B, 0x6F7D1841, 0x6EB1C2E2, 0x234F1AC6, 0x89E36031, 0x6D92C1E7, 0x1B55104E},
20476 {0x7221BE2A, 0xEDE31BB4, 0xB9CB1D2D, 0xBFEB2340, 0xFB9EC2D5, 0x7310FFFC, 0x046EA650, 0x029EB4F4} } ,
20477 { {0xE575D3FF, 0xE0DE0B3D, 0xF2F9A82F, 0xAF5C760A, 0x35F9BAFC, 0xB72337F3, 0x88E465DB, 0x22DA65BA},
20478 {0xF414B13B, 0xF4DB6AC9, 0xAD647FD6, 0x28154690, 0x72B49A65, 0x8144031F, 0xDA8E8078, 0x1C884F68} } } ,
20479 { { {0x40C6AE2D, 0x23A53C5A, 0xA4F6D4B5, 0x7FA8FD08, 0x6922AB68, 0xB7AC86E8, 0x60D0D20F, 0x19F0A02F},
20480 {0x61C9D553, 0xB566AF9C, 0xD955F3A2, 0x06BAE8AA, 0x12368655, 0xD12B7096, 0x7D9FABDD, 0x13FC75DD} } ,
20481 { {0x48F6F2FB, 0x56FAE8CC, 0xD0B5DFA2, 0x31BEAA1C, 0xA27EE6A1, 0xDF2CE6E2, 0xA5B14688, 0x13EFAD6C},
20482 {0x1A42C60A, 0x1ED22BD0, 0x1043338A, 0x5E13C3B7, 0x571C8A08, 0x9B4FC75A, 0xE3EF85CD, 0x03BB98DC} } } } ;
20483 static const fp12_t var_expected = { { { {0xB40B5BF9, 0x71054C81, 0x76B51DE2, 0x5A41572A, 0xE5D10F59, 0xA474ECAA, 0x8FBB215B, 0x048E7515},
20484 {0xB9EFD947, 0x830D9B77, 0x1EFFAD99, 0xF9A19CD2, 0x8613F271, 0x80289A66, 0x911CAA4E, 0x0E7AF875} } ,
20485 { {0x162DC440, 0x4E990CB7, 0xA45FEB73, 0x51742434, 0x3CDCA8A5, 0xE5A59E96, 0xC50EA2A3, 0x0A1C71E9},
20486 {0xFB94D45E, 0x524E162B, 0x8F4E33AA, 0xA52777E1, 0x296D9FAF, 0xD79B4E3C, 0xE3B59BD1, 0x0BC00D2E} } } ,
20487 { { {0xC6EB6009, 0x28D49BA0, 0x211789D8, 0xB608130E, 0x994D6A61, 0x25C08FDC, 0x647FB62A, 0x04B200BC},
20488 {0x6F4EBC34, 0xD6D47507, 0x03B8AB88, 0x7EB16E90, 0xF859E0BD, 0x88B3C02B, 0x9ADA8808, 0x0383B4D2} } ,
20489 { {0x9FA389D9, 0xE6759174, 0xBFFB6918, 0x0E6F0D56, 0x602B210C, 0x2A1DAAD4, 0xBE9DC7D3, 0x117B57EF},
20490 {0xE8CBF489, 0xE55BD0E6, 0xAEEE7F8E, 0xCBE61110, 0xC5107D66, 0xE2199C1B, 0x8C4A7D94, 0x1E5109A6} } } ,
20491 { { {0x02EFFB4A, 0x1653B862, 0xF20559E3, 0xA77B82BA, 0x6FAF4271, 0x6066E84B, 0x25FA7536, 0x0C8DA615},
20492 {0x1415732E, 0x3061CAF9, 0x13F4CD04, 0x3A418894, 0xCBB314E8, 0x89DAF6F9, 0xF63870DB, 0x06C1E09C} } ,
20493 { {0xEAD08F8E, 0xE9398B8B, 0x0C54FD64, 0x909725B5, 0xA44DC124, 0xA2992821, 0x00F096F4, 0x09679673},
20494 {0xA628E4D0, 0x6A50B4D6, 0xDEC5C931, 0x8CC8CF4E, 0xCD4AF318, 0x06213B50, 0x4112FCCE, 0x0EFA8F4E} } } } ;
20496 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2885 a000");
20497 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2886 a001");
20498 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2887 a010");
20499 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2888 a011");
20500 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2889 a100");
20501 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2890 a101");
20502 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2891 a110");
20503 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2892 a111");
20504 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2893 a200");
20505 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2894 a201");
20506 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2895 a210");
20507 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2896 a211");
20510 static const fp12_t var_a = { { { {0x519C3423, 0x7500FA9D, 0x52E895BA, 0xCD4B4FC6, 0xD104B9A5, 0x44B75955, 0x9AD0A0B8, 0x22045B2E},
20511 {0xD2B960D4, 0xB8D026B9, 0xA6BC0B1F, 0x5B5926FD, 0xE30F7BA0, 0x5A694A06, 0xEE0FB7A3, 0x172C8D86} } ,
20512 { {0xF9180665, 0xD3853139, 0x83C989B8, 0x88826B2E, 0xC12BE573, 0x8A55C78D, 0x3322ECAA, 0x05B4A5C1},
20513 {0xF1C075FA, 0xBD8F7EF3, 0x90379434, 0xFBC85D84, 0xCF6318EC, 0xD53C1D0B, 0xCF7BD01B, 0x1091EAED} } } ,
20514 { { {0x884D1319, 0x4164A26A, 0x8F9A410E, 0x35ADFD61, 0xB569DD3B, 0x55C6DE35, 0x0F282DE7, 0x21461A32},
20515 {0x0DA537CB, 0x89154A97, 0x0BD66CC3, 0x8AC3680E, 0x3F31F50F, 0xD9CFA9CA, 0xA7F63F91, 0x22D1E789} } ,
20516 { {0xE8D6934E, 0x56BA7621, 0x6F9EC5E8, 0x211859C0, 0x0C6EA3BD, 0x60FAB903, 0xD1CDF5BA, 0x1BA42C72},
20517 {0x61E5A2CF, 0x38BF416A, 0x42688282, 0x84644153, 0x7DBDC027, 0xEA91EFC7, 0x9891288C, 0x1CAD8EE3} } } ,
20518 { { {0x52B36E57, 0x96028D15, 0x851DDFB3, 0xA4E38516, 0x774DCC91, 0x793DF397, 0x2EBC61AB, 0x03654B58},
20519 {0xD0FC12E4, 0x0E914C25, 0x514B4697, 0x383CB4AC, 0xDA01A4DB, 0x0E64CA7A, 0x455D7B68, 0x161CE598} } ,
20520 { {0x2559D2C1, 0x9E723112, 0x13AD543D, 0x1B0A44A7, 0x002F5CDA, 0x49D393E3, 0x36181EE9, 0x0E1B15F3},
20521 {0x76B63DEF, 0x648FF638, 0x2CF62CC5, 0x8BF106B5, 0xB87FED7B, 0xFAE270B6, 0xB31B55D1, 0x01E31232} } } } ;
20522 static const fp12_t var_b = { { { {0xCDD3728F, 0xEBDB78EB, 0x138D585D, 0x2E990500, 0x3060C94E, 0x17EE788F, 0xA78715E6, 0x0AAE629F},
20523 {0x6ABD9FCA, 0xED801071, 0x43F80491, 0xDCCF95B8, 0x6F35FB64, 0x800B0979, 0xBE0A8C07, 0x16858499} } ,
20524 { {0xD1EAAC84, 0x3989582D, 0x169C05C3, 0xCD445060, 0xFD0D5362, 0x085931CA, 0x0AEC9DE0, 0x11B1775B},
20525 {0x72C601DD, 0x07CA9A41, 0x4AA08BB5, 0xD9CBDC24, 0xEF9ED870, 0xE6AA45CA, 0xAAE9BC29, 0x2091AC5C} } } ,
20526 { { {0x6EA52AF1, 0xE31F4A4C, 0x20B207A9, 0x23146153, 0x84DAD1CF, 0x5F76A5AB, 0xE9CD68F7, 0x115B66B2},
20527 {0x25E2DC89, 0xB5CFFC41, 0xE3FF8C1E, 0xFA7C1B5A, 0x842CE9D1, 0x13CE6B2F, 0x83EA874C, 0x1B769C5B} } ,
20528 { {0xB775E611, 0x81B0C2AA, 0xFE352040, 0xA6162732, 0xEDE38889, 0x1BAF1DFE, 0x0B82A881, 0x1948A21B},
20529 {0xCBC1DA8C, 0x30E46C49, 0x431A422A, 0x8F13D44C, 0xC568A193, 0x683CD5E1, 0xEB5CD869, 0x1D75338D} } } ,
20530 { { {0xE5F8A40C, 0x98168F8D, 0x78B3FFA5, 0xDC2EC4A4, 0x83B7E15B, 0xA1670B5A, 0x7F1551F0, 0x0EA92E58},
20531 {0xF58A08B6, 0xA620FFAE, 0x267C416A, 0xD28899D5, 0xC5767E53, 0xE7713FE4, 0x9EEDE6EF, 0x01BA620C} } ,
20532 { {0xC641087E, 0xADE56EFA, 0xFA7ACAB0, 0x7015F2F6, 0xB9A9031E, 0xC0BE855D, 0xCAEC8847, 0x1BF7331E},
20533 {0x4340EF6D, 0x78C69F7C, 0xABFA121C, 0xBC4B04DB, 0x293F338B, 0x1BBCBB36, 0x995F4E3A, 0x1160D8F7} } } } ;
20534 static const fp12_t var_expected = { { { {0x6C406925, 0xD65F038A, 0x6526B2F3, 0xD697B611, 0x181E7F79, 0xB7D6B93D, 0xC98F05E9, 0x09756A2A},
20535 {0x18FA8000, 0x57714498, 0xC7DF0252, 0xA7DBB790, 0xF110F224, 0xA795EB4C, 0x5483752C, 0x01CB6A13} } ,
20536 { {0xC3F19B5F, 0xF2CA61DA, 0xBD048969, 0x9A3A3CC0, 0x2C1C62D1, 0x8611CEF4, 0x6A7A2BEA, 0x24C8BD9D},
20537 {0xFCAD1C89, 0x4B23F497, 0xD0111BDC, 0x575377F1, 0x25B758E3, 0xF6714286, 0x9416F483, 0x0E60D7A5} } } ,
20538 { { {0x36848AF2, 0x388C088E, 0x6B4FF55F, 0x0BA4DCFB, 0x08BB9BDB, 0x9CF48362, 0xA5E5D7C1, 0x1B1A9CB5},
20539 {0x6697D545, 0x9D5D8ADD, 0xC9307285, 0xD6B2116A, 0xB7FC8346, 0xB2C58383, 0x9A6BBB8E, 0x15D14868} } ,
20540 { {0x720C1108, 0xCC5256AA, 0x79CB2CA6, 0xED0CFFD6, 0x69656CEA, 0x7EB5D7ED, 0xC423AF9C, 0x239582E1},
20541 {0x0F1D0B35, 0xEF642C65, 0xA014C3C9, 0x75C954DA, 0x9B95B014, 0xC86053B5, 0xED3DC90C, 0x0A991984} } } ,
20542 { { {0x2D94C49B, 0x3CE17FCC, 0x5AD34203, 0x6A4DE406, 0x238E4F51, 0xF81F9408, 0x730285A5, 0x23ACC94E},
20543 {0xE81A323C, 0xE39A0C5E, 0x74DE2776, 0x54505305, 0x2EBFFA6A, 0x6EFE8119, 0x529F7298, 0x2419BB12} } ,
20544 { {0xE4F8E005, 0x3C63EFC2, 0xA4DD1167, 0xF79A7094, 0x8F9C2D2A, 0x41649B94, 0x80202006, 0x1ADF5364},
20545 {0x9371CC32, 0x454E6545, 0x0B723FE6, 0xDB9F8F97, 0x771C5C37, 0x33A46AB4, 0x3CFBCC64, 0x12470D23} } } } ;
20547 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2897 a000");
20548 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2898 a001");
20549 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2899 a010");
20550 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2900 a011");
20551 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2901 a100");
20552 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2902 a101");
20553 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2903 a110");
20554 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2904 a111");
20555 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2905 a200");
20556 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2906 a201");
20557 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2907 a210");
20558 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2908 a211");
20561 static const fp12_t var_a = { { { {0x00BB8833, 0xAA442C94, 0x9064B42A, 0xEF0E9975, 0x86EA1392, 0xDDBF8ECB, 0x7F8F6833, 0x1F60125C},
20562 {0x62D03DBD, 0x8CBBED7E, 0x7842FF94, 0x81A92D05, 0x1DC995C6, 0x49082C29, 0xFBBF34CD, 0x1309679C} } ,
20563 { {0x1A8809D1, 0xB90DC8C6, 0x1DF01EBD, 0x4B0F7CD3, 0xED404E74, 0x71144BCA, 0x3EFECDDE, 0x04A8A478},
20564 {0x2CD86347, 0x8B5F43F4, 0x9FE393DF, 0x146345A0, 0x501A2959, 0x24A3F46E, 0xFDE959D9, 0x1ABB7BFD} } } ,
20565 { { {0xDC9D65AA, 0xD3650F0E, 0x8E9EEEDB, 0x5A1D9918, 0x6F141F27, 0x5C3AFB23, 0x9227F609, 0x23DA5577},
20566 {0x306ACDBD, 0xB4BCAE45, 0x67D72ABE, 0x38EB46E1, 0xFFEC2C31, 0xE472E0F7, 0xF7D6D2C2, 0x1DC4CCBF} } ,
20567 { {0x24FD0356, 0x68A21153, 0xF89785CC, 0xD9A47F7E, 0xBEF513AB, 0xDFB46289, 0xFE1CB921, 0x2226B352},
20568 {0xE061091E, 0xA21CC4E1, 0xEE8F15CC, 0x8D194B7E, 0x9AB50B4C, 0x4F8E25CF, 0x2CA49979, 0x17790EE3} } } ,
20569 { { {0x562DE200, 0x6FD0A385, 0x62B9C63F, 0xB535CE98, 0x911E1048, 0x286A3F45, 0x88785973, 0x1A57F072},
20570 {0xF906690C, 0xB84318B1, 0x1E3FD527, 0x57DF97E2, 0xEAE7CD2D, 0xFDFCF309, 0x38A2317A, 0x24689806} } ,
20571 { {0x65917DAD, 0x0BC2B757, 0xE61448BD, 0x0F091126, 0xD71FC508, 0xA0330911, 0x149EB7E3, 0x0DFC612B},
20572 {0x80570494, 0xA7B37D86, 0x9904BAFB, 0x8B203CF1, 0x1BFD9453, 0x4BDBCB4A, 0x5C796F6F, 0x1A8CB651} } } } ;
20573 static const fp12_t var_b = { { { {0xA44819A8, 0x0FD55BEC, 0x3DF5CDB7, 0xFE638834, 0x1394FFF0, 0x49E33520, 0xB1706A6A, 0x23B64C4F},
20574 {0x1EFADF85, 0xA607CE27, 0xD5C21AD1, 0xB8C30CDF, 0x426EB58D, 0x768254CF, 0x186D94FE, 0x069B64E2} } ,
20575 { {0xF5C107D4, 0xFD0A7258, 0x31FDDDEE, 0x603CE1A3, 0x2CDDC1C6, 0xA6CE45A3, 0xCE3BECC6, 0x024B66EC},
20576 {0x1D90E407, 0xE547D7A4, 0xA068F458, 0x9028DAE4, 0xB44E20B6, 0x8D70607A, 0xAE6C930E, 0x211139CB} } } ,
20577 { { {0x0A663F5B, 0x457CA371, 0xB85FCCBA, 0x446471A5, 0xCFAB6B89, 0x70ED2D0A, 0xB7B240F4, 0x17C2C6F3},
20578 {0xC091A509, 0x02D29E45, 0xF695BE8E, 0x47DE3A41, 0xD8417D2A, 0xBB9A6567, 0x39B3E96F, 0x2001B412} } ,
20579 { {0xB7E70346, 0xB45AD290, 0x8A06D96A, 0xB253F349, 0x22F71877, 0xA3CB87DB, 0x74F83A8E, 0x141732F0},
20580 {0xAF7DCD67, 0xEE3626E9, 0xE03580AB, 0xAF974A47, 0x108A4602, 0xDE245432, 0xA42ABDD7, 0x177B3E6E} } } ,
20581 { { {0x0B6BCE78, 0x7B2E7622, 0xEAA6FF27, 0x322F8D12, 0x088BEACC, 0x965F8783, 0x43837F09, 0x22472FFF},
20582 {0xF711E542, 0xD067438E, 0x43C5D167, 0xEAE9CE5D, 0x78750A83, 0xB15AD2DF, 0xDF9CD8EC, 0x0259EBEC} } ,
20583 { {0x1AE70922, 0x0BB24510, 0x1B2063BB, 0xE3F941FB, 0xC1F538CE, 0x2568418E, 0x4A56F70F, 0x069E80BA},
20584 {0xEF6F4A3B, 0xA527AD24, 0x9CA62A0C, 0xF61F433E, 0xFD8E420E, 0xFF478B57, 0x9D3EE492, 0x105F395F} } } } ;
20585 static const fp12_t var_expected = { { { {0xD909CB01, 0x3DFF883A, 0x7BFAC85F, 0xC3C001C2, 0x34B1C6EF, 0x775EAF43, 0xABE4C1F4, 0x23E7A82F},
20586 {0xE1DE5AB2, 0x5A252937, 0xE87CD5B4, 0x0D163F77, 0xB94F2D06, 0x8028BF3C, 0xDB9186C5, 0x1D34D34E} } ,
20587 { {0xFF71E6D0, 0xEEDAD3BA, 0x6F29CAAD, 0x5985E8B2, 0x34DC620D, 0xF5DD4147, 0x100530FF, 0x0ED7D5BE},
20588 {0xA1FD27B8, 0x576059A0, 0x9A59A8F0, 0x6C35B031, 0x43FF3167, 0x15F0A7E7, 0xDC6223E8, 0x038803A5} } } ,
20589 { { {0x7F99F1CB, 0xEC9DC39D, 0xBD5DC308, 0xD396EFE0, 0x26F92263, 0x10B0892E, 0xA8A4E6FD, 0x18CB999C},
20590 {0x6D3BC44F, 0xE3C73D45, 0x0D2A01B6, 0x0D08AAE7, 0x9941DE2F, 0xEEC87054, 0x70DE22D0, 0x140C4A72} } ,
20591 { {0x54B46E9E, 0xF3B2B0B9, 0x803DC49C, 0x16A1E091, 0x45B7BAF0, 0x0E48F329, 0xC82E3554, 0x12539728},
20592 {0x693F372F, 0xD7A9C9FC, 0x1B479E48, 0x797E8EB2, 0x21AB73F0, 0xEEAC9194, 0xAC381966, 0x0F411BEA} } } ,
20593 { { {0x16993EA9, 0x8B2918DC, 0x41096147, 0x1DE14B75, 0x91F8B7BB, 0xD953B41F, 0x78A547AB, 0x1BAF912D},
20594 {0x589F900C, 0x983B7268, 0xD77D4669, 0x1BA6AE7F, 0x1B63E8D4, 0x4646B8F8, 0x01B0427C, 0x07BFFB23} } ,
20595 { {0xDB024F34, 0x9409D9CF, 0xC082D807, 0x06F76628, 0x60A2ADCA, 0xAE8C2615, 0x515B55C2, 0x1E1AE118},
20596 {0x9705F6C6, 0xC8217BC5, 0xF85345DE, 0xCF9C5B61, 0x1370F08E, 0xDBDA07D7, 0xCDB35F43, 0x0D5E10F4} } } } ;
20598 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2909 a000");
20599 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2910 a001");
20600 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2911 a010");
20601 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2912 a011");
20602 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2913 a100");
20603 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2914 a101");
20604 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2915 a110");
20605 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2916 a111");
20606 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2917 a200");
20607 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2918 a201");
20608 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2919 a210");
20609 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2920 a211");
20612 static const fp12_t var_a = { { { {0x9CB39231, 0x9BC90132, 0x20A97B49, 0x28D4F4A2, 0xFC6681BD, 0x1ED29C68, 0x2553F607, 0x0F1D08B3},
20613 {0x1B3E9FB6, 0x3207FE49, 0x48EF9F58, 0x6DF27A9C, 0xA7CB9569, 0xD563997B, 0x7140ACFF, 0x1A3FA0B1} } ,
20614 { {0xB3AFF2B6, 0x0277130B, 0x0C9C0F64, 0xE473A11E, 0x9093D565, 0x77800B53, 0xACF7F52C, 0x12E56374},
20615 {0x5A29E84D, 0x76BFC88F, 0x6D44301B, 0xED5CEDA5, 0x6B7F9141, 0xBA3A89EB, 0xC5534A8F, 0x221DC665} } } ,
20616 { { {0x08E5535E, 0xB043491C, 0x1D1E7AC2, 0xED02D5C3, 0x331837E7, 0xD0468158, 0xC1990B8F, 0x20A78052},
20617 {0x4764E9F0, 0x0C8435DD, 0x66D44447, 0x4C46FC01, 0xE0D19A48, 0xF64F9C1D, 0x6DCDC5C6, 0x1737FD0E} } ,
20618 { {0x6AE6EB70, 0x01F166B3, 0xD96C8B5E, 0x383AE558, 0x7E9D41A2, 0x8B2E696F, 0xAA945C96, 0x1298294B},
20619 {0xDF1BBDC2, 0x5D80EA23, 0x19E84272, 0x171BA6E1, 0x00F0E96F, 0x4E6C2AF5, 0x2A4771BD, 0x0875FD5E} } } ,
20620 { { {0xEAB480AA, 0xC95CF1E7, 0x57F6DF7C, 0x9E8CB89D, 0x130FD672, 0xA9105301, 0x04547831, 0x05092F5C},
20621 {0x54C652F7, 0x80174ADA, 0xC6CDC41A, 0xF6CF5B2B, 0xD563AB78, 0xC3914990, 0xD047BA98, 0x17A102DD} } ,
20622 { {0x88C2C741, 0xE2DF578D, 0xC1525496, 0x368484E4, 0x084ABAC5, 0x30633A01, 0x3581CFDA, 0x01760AE7},
20623 {0x053CA065, 0xD76952B6, 0x0B4064F1, 0x4EBF1F96, 0xD1F5830C, 0xD55B28B7, 0x968C62CA, 0x16DFE810} } } } ;
20624 static const fp12_t var_b = { { { {0xE617C9D8, 0xEC16D607, 0x6B7285CF, 0xC7F63E79, 0x8C209297, 0x446F4310, 0x1F11EA62, 0x06D77468},
20625 {0xC67AEF35, 0x863960F2, 0xDD6CEC25, 0x89BF2EBD, 0xAADA9491, 0xAE2EE239, 0x15519EED, 0x229ED19D} } ,
20626 { {0x857D432F, 0xC9071091, 0x20DB778D, 0x55BA84F2, 0x3E398945, 0x03E3469E, 0x1D2627AB, 0x0F50F08F},
20627 {0x9326446F, 0xD056B84E, 0x3BB50E4E, 0xEA71E94C, 0xDEE5C02D, 0xE3453E5F, 0x197508CE, 0x1E9F7B2D} } } ,
20628 { { {0xB8DE25F7, 0x6A9E7FB7, 0x80BE1AF2, 0x888FB0B9, 0xDE02F6DF, 0xD9ED8E1E, 0xD107C3E6, 0x0E44758A},
20629 {0x71A96B63, 0x198CC93A, 0x6D380792, 0x88F2108E, 0xE9211192, 0xCF1A5B13, 0x088CB43A, 0x19AF2039} } ,
20630 { {0x39675E56, 0x134AC6FC, 0x6F287A85, 0x61DADAD7, 0x61582DF4, 0x468E4928, 0xE93C6ADC, 0x0A94E7A8},
20631 {0xDF952E18, 0xF37A46BA, 0x550126C3, 0xF8DAACAB, 0x1546ABA8, 0xC42B6D00, 0x7AD1C2DA, 0x199FD9F2} } } ,
20632 { { {0xBE8A8A04, 0x2A16CA17, 0x63F8DF70, 0x650CC2CC, 0x12D60D8F, 0x6F47DCFB, 0x407D2758, 0x233B94DB},
20633 {0x44A67151, 0xA1C49C87, 0x9CEBF4D6, 0x03A1C769, 0x106DD852, 0xF1DAE3CA, 0x1DC1413F, 0x1DBD14E1} } ,
20634 { {0x4783DC62, 0x6E070EDC, 0xE86A6193, 0xE0BEDDCA, 0x7B7BEB38, 0x6F45C554, 0x496B3DF8, 0x1246FC05},
20635 {0x347BFD65, 0x384931CD, 0x9A4290D9, 0x6CE573BB, 0xB4B6EDC9, 0xC533219C, 0xC41D95C7, 0x0A21667A} } } } ;
20636 static const fp12_t var_expected = { { { {0x38F12747, 0x9FF534D6, 0xF5C4367D, 0x6F9D09AB, 0x90B69185, 0x5B62556E, 0x1A505E51, 0x15B0718C},
20637 {0x38D50DA0, 0xCB30EC04, 0x35C2C3CA, 0xEA36FD47, 0xB864C087, 0x409A327C, 0x15D5BB14, 0x1599EC07} } ,
20638 { {0x270E1458, 0xFFA82E50, 0x3440D73F, 0x93BC935E, 0x563A0234, 0x23F5C015, 0xE72C8649, 0x0A7D739A},
20639 {0xD72CBC0F, 0x5639A906, 0x15CE70F7, 0xDB5DB18B, 0x32641A9E, 0x8830AAEC, 0x3ABE3929, 0x01911418} } } ,
20640 { { {0x15B67F48, 0x4018D602, 0xEC78EACA, 0x493F6731, 0xF8E3969A, 0x0D6E5E6C, 0xD2860A6E, 0x11AE2941},
20641 {0x700C686B, 0x41C80067, 0xBD4ACDD9, 0xDB25DDA5, 0x0E8B4005, 0x2303B920, 0xDA878EED, 0x1F7F94FD} } ,
20642 { {0xFB0F720E, 0xF1BD4158, 0x138CCA8F, 0x84EEFAEB, 0xEA69418A, 0xCA6EBD11, 0x4D2CB0EA, 0x0E3A1852},
20643 {0x1958FCF2, 0xC29AADC9, 0x54BA791B, 0xAFC0E6E7, 0x25D3D6C7, 0x44024750, 0x08A8A248, 0x0D377DF0} } } ,
20644 { { {0x4AB66710, 0x12727A36, 0x0E40E95E, 0x7FCBBF1B, 0xBCCE22AD, 0xCEE09A09, 0xC6138893, 0x0EB8F869},
20645 {0xC43C08E3, 0x389C0026, 0x9D037A6E, 0xC4821E7F, 0xFE458DE3, 0x28000C76, 0xF32F30B6, 0x122D1C3E} } ,
20646 { {0x568F48B1, 0x61E697F6, 0xEAEDD6B5, 0xF7FEC1DF, 0x0433A25C, 0xC85347DE, 0x1BE3388F, 0x2054649E},
20647 {0x54D94D0B, 0x9379FC55, 0x5909E462, 0x360CAF9B, 0x47BE73D2, 0xEDAFD55E, 0x8346FD79, 0x01350CEE} } } } ;
20649 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2921 a000");
20650 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2922 a001");
20651 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2923 a010");
20652 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2924 a011");
20653 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2925 a100");
20654 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2926 a101");
20655 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2927 a110");
20656 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2928 a111");
20657 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2929 a200");
20658 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2930 a201");
20659 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2931 a210");
20660 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2932 a211");
20663 static const fp12_t var_a = { { { {0x915F91A0, 0xD6203D33, 0xB85C6A44, 0x45CA718D, 0x47E211A8, 0xB30CEADA, 0x65002F81, 0x1ABEAAAB},
20664 {0x7C71F448, 0xD2EA28D9, 0xBEA1A337, 0x4CD7C5B3, 0x542ECDBB, 0x381DC6A5, 0x6F3454CD, 0x0DB6A20D} } ,
20665 { {0xE3662159, 0x11BC4C16, 0x3D7E3243, 0x8E0C454A, 0xB6C2AB9B, 0xAD89B18D, 0x88C71308, 0x14A0F26B},
20666 {0x241D0F7F, 0xF6D5E27F, 0x4442A0FC, 0x16D45555, 0x24367100, 0x8243A448, 0xF123A06E, 0x202219E2} } } ,
20667 { { {0xAA6DB43B, 0x80002E2A, 0x635CD988, 0x63F6EF92, 0x92B3340C, 0xC3FFDD69, 0x3D92C83A, 0x1F3A2E94},
20668 {0xA7B7EBB4, 0x0FF924D6, 0x7721237E, 0x6B13C91F, 0xFCA33DBE, 0xA41BCC8D, 0xEFFA4120, 0x152B4AA2} } ,
20669 { {0xF773ECD6, 0xAD50BDFB, 0x27208C82, 0x593C2232, 0x2617CD35, 0xC1825F73, 0x9CB54A36, 0x05713AA9},
20670 {0xA1640BCE, 0x1C53E082, 0xA8349B00, 0xA64729CD, 0xB3D8F582, 0x8EB57699, 0xA4E67890, 0x1DB74E0C} } } ,
20671 { { {0x4602FB18, 0xB12A9012, 0x3826E636, 0x8B274734, 0xF7B86980, 0xE8ED89A4, 0xD0535073, 0x124F80B7},
20672 {0x977561E2, 0x82BEE023, 0xD803DECF, 0x69281E9A, 0xC2DC6C15, 0xD10F08FD, 0xD90E98B0, 0x0A9067E1} } ,
20673 { {0x9D95E25A, 0xDCD5A186, 0x987CDF7D, 0xA6A0C324, 0xC047A637, 0xD0A08331, 0x6E2D0249, 0x1AA37B1F},
20674 {0xC1CDCBC8, 0xEFF4202E, 0x164A2FDC, 0xBB8F118E, 0x8E0F7F32, 0x36A62B63, 0xF5BE8697, 0x2460481F} } } } ;
20675 static const fp12_t var_b = { { { {0x051D27D2, 0xAB3BF1F6, 0x0B0DB3F7, 0xE064882D, 0x2881301F, 0x7689D78E, 0xDB26BBAA, 0x19433E3B},
20676 {0xF35CAD03, 0x254FC2B5, 0xF03CE4E9, 0xB60294EA, 0xA73BAC96, 0xB82F55DB, 0xA7275F82, 0x244032E2} } ,
20677 { {0x528AA66B, 0x8E2EC0E1, 0xB4C06C6D, 0xD2551D23, 0xA4B7A9E0, 0x2C37E169, 0xA33D2273, 0x09ADD34F},
20678 {0xD57CB911, 0x4F42917B, 0x7701B537, 0x0E112EDB, 0x602AB421, 0xE1A1CF82, 0xFA027489, 0x10026C50} } } ,
20679 { { {0x3A98954A, 0x53525A6B, 0x88232D9D, 0x8560DC9C, 0xA4722CD3, 0x59E104D5, 0xD2C73E00, 0x24D077BE},
20680 {0x7E08C65B, 0x14A7C8B9, 0x68DF7FA0, 0xD7C2B7BE, 0x6A0643D8, 0xF1C25A32, 0xAA540508, 0x1CAE0A33} } ,
20681 { {0x90DF899F, 0x95BAA435, 0x1C3C8C66, 0xF17E98B0, 0xB85D7F82, 0xBE20FB52, 0xD687E441, 0x1FC6B1D0},
20682 {0xD0EBFF8E, 0xEA9C252D, 0x9492353D, 0xE76AB811, 0x9FEB74B0, 0xA004C62D, 0xAA38D134, 0x06C7375D} } } ,
20683 { { {0x210D8C75, 0x3B10086B, 0x2F9C8724, 0xF6C26113, 0xA353E3E4, 0xF91F4020, 0x49B992CC, 0x005E7A38},
20684 {0x7CFE8FF0, 0xC4EB98B3, 0x06CD8185, 0x9AC59A20, 0x4D051F5D, 0x40076E5F, 0xD8E7398A, 0x0B666FC5} } ,
20685 { {0xF688D7DF, 0x40967D69, 0x925AD7E0, 0xD541F60C, 0x66A253AF, 0x5E7C5A4F, 0x934A512E, 0x1925A746},
20686 {0xBD15668C, 0xBAA728CB, 0x5171C449, 0xC3FA6C58, 0x12EE1C7F, 0x1B00AE57, 0xD1D3DD69, 0x22876208} } } } ;
20687 static const fp12_t var_expected = { { { {0x0B6B4F60, 0x03DA9D25, 0xA994432C, 0x791D06E9, 0x9C48D3C5, 0xF8FA3C5D, 0x9C64A071, 0x111BD27D},
20688 {0x0A7DC322, 0x1B889BC0, 0xE8D3A6F5, 0x1146BA93, 0x6033B7BD, 0x8647AA55, 0xA8B28CF6, 0x1DCB13FB} } ,
20689 { {0xCB2AC358, 0x139BDA38, 0x41938586, 0x77B222E4, 0x7567F675, 0x02AC07BE, 0x379BE6F5, 0x0BD4DF2A},
20690 {0x90B94C7D, 0x0F4467D5, 0x912FABA3, 0x95EF1E7E, 0xD2655351, 0x0F06CB3E, 0xAA923644, 0x0ED2AD8D} } } ,
20691 { { {0xA67EBA49, 0x8439EC53, 0xAC93DA8F, 0x5C21563F, 0xDB800136, 0x484C603D, 0xE550FBD4, 0x1E1EF036},
20692 {0x3FBDE033, 0x3148ED4B, 0xD0D14A02, 0x013B5E78, 0xD2AAC71C, 0xC3EAA0E6, 0x10003AAC, 0x0EBA539F} } ,
20693 { {0xCCCF4DE7, 0x6BB91D58, 0x6F0AECC9, 0x0077BA44, 0x7941F692, 0x7FC388AF, 0x3CE10D52, 0x1F872411},
20694 {0x4CAC9668, 0x3E5F46E4, 0x8792E12D, 0xA6D5FEA9, 0x70E6CD9D, 0x773408C5, 0x9B9A1A9C, 0x10658DA1} } } ,
20695 { { {0xE2215103, 0x761CAF3A, 0xD1B841FA, 0x1F1C2AC6, 0x8A5D7046, 0x6DF043A3, 0xD0BEFD75, 0x1E9CE940},
20696 {0x9579094C, 0x0AB5EBB5, 0x85F922E9, 0xFF8C2285, 0xAC6AE89E, 0x8B937605, 0x93FF1536, 0x0DEF1B98} } ,
20697 { {0x945537C5, 0xC4AE7BAA, 0x3D0066A8, 0x12CFFBD8, 0x0B39EDBF, 0x1CCAF9B5, 0x90788B83, 0x0E63B0F9},
20698 {0x27FEC02E, 0x05E406FB, 0xD0C2BE0F, 0x2F956B7E, 0x611B12C5, 0x513D30C8, 0x2DBFC82B, 0x118391A6} } } } ;
20700 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2933 a000");
20701 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2934 a001");
20702 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2935 a010");
20703 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2936 a011");
20704 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2937 a100");
20705 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2938 a101");
20706 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2939 a110");
20707 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2940 a111");
20708 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2941 a200");
20709 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2942 a201");
20710 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2943 a210");
20711 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2944 a211");
20714 static const fp12_t var_a = { { { {0xF697EBC9, 0x9864F121, 0x1FDCF529, 0xADD7BF95, 0xA35D0BC2, 0xF17AA834, 0x76AB0847, 0x22B80688},
20715 {0x9444942E, 0xDAFFFC86, 0xE48F2B79, 0xD03246B9, 0xEC1189B1, 0x855B5830, 0x94117A2A, 0x1E6021DD} } ,
20716 { {0x7773D7F5, 0xD9D4F644, 0x66AE9969, 0x000AB950, 0xC5011234, 0xFA001162, 0xFE0D9233, 0x24B21409},
20717 {0x71657FDB, 0xCEE94444, 0x6E2CA4E9, 0xDABD268C, 0x53BFEAA4, 0x86745CCA, 0x966B533E, 0x2159C314} } } ,
20718 { { {0x13CA58FA, 0x84E06805, 0x32287327, 0xB1E33974, 0x0290439E, 0xFDED4B36, 0x0E1BC9EC, 0x1279A438},
20719 {0xFD1A25E0, 0x00EDD47C, 0xFB0EF547, 0x4684C918, 0xDAC07AA3, 0xA7C9A47B, 0x1D6E3541, 0x14468810} } ,
20720 { {0xCE517C38, 0x751281E2, 0xACF44C19, 0x8AB17931, 0x92D3D8E0, 0xEDDFD2DF, 0x8E0B155D, 0x066B26F5},
20721 {0xBDB978DF, 0x51BEA577, 0xE8B62E0F, 0xFE62D150, 0x787D43E4, 0x2E3913CE, 0x9B83AF50, 0x17211E3C} } } ,
20722 { { {0x35B5F840, 0x29D48BEB, 0x6BC765F6, 0xC2F9880C, 0xD42FE8C2, 0x9B4CA91B, 0x278AB4C0, 0x02DE1751},
20723 {0x50698ECF, 0xCD78A1DD, 0x48481EFA, 0xCCEF9CEA, 0xE9D3C626, 0x3DDCCC64, 0xBB7AC0C6, 0x00A1FC05} } ,
20724 { {0x09179F7F, 0xAFEC6998, 0x15247302, 0xE311F025, 0x161654F4, 0x02BD62B6, 0x2DFB9654, 0x1FA0A043},
20725 {0x8FFBD56C, 0xCC51927B, 0x7624ED98, 0xA754DFC6, 0x778D7EDE, 0x0BFB7978, 0xE1456BA8, 0x04BED8D3} } } } ;
20726 static const fp12_t var_b = { { { {0x9583D899, 0x0A3EC8CE, 0x5320E86C, 0x1A93C2EC, 0xF4A1B3B1, 0x285D1CBD, 0xEAC7C29D, 0x23E6FE9C},
20727 {0x7467C812, 0x1004BCD5, 0xB62CFB3B, 0xBF906D47, 0xCAC53624, 0xBAE165C0, 0xAEAB54AD, 0x01FADC42} } ,
20728 { {0xBD0120B9, 0x6502BEED, 0x0F7EC087, 0x62578A66, 0x52F34C33, 0xDC9D02B0, 0xC3F935E8, 0x20B5EE4E},
20729 {0x77CAB607, 0xCC9FD5E3, 0x1A60D7DA, 0x04197B24, 0x321C3A90, 0x3A2CF678, 0x9645F2D1, 0x0961F205} } } ,
20730 { { {0xF02A0545, 0xC2C5E213, 0x2F9ED39B, 0xE4D556D4, 0x694E0FFF, 0x05337D6C, 0x55451481, 0x044DD261},
20731 {0xBEB52408, 0x4E6BFA90, 0x85AF03CB, 0x75DCFE59, 0x991BED68, 0x248E3E03, 0x1F2249D1, 0x02B8573F} } ,
20732 { {0xB5F822E9, 0x2BC469A1, 0xD291F495, 0xD5B9BBC6, 0x1FE5AE69, 0xFE3A67BF, 0x572E0D5E, 0x21306091},
20733 {0xB2F15C2A, 0x122AA2FE, 0x03555803, 0xA8534418, 0x0A7486DE, 0xB4857E29, 0x0F65CE2A, 0x1EF7EEC3} } } ,
20734 { { {0x80FA5A44, 0x7E40B1ED, 0x615CC2B4, 0xB5289790, 0xB688EB37, 0xC5803E67, 0xC5C893CD, 0x192FB3A1},
20735 {0xF4750710, 0x9923992B, 0x7B5ECA09, 0x0266B893, 0x088C10EE, 0x4DCFA2D6, 0x6E452F6B, 0x1B19B16A} } ,
20736 { {0x00951C51, 0x61A4D546, 0xDBAB5BE4, 0x7633C6FC, 0x8E0EDA79, 0x7CB7B2B9, 0x50969BA0, 0x1E2990A7},
20737 {0xFB1AD9E6, 0xBEF8CC1E, 0x80D5E791, 0x03C6C0A6, 0x68F07443, 0xDFF45448, 0xD55FA305, 0x0F512545} } } } ;
20738 static const fp12_t var_expected = { { { {0x5FC304E8, 0x1CE43FB7, 0x89A455AE, 0x0B713F4D, 0x08598667, 0x1A347C98, 0x3A3FC547, 0x04400EB6},
20739 {0x34AF7618, 0x0310797B, 0x6C918069, 0xCF5847A4, 0x53AE86FE, 0xE8CD7E8D, 0xBCAF6C67, 0x213CC447} } ,
20740 { {0x881AFD02, 0xE89B1899, 0xFE6B498A, 0x01BB7236, 0xD1B411EE, 0x91BBEB3B, 0x16EAE969, 0x0D3C5E56},
20741 {0xEF47C635, 0xBAEE3CE3, 0x017A80D4, 0xF4D6B185, 0x16CD3BB0, 0xA7BAD1A2, 0xFCA51E58, 0x02D19142} } } ,
20742 { { {0x5CC32B3D, 0xCF1FBF41, 0x1A770C03, 0x6369EC5C, 0xA2FD90B4, 0x579DF21E, 0xC98F0469, 0x0A195BC8},
20743 {0x6450BA39, 0xB306C135, 0xDA9D4BC3, 0x81F225F8, 0xB284A859, 0xFCB68616, 0x3E29E821, 0x1126C674} } ,
20744 { {0xB0D31B17, 0x7C849662, 0x99262274, 0xAC9981F9, 0x48FB7E9C, 0x76A813B9, 0x3D6DFE7F, 0x04146695},
20745 {0xA2D79882, 0xF7BDBD87, 0x7B1A5E18, 0xA18A587F, 0xC6F5FFC9, 0x10D95F1F, 0xF0553B84, 0x03340994} } } ,
20746 { { {0xE75C6173, 0xE1C21BB3, 0x3C364E7F, 0x5B1717B7, 0x57717058, 0xD3575FAD, 0x6D609783, 0x0B951905},
20747 {0xD61B96FD, 0xFB65C3F9, 0x367547E6, 0xA9250F33, 0x18A707D8, 0x9779BA45, 0xE4038159, 0x19EBCE9C} } ,
20748 { {0x4A508B29, 0x881D8439, 0x124A7FDC, 0xF77D65D1, 0x15089176, 0x0ADFDCFF, 0x8AF9CBF6, 0x23010BE3},
20749 {0x87EC3EAD, 0xB2ABBD6B, 0x13AE21CF, 0x9F128C15, 0x7FBA4F23, 0x8D13B3DF, 0x04FFF817, 0x14E7FD83} } } } ;
20751 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2945 a000");
20752 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2946 a001");
20753 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2947 a010");
20754 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2948 a011");
20755 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2949 a100");
20756 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2950 a101");
20757 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2951 a110");
20758 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2952 a111");
20759 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2953 a200");
20760 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2954 a201");
20761 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2955 a210");
20762 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2956 a211");
20765 static const fp12_t var_a = { { { {0xD2778CA6, 0x8625E2F0, 0x74C74012, 0xDF4A6424, 0x992FCC0A, 0x419E530D, 0xC3293076, 0x1FCAD20E},
20766 {0x028B15BE, 0x5F482CCC, 0xC0F1F313, 0x330C6870, 0x7AE44C4B, 0x99FA2B03, 0x8ED0BDC9, 0x149D0180} } ,
20767 { {0xE780BA3C, 0xE47E8140, 0x752F98A5, 0x65A92A5E, 0x5674148A, 0x4120B50A, 0xFABD39CB, 0x1038CECA},
20768 {0xB7E02F72, 0x8431DCA7, 0x82989A16, 0x5D999857, 0x7C52889C, 0x4B441E6C, 0x2809A327, 0x20A4CC18} } } ,
20769 { { {0xA455478A, 0x936D3B32, 0x31B1B7C5, 0xB72D6217, 0x86066F63, 0x0E823820, 0x0B082BAD, 0x1583C58B},
20770 {0xCD3C27C4, 0x206D08B1, 0x3D1D7BBD, 0x5AF24BAE, 0x5BA83BFB, 0x82745DB1, 0x3B0CBBD4, 0x1F1244F6} } ,
20771 { {0x34EDE175, 0x89CBF6B5, 0x60FFCA23, 0x2F1A1A58, 0xE51075A5, 0x163582DC, 0x027D6F17, 0x117A73E3},
20772 {0x68413FBE, 0x359FD446, 0x907320A2, 0x32A7D30E, 0xEE7C679B, 0x4E85B29A, 0x9B0C211D, 0x14714AE8} } } ,
20773 { { {0x096CB9BD, 0xAB7EB5AD, 0xADCFC0B9, 0x3FA1423B, 0x74D3884D, 0xB05C13B9, 0x3353B2D3, 0x199B5257},
20774 {0x0C26B522, 0x64E341F9, 0x6B4AB01C, 0xF3786725, 0x8D78139C, 0x7514E67A, 0x2E5955A8, 0x1472262B} } ,
20775 { {0xA3F070F9, 0x378656F0, 0x4575316A, 0xD4EC1F92, 0x26973610, 0x07039948, 0x3CA32D35, 0x235102C7},
20776 {0x6819C825, 0xEB2F9AD8, 0x687254E4, 0x8D5B85BD, 0xDAD2CC49, 0xB85AD5FD, 0xFDFFEAAC, 0x23DD925D} } } } ;
20777 static const fp12_t var_b = { { { {0xCFAFC7A0, 0x8B6F4864, 0x1172DFDF, 0x918AB7FA, 0xB24A4FAA, 0xC5379C50, 0x23131D64, 0x21A5A88F},
20778 {0x655FBAC6, 0xDA8B4ABC, 0x531EEF32, 0xD29C82CA, 0xCCA6CD55, 0xA46AD544, 0x969A3D53, 0x07B40F6F} } ,
20779 { {0x0266F6AD, 0xFD3D9DE4, 0x06BCC123, 0x790B794B, 0x2567BB84, 0x1121819B, 0x0ACE9F19, 0x00CDF865},
20780 {0x32B7B83F, 0x9C66A121, 0x73F92EFC, 0x47A65EF6, 0xE5080DCA, 0x6335DA8C, 0x28FF0B48, 0x1D906154} } } ,
20781 { { {0x58E85D0A, 0x168AFE96, 0x2018A923, 0x11C7D41F, 0x6A1D6CFE, 0x71FC5074, 0xDD30859E, 0x192D48DC},
20782 {0xEF172294, 0xDCC21D40, 0x9D498B63, 0xCDE47E41, 0x610F2157, 0x7138F7B0, 0x8A036ACC, 0x0E52F0F2} } ,
20783 { {0xBFB62FE6, 0xD85334EB, 0x4F508180, 0xC2C65438, 0x5967F5D7, 0xA925833A, 0x09BE647A, 0x2256923A},
20784 {0xCA20D012, 0xE4C2FCCC, 0x05722A1A, 0x2886C5A2, 0xED02FA55, 0x00CF3354, 0x35911AB6, 0x0C9C72C9} } } ,
20785 { { {0x809EC008, 0x41038FD4, 0xD96CE778, 0xAD93DC70, 0xA35A6ED3, 0x9A756531, 0x959CE134, 0x07D391CB},
20786 {0xE0F57054, 0xE9C54E83, 0xEF3AB419, 0x71D41D84, 0x3BA58036, 0x49CF71A9, 0x27122151, 0x0DCB9EFE} } ,
20787 { {0x2E37303E, 0x675D8611, 0x1C1AFB29, 0xB30832C0, 0xB115BE93, 0x7091E605, 0xF0BA4497, 0x224C03C1},
20788 {0x8C78C986, 0x666E5D0B, 0x2DD92981, 0x71038D34, 0x2F7CB068, 0x7EF9D9B3, 0x7B62368E, 0x1CAB325E} } } } ;
20789 static const fp12_t var_expected = { { { {0xED8F3D6F, 0x411F3F7C, 0x63D77298, 0xAB7A24C3, 0x15E3C855, 0x435A0594, 0xDE93FCD9, 0x05DC6847},
20790 {0x5D309156, 0x888F8598, 0xE0E50B97, 0xD658BAAC, 0x690D6774, 0xE19E54D6, 0xD1D088E8, 0x17E4646B} } ,
20791 { {0xF4AD512E, 0xC0B42B5B, 0x4307B69F, 0xB0451993, 0x3A09967F, 0xF16DFD50, 0x8E82AFA0, 0x0456F3AF},
20792 {0x28F1A7D6, 0x53766E34, 0x71CB71A0, 0xFCBB1AFC, 0x9E4C622D, 0x8C73424F, 0x0D354093, 0x150A0453} } } ,
20793 { { {0xA4092713, 0x466148C0, 0x8303B892, 0x9D8E88A4, 0x34F1534E, 0x5A216C62, 0xC5FA34F2, 0x162FC874},
20794 {0xFB56CFC9, 0x61C8762E, 0x6EC372A9, 0x79B2DB56, 0xC0251D65, 0x575B01BF, 0x0596592B, 0x1FA6ECA7} } ,
20795 { {0x725C25E3, 0xA6F7B625, 0xE12F3872, 0x533EC851, 0x1FE13350, 0x6E3F6A14, 0x6D7E5789, 0x037E00F7},
20796 {0xF21801DF, 0x0609C5A7, 0x392CE7C8, 0x2C5D3E48, 0x51116DC5, 0xB6CF7C09, 0x45B9AB93, 0x1B708481} } } ,
20797 { { {0x59CB2366, 0x16E69676, 0x77ECBA16, 0xC887CCD1, 0x4FA78217, 0xA5BE2FE1, 0x5D991606, 0x22EA5F43},
20798 {0x4AD9B2C9, 0x0957A567, 0x92FA912F, 0xBF968FBB, 0x3C362696, 0x7882EAD8, 0xB62F32C0, 0x09AF28C8} } ,
20799 { {0xF990D041, 0xA77C0F91, 0x87D624E8, 0xADFA3CBC, 0x46D1DE22, 0x7EB50BE8, 0x4DA71203, 0x1B10D03A},
20800 {0xD043D55C, 0x6C01B4BC, 0x31E8A587, 0xA1A51FF8, 0xA46D1321, 0x3E411D4A, 0xB0BB987E, 0x198EB105} } } } ;
20802 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2957 a000");
20803 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2958 a001");
20804 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2959 a010");
20805 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2960 a011");
20806 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2961 a100");
20807 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2962 a101");
20808 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2963 a110");
20809 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2964 a111");
20810 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2965 a200");
20811 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2966 a201");
20812 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2967 a210");
20813 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2968 a211");
20816 static const fp12_t var_a = { { { {0x4498200E, 0x6E44F8CE, 0xD98AB6A4, 0x87FA767F, 0xF1C14A1A, 0xC08405AE, 0xD75E855C, 0x1549745C},
20817 {0xBC1742B4, 0x76AB011C, 0xA6A7D739, 0x0E6889DB, 0x71F21ABC, 0x034FF4D0, 0xF2D2AAA9, 0x0C496919} } ,
20818 { {0xB5E12362, 0x42D52A8A, 0x8B6214FD, 0x4056A367, 0x6D64FB0B, 0x0BFB4011, 0x91169EE4, 0x0D357942},
20819 {0x65B1FEDF, 0xE56690E8, 0x9F35B821, 0x2329E5FA, 0xFA85DCE8, 0x27523947, 0xD15B6B61, 0x0893D490} } } ,
20820 { { {0xCC531159, 0xC2FB141B, 0x20155169, 0x25A2BD42, 0x4AA33ABF, 0x6A3E1D12, 0x0FEE9EC3, 0x09EEC132},
20821 {0xFFBD5C89, 0xFDCA3EF0, 0x5C807748, 0x8252E88E, 0x7D832B5C, 0x05EF19B3, 0x8DD8F1F3, 0x0637E07D} } ,
20822 { {0xB7681272, 0x7BFA6926, 0x470AADD9, 0x2F9F6428, 0x3FC498F0, 0xF03CB795, 0xC9D545BA, 0x18680314},
20823 {0x7ABEFD96, 0xC4445E3A, 0x85E3F135, 0xA88A2558, 0xAA0F1125, 0xC3931FC4, 0x55697C90, 0x06E0E6A9} } } ,
20824 { { {0xABE6E88C, 0xD087AA3F, 0x327A0B26, 0x11559824, 0xC372F1DF, 0x3616696E, 0x1682EBEF, 0x21D0CE24},
20825 {0x94628922, 0x2D700999, 0x1CF729DA, 0x7302A61D, 0x8E8AEBED, 0x2CD30940, 0xE13C74BE, 0x1AE8ED46} } ,
20826 { {0x051C1FA9, 0xE4849B7B, 0x93D16F64, 0x12679003, 0x36DE8D09, 0x137C7812, 0xDDD249E8, 0x1CA114D9},
20827 {0xE6FE1C14, 0xED33355C, 0x903C543C, 0x04FB6CAE, 0x549F709B, 0x8FE8904F, 0x0FBA8029, 0x15DD11BF} } } } ;
20828 static const fp12_t var_b = { { { {0x88A37D03, 0xAC31387C, 0xDF69B253, 0x26D361CB, 0x889AA5C1, 0xBAF9EC0B, 0x29F9A9C0, 0x12A30630},
20829 {0x23F57B4D, 0x9F5C473F, 0xE0B61840, 0x86D7A1FC, 0x55F2A99C, 0x69184BFC, 0xF47BD9B6, 0x15FFC8D9} } ,
20830 { {0x5FA5B892, 0xF65D80B4, 0x492C986F, 0x806864F8, 0x6E000914, 0xD20E8B17, 0x929CDFEF, 0x1DE12550},
20831 {0x089056FC, 0x44EFE76A, 0x16C1C76F, 0xF9E61891, 0xAE1DB711, 0x4742AC55, 0x0F648364, 0x20B11E8A} } } ,
20832 { { {0x43DE8312, 0xA3B2E61F, 0xB588C791, 0x42D4164D, 0x68BE7631, 0xE4DAF252, 0x4A699A06, 0x02D2CBEE},
20833 {0x4880BCF3, 0x82205047, 0x53415549, 0xE63EDA48, 0x9023BC19, 0x6B70E231, 0xA04CF863, 0x18217125} } ,
20834 { {0xA003B7E4, 0x589E4E00, 0x73FF5300, 0xE1ADC883, 0x3B917108, 0xA35E2B67, 0x98910585, 0x012E365A},
20835 {0x7050A9DA, 0x3C579AF4, 0x6E7BA4FA, 0x067B9C0D, 0xB48CE36A, 0x2BDB715C, 0xBCCEE0B0, 0x004B6AA8} } } ,
20836 { { {0x59E1C515, 0x7240173F, 0x008FFD36, 0x456CCAE1, 0xE37E47C4, 0xD8F77651, 0x72382F58, 0x07DBC2AF},
20837 {0x08BA9F47, 0xCB7DA396, 0x6533690D, 0x61E787A1, 0x22488644, 0x4701AE2B, 0xC81D1863, 0x1F08F5BF} } ,
20838 { {0x78E3C966, 0x8B0A59CC, 0x3F00ED93, 0x2F83B160, 0x1D0C0BF0, 0x9F6072AE, 0xF5C3E17E, 0x1E193E52},
20839 {0xAE4B8C25, 0x184E04E7, 0xA0ACA498, 0xD17F7B4B, 0x06B90ADD, 0x0CE5FD54, 0x1F36E3BA, 0x0C351DD8} } } } ;
20840 static const fp12_t var_expected = { { { {0x8D855E15, 0x5B081EF0, 0x89F496FC, 0xB17B32A2, 0xE0E6C591, 0xF4081A96, 0x277F3709, 0x152AEB86},
20841 {0xE608F6DB, 0x231121A2, 0xF8E4BF9B, 0x9B513DB8, 0x8F66CB84, 0xA76E11A5, 0x10ACED41, 0x053D3DF7} } ,
20842 { {0x04E39FF5, 0x591CF4BC, 0x329C3784, 0x5D1C90C5, 0x61759A1E, 0x8B9027C0, 0x0E078B4B, 0x22AA3C84},
20843 {0xF13A4AFE, 0x8C46BE85, 0x9A5AA833, 0x957E04D9, 0xA2A36BD2, 0x6BC41D93, 0xD4FE6F86, 0x01F6B691} } } ,
20844 { { {0x5FC64463, 0xD8486FA4, 0x0688A7C6, 0x48A89F9E, 0xBAFD52A1, 0xA56EE615, 0xA792B110, 0x04BC5759},
20845 {0xE52E5C68, 0xF67C052E, 0x6C01D8EA, 0xD8873506, 0x492D7AB3, 0xD274CB38, 0xBB8CA0C7, 0x0E670EFC} } ,
20846 { {0xF23DA1A9, 0xADB00AAA, 0xA97E4589, 0x4D668DF3, 0xF446A16A, 0x85CA53E0, 0xC3CA29DF, 0x18E879C5},
20847 {0xD676BF1A, 0x3CA62A11, 0x9174D4EB, 0xCB78B765, 0xCA68EB25, 0x455136F9, 0xF579C625, 0x03CD1736} } } ,
20848 { { {0xFA01134B, 0xCD3DDA83, 0x3108B500, 0x2063D709, 0xEF9A6268, 0x88476F25, 0xF736750E, 0x1D27B026},
20849 {0x5CB0EB70, 0xDDDA3AE7, 0xBAD9F6EF, 0x8DB55A4C, 0x58914255, 0x829B09D4, 0x2B75188D, 0x073E778C} } ,
20850 { {0x7B389652, 0x6C919B84, 0xB0606872, 0x19F5097B, 0xA291DEC7, 0x6031FFAB, 0x923320CE, 0x0965506E},
20851 {0x0EA870FF, 0xE2964009, 0x4372150C, 0xD14E1CA7, 0x5C524A8B, 0x392765F2, 0x1836CE49, 0x1C3F00AB} } } } ;
20853 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2969 a000");
20854 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2970 a001");
20855 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2971 a010");
20856 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2972 a011");
20857 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2973 a100");
20858 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2974 a101");
20859 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2975 a110");
20860 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2976 a111");
20861 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2977 a200");
20862 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2978 a201");
20863 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2979 a210");
20864 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2980 a211");
20867 static const fp12_t var_a = { { { {0xB2EE69C7, 0xBF6AE219, 0x5BABCB41, 0x97A1730D, 0x117C9077, 0xCF2C6CBF, 0xC6846DA0, 0x08EE561E},
20868 {0x521FB526, 0xFC1F06AF, 0xC8A2F71F, 0x7C0B9137, 0xA35935E8, 0xC436C8A6, 0x0F98F9F4, 0x022259B1} } ,
20869 { {0xBB70C7C8, 0x07581B78, 0x63B7029F, 0xE9173710, 0x18EE3F2D, 0x5E4B81D8, 0x47368B46, 0x09A18D86},
20870 {0x4C903DB6, 0x4AC34F19, 0x7B80EB47, 0x7DF7E2B7, 0x1278F617, 0x4FF998BE, 0x4F463405, 0x1E16166B} } } ,
20871 { { {0x21D4584B, 0x63503D47, 0xEC4B8E4A, 0x85001AFE, 0xFA505512, 0xB447C1DE, 0x3E5CAB83, 0x1F1578AC},
20872 {0xBD971E41, 0x0ACD15CF, 0x15C7B68B, 0x240C1F6B, 0x851C4735, 0xAE64014B, 0x5439CB6D, 0x0FBA05C6} } ,
20873 { {0xC53F9F11, 0xE1935A46, 0x7F88F4F7, 0x12181911, 0xAAC956AF, 0xC83AE443, 0xCBF615E5, 0x02F30975},
20874 {0x7D263B48, 0x3D3B2812, 0x7496F492, 0xEB114C08, 0xFD596832, 0x7688BA23, 0xE04F4AF7, 0x0FE4EBC8} } } ,
20875 { { {0x6DD0C93F, 0x0BDAF2F4, 0xE212E5E6, 0x50C1D505, 0x1FE049D2, 0x16497062, 0x796BF775, 0x15EC610E},
20876 {0x3321784A, 0xDDCC42DF, 0xCE295E70, 0x9F667C51, 0x2533E702, 0x6E1DB9E9, 0x5EC2E3C5, 0x0BA6E77A} } ,
20877 { {0x257477C1, 0x652DAFC7, 0x13192714, 0x77F83BA3, 0xEA44B996, 0x8BBCDD28, 0xC5B73C31, 0x125A5049},
20878 {0x97941F4E, 0x1F8D7115, 0xD58CDDEE, 0xCB5F9AA3, 0x6777CD40, 0x3C58F9F6, 0xA4CF06C0, 0x19B64120} } } } ;
20879 static const fp12_t var_b = { { { {0xE7FE8BA9, 0x712916B6, 0x4D0DF2FE, 0x9B35C5DD, 0xF47D5446, 0x72CF28B5, 0xB1A10CD5, 0x059B90AA},
20880 {0xFEFC9F6B, 0x674F100D, 0xB61E359D, 0x57A6A8CE, 0x595B1818, 0xBDF32AD6, 0x2CBFA313, 0x07562D46} } ,
20881 { {0xC3659214, 0x01C2C60C, 0x8125C42F, 0xD5C5BA75, 0x3AAFBD57, 0xCE340F89, 0x41D29337, 0x13B383CF},
20882 {0xB14B9693, 0xD18EBF83, 0x08837319, 0xEB272DC4, 0x7D4214AC, 0xB49CF19C, 0x287B4016, 0x09B1B584} } } ,
20883 { { {0xDCF66D98, 0xEC71B4A7, 0xD7CE5E54, 0xCA0D429F, 0x370E783F, 0x10206E24, 0x2DDD2FF6, 0x184961EF},
20884 {0x76BDAA19, 0xACA7543F, 0xB60D9D88, 0x0BA26754, 0xF4EBD725, 0x6A23A8B0, 0x1E840279, 0x1A9773E9} } ,
20885 { {0x04EA4D4E, 0x021806DE, 0x7DB80500, 0xB159786C, 0xB6650155, 0x3C84CC41, 0x992A6607, 0x2201988D},
20886 {0x5CD16B36, 0xDA5C02D5, 0x5A039678, 0xDC510155, 0xC6EB0790, 0x239D0D52, 0x0EF65643, 0x10222B90} } } ,
20887 { { {0xC7F2EAAF, 0x5F202024, 0x4A01E911, 0x617107C1, 0x92D83092, 0x5A46C69A, 0x906A326E, 0x1287AD67},
20888 {0x16E3B12B, 0x65CD2435, 0x529ED903, 0x4ECA19FC, 0x173F3F30, 0xCC1BB0E0, 0x55683B61, 0x132D647C} } ,
20889 { {0xCD0C93E1, 0xBDDCD537, 0x907EED7C, 0x34BC3241, 0x63CA2EA2, 0x2979EF24, 0x161EECEA, 0x05BF609D},
20890 {0xDEDC1F5D, 0x03245014, 0x92046A71, 0x3D801C58, 0x2F9AF18F, 0xAC443F95, 0x9222364A, 0x092008EA} } } } ;
20891 static const fp12_t var_expected = { { { {0xDBDA169D, 0x76EE3383, 0x6EE00443, 0x07CF4D21, 0x6A496AA5, 0xEBFA30FE, 0xB5CD9595, 0x1AC82F8E},
20892 {0x22F43697, 0xE4E2DB44, 0xEB48423D, 0x4BEC573A, 0x7BD6790A, 0x4A85C040, 0x649D336C, 0x1055BF9D} } ,
20893 { {0x5473F020, 0x987F11A4, 0x8F6CD994, 0x67DCE856, 0x7CD05990, 0x469AA920, 0x246A76C9, 0x00AC9943},
20894 {0x1C4BE5A5, 0xB7C433F0, 0x3F3D7306, 0x4E000537, 0x3C1A75A2, 0xEA7E026B, 0x7D3E4A25, 0x080CC924} } } ,
20895 { { {0x9EC5171A, 0xA0084012, 0xAFACBC89, 0x33FC5C13, 0x563BB1C8, 0x9FA8B47E, 0x4BA2E263, 0x0B515C48},
20896 {0xF9596295, 0x15D84131, 0xC4E2BF9A, 0x7F049C99, 0x05BFCCB0, 0xF594AA7D, 0x107C1592, 0x03A20E98} } ,
20897 { {0x9643423F, 0xED43D276, 0x447C3FC6, 0xF3093D81, 0xCF9CD964, 0xD1DBEE88, 0xA83C4C67, 0x1A31A0EC},
20898 {0x07254181, 0x9FC5C3A0, 0x95105308, 0x61B3E055, 0x4897E2A6, 0xF9F32174, 0x218E11C3, 0x00EE05AB} } } ,
20899 { { {0x5F3132A1, 0xEAEFC9F7, 0xB8D6073D, 0xC1FDB7F7, 0x19B4EB34, 0x0D6C127A, 0x79C07B15, 0x0AA99542},
20900 {0xCE052D45, 0x7769DF16, 0x764C8B2D, 0xAC2F62A8, 0x1878A6BF, 0x84FA4E16, 0x5338C59F, 0x1518092B} } ,
20901 { {0x4DF2CE8A, 0x5EB25983, 0x02858560, 0x186AB2D9, 0x7110F291, 0x449606F6, 0x12DEAB54, 0x23514DBD},
20902 {0x0E6E6A7F, 0x84DB992A, 0xDA6FCDD6, 0x0EA11C14, 0x5729C41D, 0xEFCB7AEF, 0x98266BA4, 0x13FD45ED} } } } ;
20904 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2981 a000");
20905 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2982 a001");
20906 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2983 a010");
20907 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2984 a011");
20908 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2985 a100");
20909 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2986 a101");
20910 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2987 a110");
20911 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2988 a111");
20912 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2989 a200");
20913 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2990 a201");
20914 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2991 a210");
20915 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2992 a211");
20918 static const fp12_t var_a = { { { {0x4BB27C61, 0x95029644, 0x511F80D0, 0x610CFBBE, 0x62F32EC4, 0xA3B21081, 0x35D42FF4, 0x13CB75BC},
20919 {0x58BA6644, 0xF7FB1FB2, 0x97BC3D05, 0xEF8A0FD9, 0x2DB4B1C6, 0x7994794B, 0xB65D3F56, 0x17CF9DA5} } ,
20920 { {0xE5C9D6BF, 0x40A1A0B1, 0xB200006C, 0xA32A9007, 0xE4A11B2A, 0x59C046A0, 0x5A9195D3, 0x1C722856},
20921 {0x7B3D30C2, 0xC9F70E60, 0xFD6FAD68, 0xE5B63951, 0x26D0CD12, 0xD8907B4A, 0xC3A53E5F, 0x050B7B0D} } } ,
20922 { { {0x9E556E84, 0xEAB24390, 0x26C49B25, 0xBFD52554, 0x46AF0BD4, 0xF5B9A563, 0x31C6AE25, 0x09AFCDFC},
20923 {0xF9886CB8, 0x3D2EE918, 0x9AC6D80F, 0xDDB05F2A, 0x9001F084, 0x451A6D8D, 0x1E573AD4, 0x1EECF2C0} } ,
20924 { {0xB9737F81, 0x46FE330D, 0x9322533E, 0xD2CE8E53, 0xCF6D47F8, 0x4DE64609, 0x9978BF70, 0x029DDC31},
20925 {0x23937A79, 0x0634600F, 0x5DEA4CD6, 0xCBFD2CB5, 0x6880F886, 0xA955BA02, 0x6B98BF5D, 0x1F1F1537} } } ,
20926 { { {0x44F547D0, 0xD2288A25, 0xB6672EF1, 0x001DB3F2, 0xDF7A3F44, 0x8CA1ECAB, 0x551E3C83, 0x14684E19},
20927 {0x913DDAAB, 0x26A55B37, 0xF51C7D19, 0x43C2ACAE, 0x6DA963AB, 0x847D4F6B, 0x77AC1C44, 0x0FC1FAD7} } ,
20928 { {0x0C1AA52F, 0x779A7036, 0xD3399276, 0x8E4EEA6A, 0x12C4A5F3, 0xF7B723D8, 0x9F3D2065, 0x0D256577},
20929 {0x876DAE68, 0xC6103CFE, 0x5330CAE7, 0x1C699532, 0xFDA16CD7, 0x46E892E5, 0xB3E80234, 0x05424248} } } } ;
20930 static const fp12_t var_b = { { { {0x8C4F7592, 0x59EDBF4B, 0x51C2C2F7, 0x1E4BCFDC, 0x3965395D, 0x6FB8BAC5, 0xC69F5CE4, 0x09FEC27A},
20931 {0xAB02C7E8, 0x38A6791E, 0x136AC71E, 0xCB3B9A0A, 0x4266DF59, 0xEDC52CBE, 0x2158C825, 0x0998E3F0} } ,
20932 { {0x9730F471, 0x66F8EC2B, 0x5C9C3D68, 0x2E6B7CC8, 0xE1AFF149, 0xC3C3B44C, 0x11513193, 0x0760D756},
20933 {0x30C78D75, 0x506D0C85, 0xB4AAF5C4, 0x3439EDA9, 0xEAE1ABCF, 0x9BC18AAB, 0x1B7743DC, 0x17D83BEF} } } ,
20934 { { {0x0BD902E5, 0x84DD3732, 0x8846A943, 0x690E0F59, 0xA3BD01ED, 0x8DB43BB1, 0x51A35E7C, 0x03138036},
20935 {0x4709AA6C, 0xC977C23E, 0x0B4678A9, 0xFF6EF94D, 0xA98669B2, 0xF26A22F6, 0x531E9DF0, 0x0CB27201} } ,
20936 { {0x0837F31C, 0xC6F82A53, 0x6625AF25, 0x17F0EC3E, 0x2595F931, 0x551AF912, 0x2889C157, 0x1D0CCFA5},
20937 {0x92DE64D6, 0x18873056, 0x7F52DBE5, 0xFCD3A5B9, 0x750DD87B, 0x186FD790, 0x9F3E9C79, 0x0DEB8F0B} } } ,
20938 { { {0x1F347C8F, 0x33F8C228, 0xA12810FB, 0x95DC54E9, 0x30281128, 0x55C45C9F, 0x0FEBD9A5, 0x1D5F3BC7},
20939 {0x4A6ED931, 0x152B6FC2, 0xF44FFDEE, 0xA2CCE991, 0xAF112782, 0xF617EB3E, 0x580CE9FC, 0x24B31F1B} } ,
20940 { {0xF190B3A4, 0x7C5BD3A5, 0x631A3CB6, 0xFD81609B, 0xD563CC57, 0xDA240CDA, 0x2FFD7492, 0x00C382A9},
20941 {0x3213CF5A, 0x32AEAED6, 0x7F0AEA85, 0x62054592, 0x7A381D97, 0x0C4C3FA7, 0x6FC47BDA, 0x14A85C87} } } } ;
20942 static const fp12_t var_expected = { { { {0x839C8E09, 0x8E24C4F3, 0x3A75B8C5, 0xCF0937F1, 0x06415A2E, 0x64190E75, 0x560BB800, 0x246FC602},
20943 {0xD6640B5F, 0x5B56BD50, 0x15E33222, 0x6D646EEC, 0xA651C3C9, 0xC54A19A6, 0xA9AFA539, 0x14F925BB} } ,
20944 { {0x054DC8E8, 0xD7F6D429, 0x75208991, 0x3E6365B7, 0xA74198A8, 0x0BAAE169, 0x84227D0A, 0x205140DE},
20945 {0x5EA24405, 0xF38D57CC, 0x91EAB338, 0x302F4B3C, 0xAFA1700B, 0x5BE3AC75, 0xAB349F25, 0x1EB7C290} } } ,
20946 { { {0x6B6407A2, 0xF88B5AE7, 0x6212111F, 0xE34C5D7F, 0xF48D84C5, 0x04521778, 0xF623B091, 0x0D173E7C},
20947 {0x2D67DF75, 0xAF3F95BC, 0xECAC1691, 0x4B0B9B77, 0x7C62C708, 0xB7D305B2, 0x0E581B74, 0x1F5FBFAE} } ,
20948 { {0x333978D5, 0xF487D0A7, 0xDA5F99A0, 0xD38E97F7, 0x4E8BAD39, 0x33464BBD, 0xBB023AE7, 0x0C5A21FD},
20949 {0x95361BFF, 0x7C4E93C8, 0x0F2DD67D, 0x8648B8D5, 0x7E592E3E, 0x48B1022B, 0xDF86954E, 0x1F804071} } } ,
20950 { { {0x6FB655DF, 0xC493E035, 0xF6FE8BD4, 0xFDAFF3F1, 0xFED8D06F, 0xA84BD485, 0x17B7DAEA, 0x193EF077},
20951 {0x655220A0, 0xD6EA54A4, 0x91010713, 0xA7B8738B, 0x93BFFB1A, 0xBB34B0AE, 0x89B61FE4, 0x142B7759} } ,
20952 { {0xC679FC6F, 0x92517D02, 0x5D1A0F22, 0x174A9E0E, 0xC1CFAD07, 0x79648116, 0x0CBB556C, 0x1DB5B43B},
20953 {0xBEB2E3AC, 0xC581ECE0, 0xBAAA8295, 0x6573B301, 0x133C2626, 0x0A8D0602, 0x2960F6F0, 0x04235F03} } } } ;
20955 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2993 a000");
20956 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2994 a001");
20957 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2995 a010");
20958 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2996 a011");
20959 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2997 a100");
20960 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2998 a101");
20961 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2999 a110");
20962 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3000 a111");
20963 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3001 a200");
20964 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3002 a201");
20965 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3003 a210");
20966 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3004 a211");
20969 static const fp12_t var_a = { { { {0x19501916, 0x54C1EF3E, 0x6FB747EC, 0xDB829167, 0x9EB63C7E, 0x21995FA3, 0xEDE99ABE, 0x1C2B6E04},
20970 {0xDD404CA2, 0x4D02B8CD, 0x5F144272, 0x0B6B47B4, 0xC66F2C89, 0xCAD18D48, 0x2C49F97D, 0x07AB87FB} } ,
20971 { {0x77916783, 0x941F9D25, 0xE044FB82, 0x1C314F3F, 0xFC96FE77, 0x6E433CC9, 0xCD549F85, 0x083A58FE},
20972 {0xA14C06DF, 0x5CF1AF09, 0x1A676551, 0x44C4A7DF, 0x195934A6, 0x1B4CAED1, 0x897A041B, 0x15B0096E} } } ,
20973 { { {0x556C3994, 0x4F3D1309, 0xDD0D0E16, 0x58B14F79, 0xBBF049BA, 0x2908A695, 0xEC780CFC, 0x0233F3F0},
20974 {0x788E0D9B, 0xFB42C0EB, 0x696FC07A, 0x37E23F23, 0xF27B0CFC, 0x84B89746, 0xC54D54B2, 0x117ED1AA} } ,
20975 { {0x5A53A601, 0xB9EDEDF9, 0x4CBDFA42, 0x8F801C90, 0x4E901B94, 0xCA0C5BF7, 0xB0E306F2, 0x0AF155C0},
20976 {0x5851E6F4, 0xBE02C1F5, 0x530CDFAE, 0x5F74FD0E, 0x0402250D, 0xEB1111A2, 0x15C8696C, 0x034D2675} } } ,
20977 { { {0x4F1D204D, 0xBB63AB1B, 0x8EF3C180, 0xA9E16199, 0xEA3505E4, 0x3C367318, 0x45ED211D, 0x06EC6F05},
20978 {0x8AC74F22, 0x5B8A8C77, 0xF847F19B, 0x90EF9666, 0x7E64800F, 0x036C8B62, 0xF315D2DA, 0x0E466C41} } ,
20979 { {0x08D6DFC0, 0x9C305297, 0xEB590B2A, 0x4B20DE19, 0xD9543C0E, 0x27E76BED, 0xE2193EF9, 0x1E957590},
20980 {0xE5F6FD30, 0x24AE29E5, 0xE91188F6, 0xD20489A1, 0x80AAF871, 0xCC2AFFA5, 0x5A1F7BB3, 0x056A2DEA} } } } ;
20981 static const fp12_t var_b = { { { {0x21F63867, 0xE1F40B93, 0xE8FAF456, 0x87B511A2, 0x3AB9BB94, 0xCD44A6FF, 0x658991AF, 0x0D3853EA},
20982 {0xCA56BFA1, 0x7B263689, 0x72104CC4, 0xCF7C14F7, 0x92E15D4D, 0xC43B5EEC, 0x12602970, 0x028A7196} } ,
20983 { {0xF20D2126, 0xB105C3BA, 0xB472786D, 0xCC220AB2, 0xEBC4713A, 0xA9DBA89F, 0x44E5BC45, 0x1B519A9C},
20984 {0x5973BBB5, 0x9C0A8506, 0x25AC8A90, 0x3D60937A, 0x69B35794, 0x81F80D42, 0x77A32577, 0x0C3AE7CF} } } ,
20985 { { {0x87661117, 0xE9448CD5, 0x2176329C, 0x0B5D3DC1, 0x8FCAC6B6, 0x92807D8C, 0x46542793, 0x13FFFFF9},
20986 {0x2F78DE90, 0x3E77EF6D, 0xA698C29E, 0xC7C51ABE, 0x0864887C, 0x67E611C3, 0x00CC4EC3, 0x22EC6A90} } ,
20987 { {0x018BEF10, 0x218020BC, 0x7DA87686, 0xFE994234, 0xF92233AE, 0x986AAF7B, 0x0288F58C, 0x21213DC8},
20988 {0xE9EC3C87, 0x20DC3772, 0x525B38EF, 0x80516189, 0x0D06DF74, 0x28EBBD65, 0xA4A7EDF7, 0x21A2CA61} } } ,
20989 { { {0x550D775D, 0xE34B1372, 0xD25DE11A, 0xB97D1C30, 0x9FBD3C62, 0xBB0A6FD8, 0x5DC71596, 0x04BF9CBD},
20990 {0x1960FAE9, 0x85FD7349, 0x5BDFD689, 0xC78D0BD2, 0x5B17ED2E, 0xE62344CC, 0x6DADD6FB, 0x1BA3E0B2} } ,
20991 { {0x70B8E32F, 0x3A7B46CA, 0x819515F9, 0xDDB945A9, 0x59B8F587, 0xEFE64B2D, 0xC2077855, 0x151855E2},
20992 {0xCE4586B7, 0x03C81624, 0x2FE7622F, 0xA0A4DDAD, 0x4EBECF55, 0x09A0A8FB, 0x681BB07A, 0x0E28B163} } } } ;
20993 static const fp12_t var_expected = { { { {0x9EA4AF30, 0x0FA23E3E, 0x86427437, 0xA4799FCC, 0x9A5B7953, 0x29322783, 0x45AE830B, 0x1C6D5CD0},
20994 {0xF70CDBBE, 0x3756C965, 0x00F3D7B4, 0x834A6F7D, 0x5AC2379D, 0x6140D321, 0x41EE7E91, 0x0281FDCF} } ,
20995 { {0x82E20B14, 0x2A229B9E, 0xE422682B, 0x50736FBC, 0xC227430C, 0xA25525E1, 0x200DC41F, 0x0CCCE746},
20996 {0xCF96DD34, 0x1D5BDAE9, 0x01F62693, 0x774ABC47, 0xFB22EEE0, 0x6A42232A, 0x59096D09, 0x04F0CA76} } } ,
20997 { { {0x6D03D5F6, 0xD399AF5A, 0x1C9CA67E, 0xD450DBF3, 0x55BF4CF7, 0xD90EBFE1, 0xC912F7DF, 0x1CABA06F},
20998 {0x27BD02BA, 0x4EEC808A, 0x99A7CD65, 0x524B4C4E, 0xF7649F3B, 0x304E2B9D, 0x4FCB7FB8, 0x0F06A182} } ,
20999 { {0xA394513A, 0x2EE35DFA, 0xE955680A, 0xC9C20EFC, 0xF3886015, 0xD0E1D8BA, 0x984F48FA, 0x033E8981},
21000 {0xCE1482EC, 0x3AB8C0D6, 0xAA0BE223, 0x66E7E6C6, 0xDDC578D9, 0x76EE4DCC, 0x6C56DD75, 0x187716F6} } } ,
21001 { { {0xB4E55BF5, 0x43E942AA, 0x5915D01E, 0x25128A47, 0x69299D8D, 0xE80A6654, 0xAFECFEA2, 0x0AFC7F3F},
21002 {0x82FCAA25, 0x616F6B32, 0x0F4E0A95, 0xE6B40A9A, 0x9D12A9EA, 0xA6CDBA16, 0x3ADC4727, 0x107CBE0C} } ,
21003 { {0x7C3F4BC6, 0x6746AC97, 0xB6FB173E, 0x7135BB1C, 0xA8899E6A, 0x1C9CF203, 0xA9AA4E95, 0x1C4C8186},
21004 {0xA9918225, 0x2EE46C37, 0x0BA51C47, 0x5707E035, 0xA7528FE0, 0xF3A836C5, 0x014C8256, 0x04ECA8E8} } } } ;
21006 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3005 a000");
21007 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3006 a001");
21008 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3007 a010");
21009 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3008 a011");
21010 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3009 a100");
21011 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3010 a101");
21012 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3011 a110");
21013 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3012 a111");
21014 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3013 a200");
21015 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3014 a201");
21016 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3015 a210");
21017 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3016 a211");
21020 static const fp12_t var_a = { { { {0x96EDD081, 0xC1843C45, 0x98BE6977, 0x1FC16CE1, 0xB609C5EC, 0xDB8D0D2D, 0xEE84ABFC, 0x1282BCC4},
21021 {0x5F8A23AC, 0x8F8C7620, 0x29587242, 0x2ED9FDDD, 0x4E23E04D, 0xD5E4E578, 0x6871486A, 0x0E35BE70} } ,
21022 { {0xF7884181, 0xEF7CE79C, 0x52E1C845, 0x689C72D1, 0xFF3C5B45, 0x8E2E0E7C, 0x054670A5, 0x0CA40387},
21023 {0xADAFDE6D, 0x6E8F3CFB, 0x3E023443, 0x6E6F5483, 0x7D797DA3, 0x52D99ED9, 0x6F7CF462, 0x0DC324D3} } } ,
21024 { { {0xE9033BA5, 0x1529EDF2, 0x79770F6E, 0xCFA51FF2, 0x8EEE8559, 0x1B86917F, 0x063089BA, 0x137CC303},
21025 {0x1D01CE9A, 0x68F78142, 0x7A0307D2, 0xAA5D11F0, 0x92148A8E, 0xEA366418, 0x29029FB1, 0x124B0117} } ,
21026 { {0x15FBEFA1, 0x48490A13, 0xF6739D4B, 0x38E171E1, 0x6E569D82, 0x953E9E0C, 0x87325B96, 0x247FCE66},
21027 {0xAB3797A4, 0xA69EF83F, 0x3C048243, 0x60AF2796, 0xD6DCD754, 0x85F54433, 0xB931ECD7, 0x210DBB8A} } } ,
21028 { { {0xE3978B44, 0x95F92D29, 0x28D4E5C6, 0xD0BCB6A9, 0x1DBBD981, 0x329D93C0, 0xD2FD2F65, 0x154985C1},
21029 {0x3DA5B8BF, 0xA5204D85, 0x44081B1D, 0xC366493C, 0xE700FB35, 0x0B89495C, 0x83FD581A, 0x2455AF69} } ,
21030 { {0xE5D54D37, 0xB20BABBC, 0xE7E23602, 0x8930382E, 0x9E6978E8, 0x2E1AABF4, 0x186E37D9, 0x0975133B},
21031 {0x62B6FFA3, 0xA8D76B21, 0x3F0FC2B4, 0x22B9CA9D, 0x3B9F0C2B, 0x1F5D64EE, 0x74898B86, 0x0A68C0AF} } } } ;
21032 static const fp12_t var_b = { { { {0xF59FA0D1, 0xF79A18E6, 0x14167BC8, 0x92C0AC6F, 0xFE148470, 0xAFE917E4, 0x0139B4A1, 0x072F7598},
21033 {0xE9D53658, 0x05A38295, 0x13846D40, 0xD15A1551, 0xB0C4E31E, 0xC3EA69ED, 0x45FB1ED1, 0x249737DA} } ,
21034 { {0x0DD9FB47, 0x36DB67CE, 0x214A9F97, 0x2766010E, 0x9957001D, 0xA40F7A8A, 0x80F565D3, 0x0AC26FCE},
21035 {0x8011CB4E, 0x48E2A0A2, 0xF4131D13, 0xC3A43720, 0x7C154F02, 0x90EABC4E, 0x359C993E, 0x07876847} } } ,
21036 { { {0xF8BE05CB, 0xDA16CBD4, 0x445633DF, 0x4EB40389, 0xCE5C7691, 0xEC3330FC, 0x54FB9637, 0x11CD384C},
21037 {0xE9248813, 0xDA3AD5E6, 0x12F0E7D6, 0x542A0A6A, 0x30549BEB, 0xD072B035, 0x562BFF02, 0x235541E3} } ,
21038 { {0x7B185731, 0x08B0236A, 0xFA5B4FCB, 0x93F6698C, 0xAFB22E4B, 0x6DE16FE5, 0x9CAB869D, 0x2060209C},
21039 {0xC4E16968, 0xE0F2DE2C, 0xE4250ABD, 0x390B9377, 0x4EFDFB48, 0x1678BE92, 0xB0EE64F3, 0x171A94F4} } } ,
21040 { { {0x57C4BA23, 0x83B9FA83, 0x277ABE50, 0x70A0BEC7, 0xAA98046B, 0x76F5CCCC, 0xC56DC4E3, 0x06B3931B},
21041 {0x314F15AC, 0xFC913DB0, 0xE21B4F04, 0xA7E53CCD, 0xF35BF219, 0x27FB6CDA, 0xD20A396B, 0x0455E69D} } ,
21042 { {0xE7331A2B, 0xF42AEC79, 0xD3D97765, 0xD0FC9C45, 0x1FAABE04, 0xF11BC892, 0x7A9E51EB, 0x0463A298},
21043 {0xA888557A, 0xFD52971D, 0x8301338B, 0x6DEFDB8F, 0x037884D5, 0x0F1E32F3, 0x9BB51CD5, 0x1123C350} } } } ;
21044 static const fp12_t var_expected = { { { {0x1AFBCA89, 0x0238C755, 0x9C76C5AF, 0xBD8A7666, 0x7AC14B4C, 0x9EA17285, 0xA35A501B, 0x0AC82718},
21045 {0xAC168D4B, 0x61D77763, 0x013EB108, 0x4B471B67, 0x9617993D, 0xC72C7016, 0x2A69B604, 0x0C9013D6} } ,
21046 { {0x8DAE5606, 0xE5C81BF0, 0xE9D54D8B, 0xC55DACC1, 0xBF82C8B4, 0xD90B1B88, 0xB7353DED, 0x048E1A6E},
21047 {0xD2FF92CF, 0x5DBC66E1, 0x68237F6D, 0x972A2246, 0xAA47A151, 0x2A379964, 0x999A930B, 0x0EACC2E6} } } ,
21048 { { {0xAAAD7AA5, 0xDB9C85F9, 0x84F72C8E, 0xBA9CEAA5, 0x8DF6A091, 0x894DB1A9, 0xBF6C7FA5, 0x14794648},
21049 {0xEC02C70C, 0x14B92815, 0x272018BE, 0x47709C1B, 0x0493065F, 0x7A882704, 0xBF0DD1A0, 0x02D44665} } ,
21050 { {0x74D2BD15, 0xE1FDDC2F, 0x726CFA36, 0x7E8DC456, 0x2BA8C151, 0x62DBE902, 0x66D2ABFC, 0x0B7D925F},
21051 {0x0486CA10, 0x3002872A, 0x513E2B57, 0x529089B3, 0x2F2F0377, 0xF822B292, 0x9F33D707, 0x1BAD5F2C} } } ,
21052 { { {0x4AFDBA61, 0x2CA910A3, 0x82F6F008, 0x88EAC697, 0xAAF810DA, 0x28DE02EA, 0x97EF3249, 0x1DFF31FB},
21053 {0x0613619F, 0xE3501CC4, 0x958FE700, 0xE6E31B48, 0xF00E9784, 0xA6550555, 0xA6B40811, 0x1DDDAA3B} } ,
21054 { {0x74E8CC58, 0x4259C6C7, 0xDB0BF435, 0x1009C493, 0x574DEFFE, 0x924F8C46, 0x0B611212, 0x0EEA7A6C},
21055 {0x44D3A9CF, 0x14809223, 0x300062F3, 0xC926193F, 0x9A68CABA, 0x7A1D3E80, 0xF761868D, 0x0F4FE4B9} } } } ;
21057 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3017 a000");
21058 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3018 a001");
21059 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3019 a010");
21060 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3020 a011");
21061 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3021 a100");
21062 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3022 a101");
21063 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3023 a110");
21064 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3024 a111");
21065 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3025 a200");
21066 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3026 a201");
21067 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3027 a210");
21068 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3028 a211");
21071 static const fp12_t var_a = { { { {0xDF4C7639, 0x4D69A9D6, 0x6EA524A4, 0xBDE75156, 0xA1AFF269, 0x19EDE54A, 0xF0A3ACB9, 0x21F23F69},
21072 {0x38ADF340, 0x2E62AA16, 0xD0E1D247, 0x63D77F46, 0x0AC15397, 0x6CE51557, 0x2FEFE9D4, 0x0FA32D05} } ,
21073 { {0x114DBBE0, 0x32CCA330, 0x4BEFA950, 0x97B50179, 0xD26A9EE2, 0x03F38151, 0xEB5E93C6, 0x0DC5B94D},
21074 {0xD0BF9B52, 0xFD97FF08, 0xB64CBB7C, 0xFBB8E63B, 0xB32CE215, 0xE6A384AC, 0xC2F3DB9E, 0x201F44F9} } } ,
21075 { { {0xB0831A9C, 0x2E0DA712, 0xDD18EAA2, 0x309FC44A, 0x65B7B894, 0x33C431BD, 0x1FCD8994, 0x17E1B7C3},
21076 {0xA9C3841E, 0x943D7ADD, 0x95C94C66, 0xE04C27D2, 0x6C1E06CC, 0x2A6B6361, 0xC054CCD0, 0x0DD982A8} } ,
21077 { {0x0757F00B, 0xF2C33B4B, 0xC9637806, 0x2492B720, 0x348111B4, 0xDFC6DA60, 0xF040F210, 0x14A5AF9C},
21078 {0xD9F73BDE, 0xF813623A, 0x6F347838, 0x7A5C1573, 0x93BEA47B, 0x6E753E74, 0x374C4DE1, 0x0516A2C2} } } ,
21079 { { {0x0314BE6F, 0x633874D8, 0x76C7C0A3, 0x3E07D592, 0xA46636F1, 0x0BBBE565, 0xFAF8141D, 0x1789FCD8},
21080 {0x7A7E62B3, 0x07B5B8BE, 0x5629E5D3, 0xAD898EC2, 0xC33D455D, 0xD4B2E12B, 0xE6695BDB, 0x1E9AA79C} } ,
21081 { {0x2FA57C9F, 0xC8EFA0B1, 0x4412FBC5, 0x341CCA8A, 0x5BAD53DE, 0xDA821ACD, 0xCAC3B743, 0x0AE7CA6C},
21082 {0xAE304940, 0x1C7F5812, 0x3A31CDA8, 0x55529CBF, 0x0ED5CC3A, 0x2A17A5A0, 0x5A8548A2, 0x1539F963} } } } ;
21083 static const fp12_t var_b = { { { {0x557155DE, 0xAC0585FE, 0x032CD6BB, 0xB2E06EED, 0x766E7EF1, 0xADC6AECE, 0x68AA9BFB, 0x17483929},
21084 {0x363ACB49, 0xE97A2903, 0x97D02CA9, 0x3AE6AF07, 0x3AD8B3B7, 0xECAF2348, 0x51CCF1F5, 0x0BA3777E} } ,
21085 { {0x5D5B056E, 0xBDF078A0, 0x3DDEAE2F, 0x17FA7AE2, 0xB1EE300B, 0x7FFDEF4A, 0x8E2265C6, 0x065150CD},
21086 {0xE1656318, 0x66AB978F, 0x2F664570, 0xFBE0950A, 0x86CEBBF9, 0xFAD8D4AB, 0x130A3D41, 0x098B38BB} } } ,
21087 { { {0x98115414, 0x654E19A1, 0x252EFEB4, 0x8C581431, 0x749DFE91, 0x422ABE36, 0xD46A18C6, 0x222AB929},
21088 {0x00072CD5, 0x1E95D8B3, 0x4D4D8F75, 0x78F09A48, 0x32A8D2DA, 0x1675A2CA, 0xA92DA881, 0x01B8C148} } ,
21089 { {0xFF1E754F, 0x52260F0B, 0xDCCE6F75, 0x06E9440D, 0xD43BED06, 0x07672595, 0x6A508EE6, 0x23B21E85},
21090 {0xC2FB2937, 0xDD74D825, 0x276E93A9, 0x7FF3A8EB, 0x07B20D70, 0x33BD402D, 0x0AD34CC7, 0x06C5BD80} } } ,
21091 { { {0x272DF71D, 0x378938B6, 0x8192BE1A, 0xD74047E0, 0x0D077AE7, 0x5790BFC1, 0xDEC23418, 0x09FB7379},
21092 {0x9C586A2A, 0x68CB6192, 0x5DA99273, 0x4286A2F3, 0x30C314CD, 0xB43180BA, 0xFC38F6BE, 0x20538F38} } ,
21093 { {0xA60BA92A, 0xB59C043D, 0x32CAB93C, 0xCBDC75D5, 0x539AE2DC, 0x34A0EE06, 0x24DCDA78, 0x1B455C7E},
21094 {0x70FA9D2C, 0xB0BB9250, 0xBED78DB9, 0xC5FDBFD2, 0xA5B844A4, 0x50D6F9ED, 0x9DE99FD1, 0x04ACC208} } } } ;
21095 static const fp12_t var_expected = { { { {0x7C1FF723, 0xD3AB2F89, 0x859111F2, 0x086321A2, 0x16650835, 0x37C5641E, 0xF9D57AC0, 0x1867A68C},
21096 {0x2FD4D420, 0x8A81F375, 0x3679D4C5, 0x73399F71, 0x24E6D2E3, 0x56DB260F, 0x2091801B, 0x0650E6FB} } ,
21097 { {0x719B5087, 0x62D679F8, 0x14EB7334, 0x2A9040B7, 0x28E13EBC, 0x6EDC64FB, 0x24DDB209, 0x1A1E4C8B},
21098 {0xB768C106, 0x85194C26, 0x76C8C3C7, 0xB3479D47, 0x42B8460A, 0x01048C96, 0xAC1C055E, 0x11280859} } } ,
21099 { { {0x5DC67FAD, 0x679F51AB, 0xAE4389BD, 0x131D2C61, 0x1A4E1F9A, 0x9B48A91E, 0xC908879F, 0x1566F083},
21100 {0xA9E437F3, 0x20DD37DE, 0xF99BD797, 0x485D23FA, 0x014F4560, 0x1B61AC54, 0xE320C29B, 0x13141866} } ,
21101 { {0xBEF95A2A, 0xF802CD68, 0x317DD0B3, 0xA47DD2F7, 0xF55FCF48, 0xE1D34165, 0x972132A3, 0x1ABC1113},
21102 {0xB5633643, 0x816A0437, 0x82F9115C, 0x6E2D5BF6, 0x3FE0180C, 0x45EE6327, 0x964B5D94, 0x2459029E} } } ,
21103 { { {0x5A2D12E8, 0x684D5247, 0xE19665E5, 0xFFE53C2F, 0x159D7F20, 0xC9D6489A, 0xE67EEE40, 0x0D8F2692},
21104 {0xE29B606B, 0x0DC33DF2, 0x568A273D, 0x8A0A56F4, 0x5D40577B, 0xAB4410B6, 0xA86F7AF9, 0x0CBCBDA0} } ,
21105 { {0xF46F580F, 0x1CB90FBD, 0x4043DE6F, 0xAE34522F, 0xFBD2752A, 0x2F4C0F9E, 0x7984EDE1, 0x0840090D},
21106 {0x224396D6, 0x36D0D411, 0xAF3AB2B0, 0xA5BAF305, 0x3C459578, 0xE71A63F6, 0x610529BB, 0x04879ED3} } } } ;
21108 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3029 a000");
21109 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3030 a001");
21110 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3031 a010");
21111 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3032 a011");
21112 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3033 a100");
21113 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3034 a101");
21114 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3035 a110");
21115 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3036 a111");
21116 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3037 a200");
21117 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3038 a201");
21118 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3039 a210");
21119 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3040 a211");
21122 static const fp12_t var_a = { { { {0x6D0E233B, 0xE800BBCA, 0xB37E029F, 0xAC79757F, 0x4EEF4F4E, 0x431D9915, 0x943DD2EE, 0x19CDB877},
21123 {0x92B20C2A, 0x897CA27D, 0xC334EDDA, 0xA92ACA4A, 0x0BD42EA5, 0x19FB9918, 0xC81D7EAD, 0x0E3A0192} } ,
21124 { {0xE9AC3809, 0xB9FE90A3, 0x737D18A7, 0xEFBC2510, 0x421590D6, 0x16C0C338, 0x69B429C8, 0x19964C70},
21125 {0x4E6AF15E, 0x1B23C6F6, 0x10E5B820, 0xF9521944, 0x90213C24, 0xC3055814, 0x7627C51B, 0x017C536E} } } ,
21126 { { {0x259F8E70, 0x06C6D26A, 0xD932117B, 0xB85A21F5, 0x332E8834, 0xA1FC25C9, 0xF49AA094, 0x074EEC27},
21127 {0xBD261161, 0x52E3FEBE, 0xFAAF72B6, 0xEA3D7333, 0x7546893E, 0x6BD9E12D, 0x7792E0EC, 0x1BFC6D4E} } ,
21128 { {0x7A57A628, 0x09FB3F30, 0x572791C3, 0x5EC77309, 0x4AAE7E37, 0x5908AFDC, 0xA9874F44, 0x05E62FBD},
21129 {0x369F56D0, 0x23BB8992, 0x9126711A, 0xDF33FCAA, 0x6FF9780F, 0xE352ADF4, 0x5346E9D0, 0x1EA07385} } } ,
21130 { { {0x4B1FF826, 0x9CB52B51, 0xB0D563F6, 0x7E61AFB1, 0xD3C43823, 0x39BE915A, 0x053F9527, 0x083BFC15},
21131 {0xA607AB70, 0xDBE64132, 0x50D4E81F, 0x464DE489, 0x0B719A39, 0x6852B72E, 0x2EF952FD, 0x1106BB70} } ,
21132 { {0x13AB0D0E, 0x356D94BC, 0xE838E806, 0x4FA60AB8, 0x538B74B0, 0x11925A07, 0xF7BF8450, 0x1C5839CB},
21133 {0xE454E951, 0x12705A3B, 0x13038115, 0x9920B046, 0x0B9927ED, 0x880D0163, 0x8E076342, 0x145B6E20} } } } ;
21134 static const fp12_t var_expected = { { { {0x6CBAEB3C, 0xCD83A4E3, 0xF5C69B89, 0x27FE75CE, 0x19565BCD, 0xBEF4D717, 0x10631DF2, 0x16189AC1},
21135 {0x9D239F63, 0x8BE95B34, 0x7494F142, 0x0C1ECA57, 0x3FDA40F1, 0x5BD6E0DD, 0x40384673, 0x23373C50} } ,
21136 { {0x89F7A295, 0x9CBA8359, 0x19B026E4, 0x3D9F41AC, 0x04F73C66, 0x20F55B93, 0x357F2186, 0x11289C11},
21137 {0x3A533501, 0x732D4DE8, 0xCB2FAD7C, 0xCC14A50A, 0x92BC0085, 0xEB4353DB, 0x10AE737F, 0x0F314C61} } } ,
21138 { { {0x4615EC56, 0x575521AC, 0x6960CB12, 0xFC777C1C, 0x841B9751, 0x366B9D6A, 0xA9D7F74A, 0x05410029},
21139 {0x9EC09A36, 0x91DEA5F7, 0xAFB84F00, 0x8B959156, 0x5A59C44A, 0x3C1F9FC2, 0xA478C51C, 0x0AA5B1A7} } ,
21140 { {0x0FE79EEB, 0x8F313535, 0x2CB3E357, 0x953AC62A, 0xDD0B753F, 0x1B68C755, 0xD85E0B83, 0x00761F7A},
21141 {0x814F9E69, 0xFC49751D, 0x3A32E88C, 0x6A7755FF, 0x6D1AEBD7, 0x63CF024E, 0xA251A937, 0x206F5243} } } ,
21142 { { {0x1D3DB041, 0xD3E4020D, 0x39E17C5F, 0xE810BA96, 0xD6B151C9, 0x7D8620DA, 0xF8449705, 0x171D780B},
21143 {0x4B41299B, 0xFC1CAF0F, 0xDF85DA30, 0x6EBC7973, 0xECE1A0C5, 0x429D02DA, 0x0C7D6702, 0x19E89C85} } ,
21144 { {0xF1749ECF, 0x8A2426B5, 0x9BBE891C, 0x1ACA85FF, 0x065260C5, 0x07D11964, 0x753DB385, 0x0FE751C0},
21145 {0xA82CD391, 0x06FE2E0B, 0x28131329, 0xDCA6294D, 0xEDEDA6C8, 0x0C40DCEE, 0xF5188B1A, 0x042C2CB1} } } } ;
21147 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3041 a000");
21148 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3042 a001");
21149 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3043 a010");
21150 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3044 a011");
21151 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3045 a100");
21152 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3046 a101");
21153 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3047 a110");
21154 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3048 a111");
21155 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3049 a200");
21156 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3050 a201");
21157 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3051 a210");
21158 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3052 a211");
21161 static const fp12_t var_a = { { { {0xE3F4BB15, 0x264D6CAC, 0x8D140FA6, 0xE1606CA9, 0xAC7BD047, 0x377A67BC, 0xEC9F9596, 0x013F0FD7},
21162 {0xA350E6AE, 0xFB077A93, 0xE446998A, 0x457C59F6, 0xBEE2F2C3, 0xCCB3F39A, 0x780C1060, 0x09A1D629} } ,
21163 { {0xB4097D07, 0x91F32C27, 0xBDCA599E, 0x7C10BC37, 0x30023EA0, 0xB2D1E286, 0xD084BBEA, 0x07E2E8F7},
21164 {0xA6759240, 0x9944955A, 0xAAE9135E, 0x4F22A38D, 0x1BC65E3A, 0xC6488E4F, 0x36B8AE17, 0x0285E9EF} } } ,
21165 { { {0x796014AB, 0x9F9F7F76, 0x0D437BD5, 0xC3E84D7D, 0xCBD18B31, 0x05DDFA5C, 0x225E9030, 0x117CB6A9},
21166 {0xE0259A98, 0xAE51536C, 0x3DD53C0A, 0x0B7B4CB0, 0xDB4B7B6F, 0xABBE7240, 0x69AD1FA3, 0x11F2DC2B} } ,
21167 { {0x7177F37A, 0x6C32F5F9, 0x3BB46BC0, 0xAAACED1E, 0x88DDF33E, 0x5B949CB5, 0x8C9F3718, 0x144D3DBF},
21168 {0xEF9CACEA, 0x0A68E2C4, 0xB8F26D1C, 0x8D812C7F, 0x5D5621F2, 0x49716601, 0xF254C678, 0x1C8B44B5} } } ,
21169 { { {0xCC8F38B1, 0x22D0A695, 0x5C77FFA3, 0x74606378, 0xA15D2385, 0xEE92C1B1, 0x56CCE9F5, 0x04401A1C},
21170 {0x56FE9323, 0x3C811E99, 0xCCAFB6F5, 0x8700C830, 0xF6510B68, 0xD07E7267, 0x40ED1B59, 0x03C496D3} } ,
21171 { {0xFF009464, 0x10753B31, 0x52DCE792, 0xD00233DD, 0xB672A3F0, 0xA54CF28B, 0x9EF9DCAC, 0x15C6AEC8},
21172 {0x14058A35, 0x14CFCAB5, 0x375E2F52, 0x9414308C, 0x07937ADE, 0x722800DC, 0x8D78D5DB, 0x0CEFEA40} } } } ;
21173 static const fp12_t var_expected = { { { {0x10600E64, 0x8388D5CF, 0x3A5B8D6D, 0x7F0B8B05, 0xCC95410F, 0x5C2194DC, 0x2E676C62, 0x1714A439},
21174 {0xAB6D2479, 0x767ED3BC, 0xA1ABD879, 0xF77D84A9, 0x950F5AAE, 0x9E2431D5, 0xD976F75D, 0x15AC11D6} } ,
21175 { {0xD2273A84, 0xFB08E978, 0x8A27C711, 0x197CC94E, 0x9A4AF042, 0x013D032E, 0x9D59CCFD, 0x1158A008},
21176 {0xA752CD5F, 0xF8928B1E, 0xB40C3439, 0x6FCF5086, 0x6D394F8A, 0xB87E9B51, 0x7A07E4D1, 0x1A07A639} } } ,
21177 { { {0xEE91745B, 0xC2CD082E, 0x0DA223D1, 0x8C323DCC, 0xCD13BD64, 0x56D313EF, 0x5895BD47, 0x1CB28ABD},
21178 {0x681EAF1D, 0x5098C300, 0x40130B4F, 0xC4EEBC69, 0x5E29B9E2, 0x6A1ADD0F, 0x9C6083B9, 0x03B04A59} } ,
21179 { {0xEAE8B9D1, 0x4B91CBD4, 0x06F1C3D4, 0xC7E14D8C, 0xAE3A6D93, 0x85A97F05, 0x123FBB2B, 0x009661DC},
21180 {0x91EE2A76, 0xE8B8C293, 0x245B2D7E, 0x15C1406B, 0x9CE12AF2, 0x5D897606, 0xF86DE38D, 0x166B2E44} } } ,
21181 { { {0x71E5DE5E, 0xBC16DEBB, 0x3F669814, 0x42D89622, 0x416CBE0C, 0x28ADD239, 0x36FFA11F, 0x0211CBFC},
21182 {0xA6BFD5EA, 0x0F2B91D1, 0xE47C347D, 0x78D5CB5E, 0x1D6810C7, 0x014B4CFF, 0x4B9E776F, 0x1F4A4370} } ,
21183 { {0x5D342683, 0xBC5028A7, 0x70B43A59, 0x41A79FB9, 0x6FF82EA5, 0x46F182F9, 0xC8A857A6, 0x1D621A8B},
21184 {0x1F277731, 0x65822737, 0x0D739D62, 0x3F25FB37, 0xFFD5811C, 0x91AE6B08, 0x5BE4CCA2, 0x1E344035} } } } ;
21186 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3053 a000");
21187 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3054 a001");
21188 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3055 a010");
21189 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3056 a011");
21190 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3057 a100");
21191 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3058 a101");
21192 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3059 a110");
21193 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3060 a111");
21194 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3061 a200");
21195 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3062 a201");
21196 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3063 a210");
21197 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3064 a211");
21200 static const fp12_t var_a = { { { {0xC20CD687, 0x07F87201, 0x2A3BB36D, 0x04400D53, 0xE406CA75, 0xBD95C704, 0x8D452D82, 0x20BCB2FB},
21201 {0x8C945EFA, 0xDFDBBE81, 0x00E2770C, 0xFBED3BDB, 0x03EC8E83, 0xA4B3A193, 0x8E86807F, 0x1B110939} } ,
21202 { {0x6E707123, 0xBFD0DDF8, 0xC066C9F6, 0xBEB17B9F, 0x53D7727F, 0xD16FCB38, 0x4092DBD7, 0x0E48C77B},
21203 {0x82175259, 0x3E805BF6, 0x2F9F5956, 0xCB9AF18A, 0x4A2F9D33, 0x68C933D5, 0x9C36BC3F, 0x13FB6372} } } ,
21204 { { {0x6FF391E8, 0x9A96CEDE, 0xF18DDFAF, 0x817DA36D, 0xD10BA42D, 0x585AD554, 0x3140B315, 0x06CDB914},
21205 {0x44DF8063, 0xD05E751B, 0xD734B6F9, 0xAB23B6D8, 0x8EF81185, 0xAF85E9B8, 0xA7596DBA, 0x15DA7CE6} } ,
21206 { {0xC2573BC8, 0x416FE7E3, 0x950F3A6B, 0xDE2B81D2, 0xC59BC94D, 0x66309C27, 0xFECA7175, 0x128E9AA9},
21207 {0x995DE34B, 0xD56A6CB4, 0x85384F4E, 0xD4886829, 0x77D432D3, 0x4D3790A5, 0x525516D0, 0x2433DFF0} } } ,
21208 { { {0x38341CCE, 0x963F41CF, 0x6ACA80D1, 0x167FE5E8, 0x83AB2B31, 0x211BB674, 0x1A170603, 0x0685F257},
21209 {0x2BCF62FD, 0x32BAEAB5, 0x6FB106F8, 0x09D200B7, 0x717D85B9, 0xC49FF033, 0xEC69A9C9, 0x203D8859} } ,
21210 { {0xB64DD40B, 0xF1B70BCE, 0xB57B30B1, 0xAC91CDA5, 0x4282AD08, 0xE9FB6D44, 0xCE07C4B6, 0x148E3313},
21211 {0x869095CA, 0xD1A54CB0, 0x82472D55, 0x0028A998, 0x9866475F, 0xF7B02812, 0xD90B4BA8, 0x1A2BAA7B} } } } ;
21212 static const fp12_t var_expected = { { { {0xAD653414, 0xE04DB414, 0xE7B1412A, 0xD4DD98A9, 0x04C3FFD4, 0x5D903553, 0xF366FA67, 0x23AE4B35},
21213 {0x4214016C, 0x5F6A3C21, 0xA1594475, 0x714A70CB, 0x23A6904F, 0x58430C6C, 0xCE685A4A, 0x0B24B12F} } ,
21214 { {0xDB43D4A0, 0xE308E06E, 0x93413342, 0x920F50F8, 0xC9A5F9B3, 0x9E6BA5E2, 0x496960A4, 0x18F5E1F4},
21215 {0xFEEBA173, 0xD7921DDF, 0x8F62E67C, 0x4558EA20, 0xF989A5FA, 0x1026DF1D, 0x38017E24, 0x15CAF320} } } ,
21216 { { {0x4A95A7A9, 0x66A78BDE, 0x211DDF39, 0x43CB8678, 0xEB48867A, 0xBCB7948D, 0x4C4CC85E, 0x198B9638},
21217 {0xB1D4F1C6, 0x08E36F39, 0x58B8AE3C, 0xE8585C42, 0xCEA66DEC, 0x1B152FBD, 0x11C3DDBB, 0x04990057} } ,
21218 { {0x0108F7AA, 0xE53470BE, 0xF8DC545E, 0x8C32F7C0, 0x46FA3E89, 0x5D6F121B, 0x0E9C4103, 0x1A6FB3FC},
21219 {0xA288F577, 0x863EB176, 0xCC3776AC, 0x5F8157D7, 0xFDFB4D45, 0x7082E639, 0x3C6DC43A, 0x1C400953} } } ,
21220 { { {0x5BE4F255, 0x8F4D5799, 0x7EAFFA0D, 0x01E272AC, 0xEED984E9, 0xA16FAA04, 0xC2FABF18, 0x23795F27},
21221 {0xFAC1A93A, 0x93812273, 0xBE13F5FD, 0xE9798F90, 0x61681F22, 0x62C4E30F, 0x82A1B817, 0x12B339D3} } ,
21222 { {0x31F439A3, 0x00DAE2FC, 0xCC838817, 0x33EB8950, 0x26424AE3, 0x38E49025, 0xA445081F, 0x1F059B4E},
21223 {0x4EA1F9C8, 0x92B172DE, 0x84483AF7, 0xB9CD6B2B, 0x6E90CAF1, 0x1C1F55A8, 0xB0A09BF0, 0x025C1D95} } } } ;
21225 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3065 a000");
21226 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3066 a001");
21227 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3067 a010");
21228 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3068 a011");
21229 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3069 a100");
21230 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3070 a101");
21231 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3071 a110");
21232 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3072 a111");
21233 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3073 a200");
21234 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3074 a201");
21235 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3075 a210");
21236 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3076 a211");
21239 static const fp12_t var_a = { { { {0x53A8EFCB, 0xA4C63734, 0xBDA1BF72, 0xE31DC35F, 0xCCE5B79D, 0x3AF6DF54, 0x7212D464, 0x1C03D112},
21240 {0x6C4D7B6C, 0xC0FA05BC, 0xB52E9F4D, 0x8F6EC9EA, 0xEC23648F, 0x9BEA52FB, 0x2E664DF2, 0x1D54411D} } ,
21241 { {0x02DAD4D9, 0x8E1EFAD9, 0xDFABD13D, 0xCE16D77A, 0x3DF44F49, 0x1B6088EB, 0xFF1A5E1B, 0x0BEA84EE},
21242 {0x9E1AAB47, 0x6FCBDCD2, 0x280013DF, 0x19750137, 0x3ABDC7FE, 0xBD95481A, 0x2658F74B, 0x1AE7A85B} } } ,
21243 { { {0x6904F5B1, 0x1FA9A504, 0x3F566305, 0x914A9E27, 0x1CFA1199, 0x1E2F42D3, 0xA506D040, 0x0CA337D7},
21244 {0x2E30DA09, 0x586A210D, 0x039976B0, 0x23B4A8A1, 0xC67BF9D9, 0x6440AE46, 0x0A7BF0D7, 0x0ED570FF} } ,
21245 { {0xF33A5E30, 0x0F8202F7, 0xC78B3E5D, 0xBBFDBB0E, 0xE29BD45C, 0xE9561ED2, 0xACE0431D, 0x194DFA1A},
21246 {0xA5646091, 0x136C4652, 0xEBB64367, 0x8A9DC771, 0x5C372E38, 0x0F67F028, 0xAE126149, 0x053FF2E0} } } ,
21247 { { {0x75D73CE0, 0x7A54D06C, 0x5118B60D, 0x56978D97, 0x6DBC71B7, 0x84A85E98, 0xB4C79EB3, 0x1FE1F1D6},
21248 {0xDAFEC467, 0xC6473015, 0x7E6E4ED6, 0x8015F239, 0xB83CD948, 0x314E1AF2, 0xA5515B1D, 0x1055021A} } ,
21249 { {0xF7D5AE72, 0x6CFF492C, 0xDFE8F718, 0x7B18D5EA, 0x85990215, 0x4C107758, 0x3AD7B61A, 0x126EB8D0},
21250 {0x978EDBB8, 0xF7CB78AF, 0xBFD7A0EF, 0xACA19916, 0x2F73DE75, 0xF443FE4E, 0x10A49A89, 0x0E31EFCE} } } } ;
21251 static const fp12_t var_expected = { { { {0xC846250D, 0xD50887B6, 0x7A82571B, 0x00F38661, 0x7DE6EFEE, 0x38CC1FF3, 0x81F64611, 0x09C9DFEE},
21252 {0x319EB255, 0x3086B72E, 0xC255580D, 0xA6AD8A83, 0x2909B911, 0x5365D758, 0x4E2A1D5D, 0x093ABFDC} } ,
21253 { {0xF7E3DE9B, 0x2A8C30DC, 0xB1ADFCF9, 0x54AC74C6, 0x3B4E01BD, 0x0BEECB6A, 0xB762BE07, 0x02520244},
21254 {0xDEDA916C, 0x85B3C266, 0x23089D0C, 0x57976EFC, 0xA9459A1F, 0x660A0E3A, 0xACFFC621, 0x1856D159} } } ,
21255 { { {0x74ADF9F7, 0x0DEE4274, 0xB9916B26, 0x97546ACC, 0xC8B7FC45, 0xCAA9EA08, 0xDA23E295, 0x18BDDDD2},
21256 {0xFCA3E86C, 0x323A27B9, 0xFD6E3C6C, 0x9D61FEE6, 0xC614A3FC, 0x80C6AD85, 0x6CD6A79A, 0x0DA86B53} } ,
21257 { {0xB3C5308F, 0xFB64BFEA, 0x1990CCAE, 0x7BF2E74B, 0x6C9F2135, 0x998E3137, 0x0DEF72DF, 0x0215140A},
21258 {0xA55B8C35, 0x16C4908C, 0x8D2C4352, 0xE730D8FC, 0xDE548896, 0x7042A099, 0x9A7AD7D4, 0x1DF33669} } } ,
21259 { { {0x074C0F60, 0x4F17CF0F, 0x728BDF2A, 0x820340A4, 0x4032FE77, 0x990A2DFD, 0x83EEC00C, 0x096AEBB8},
21260 {0xD932DCE5, 0x1E999CCF, 0x81CB1EEA, 0xB93FBDBF, 0xD38D26AB, 0xF744813E, 0xE3BCF2A8, 0x115DF7A8} } ,
21261 { {0xA555345C, 0x50C1241C, 0x448A64BD, 0x944A4A93, 0xA6F6EAFE, 0xB3A3DD1B, 0xBF3731B2, 0x1FF8B21C},
21262 {0xFDD3FAC3, 0xC9710967, 0x8D59A489, 0xFBD36F03, 0x2A79FB29, 0x8F91CA4F, 0x3F1E93CF, 0x1A99A096} } } } ;
21264 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3077 a000");
21265 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3078 a001");
21266 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3079 a010");
21267 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3080 a011");
21268 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3081 a100");
21269 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3082 a101");
21270 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3083 a110");
21271 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3084 a111");
21272 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3085 a200");
21273 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3086 a201");
21274 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3087 a210");
21275 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3088 a211");
21278 static const fp12_t var_a = { { { {0x79909DFF, 0xFC3F2199, 0x52B9AF22, 0x0994B8A9, 0x4D9DDE73, 0x6D2110F2, 0xF1412C14, 0x0B39CAE4},
21279 {0x458DA20A, 0x7330AB92, 0xEF9D3EBD, 0xDCA3AE90, 0x8389AE65, 0x1BFCB29A, 0xBF9D2A6D, 0x14C61F45} } ,
21280 { {0x7710FB67, 0xAA9BB00D, 0x941CB32C, 0xCE40FB0F, 0xAAFA6713, 0xD5AEE3E8, 0x743AC749, 0x13AA7F77},
21281 {0x2A325969, 0x42C98F96, 0x0ED31B2B, 0xF90C833D, 0x1150AB6A, 0x4FABEA5D, 0xD3B9DB4D, 0x140CCEFD} } } ,
21282 { { {0xE49C18A8, 0xEBBD4697, 0x0D1D79E4, 0x7BEC58C7, 0x68DEE072, 0xE1D8EBD7, 0x2ECC8893, 0x222208C6},
21283 {0x6BE0ED44, 0x6DACCEE1, 0xC371B632, 0xD0491436, 0x59832576, 0x0650C623, 0xB0695A1E, 0x0E0BAD48} } ,
21284 { {0x19141C87, 0xC9245564, 0xAFDF536F, 0xE560149A, 0x5E60E793, 0x7DC965A5, 0x66DE41B5, 0x15D4120F},
21285 {0x7D192254, 0x746D71E3, 0x545A717C, 0xD70B754B, 0x3639CFA2, 0x2F96A74B, 0x931A0D1F, 0x0E22AFBA} } } ,
21286 { { {0x55E31ED8, 0x24219D12, 0x0E3DC3D4, 0x70677FB0, 0x767DBA98, 0x10A54A43, 0xCB2E2561, 0x1F7AD8A6},
21287 {0x83863F5B, 0x98E0B980, 0x539BDF8D, 0x590538A0, 0x095AD9A8, 0xAC22F0DF, 0x86C21FAF, 0x1F0C06E0} } ,
21288 { {0x19914D46, 0xE0D823CD, 0x3DE5D826, 0x59C35FD4, 0xB7BC53A9, 0x14FB9AE2, 0x7406D929, 0x014E5B03},
21289 {0x5EC520F1, 0x686B0D19, 0xF66F678C, 0x7853373E, 0xA3129586, 0x2C4C6D0A, 0x1E3213EF, 0x13D860B9} } } } ;
21290 static const fp12_t var_expected = { { { {0x4724A62E, 0x1E33BBCA, 0x546A7738, 0xA1174EC9, 0xF3DE0E99, 0xD83C6ED2, 0x18EE8BD9, 0x085DE03A},
21291 {0xBAE1FF51, 0xEA8E78C6, 0x1EDB61E0, 0xDA6E2FC8, 0xBDC506C2, 0x0F055AFA, 0x9CED5D98, 0x01F26BD5} } ,
21292 { {0x445CBF82, 0xF6C5E9EA, 0x539298F3, 0x35A9083A, 0xDEF82426, 0xCFC3B007, 0x8615A37A, 0x231EEACA},
21293 {0x5F759C4C, 0x32E4A8A0, 0x76B3E5B9, 0x283F51BB, 0x86757958, 0x3371A84F, 0xC12D8A0A, 0x1B7AF699} } } ,
21294 { { {0x9AF14EF6, 0x427C2760, 0x603E78C2, 0xCABCF13C, 0xFF82E547, 0xC1C01DFA, 0xCAF8E6C1, 0x049AFEEE},
21295 {0x6B59EBB5, 0x41E6BFFE, 0x48F03052, 0xE8466C5A, 0x511C8A21, 0xC0451F60, 0x221FC95A, 0x092C2590} } ,
21296 { {0xFBEA8C3A, 0xA159E6BD, 0x6256AB55, 0xFDE363E7, 0x8D7332AA, 0x2C63D57F, 0x52F547D9, 0x137E4D8C},
21297 {0x9137628D, 0x380ADD88, 0xD05920BB, 0x485EC3A7, 0x9D857E78, 0x840C15EC, 0xD4317392, 0x06A02805} } } ,
21298 { { {0xB1522FDE, 0xC958E623, 0xD93059B9, 0x9AA0FBBD, 0x3DCB099D, 0x06479098, 0x872EAA81, 0x18334FDF},
21299 {0x09DD63EA, 0xF49A4638, 0xA6450AA3, 0x270AD094, 0x191C40C1, 0x1C114125, 0x01F06C6A, 0x0B3D1270} } ,
21300 { {0x16E7D9F6, 0xD5BAEDAD, 0x58E01B61, 0xC8E272A7, 0x239CB237, 0x379E4181, 0x1675AD44, 0x095ECDC1},
21301 {0x7498FF8D, 0x5A4AFD78, 0x5788A6E3, 0x1BA9CB38, 0x0F7441CC, 0x3E7BD92C, 0x6CA23699, 0x0856D498} } } } ;
21303 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3089 a000");
21304 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3090 a001");
21305 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3091 a010");
21306 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3092 a011");
21307 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3093 a100");
21308 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3094 a101");
21309 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3095 a110");
21310 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3096 a111");
21311 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3097 a200");
21312 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3098 a201");
21313 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3099 a210");
21314 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3100 a211");
21317 static const fp12_t var_a = { { { {0x94C08074, 0xE7FFFC0C, 0x1925EC6E, 0x76669052, 0xD04DEF1F, 0xDF6AB71D, 0xEEE5504B, 0x05DEC2DA},
21318 {0x080A0229, 0xD0849F33, 0xC038E1DE, 0xA9F80F0F, 0x06E984CD, 0x89032243, 0xE689924A, 0x1984C207} } ,
21319 { {0x2AC65B24, 0xC9D9521C, 0xC84573A8, 0x513E72E1, 0x02FE100D, 0xD5735BE6, 0x3D5DC9C5, 0x01E0E381},
21320 {0xE3E92C01, 0x0FAAFD9A, 0xF459450C, 0x279E2AE2, 0x8D859B60, 0xCCD31024, 0x9226A17F, 0x1552801E} } } ,
21321 { { {0x72897B8F, 0x56D3B4A5, 0x6F19338B, 0x5BF926D2, 0x07E3C1C3, 0x916D224A, 0x1B94AEEB, 0x0B820F0B},
21322 {0xBA9CFCBB, 0xDE81862E, 0x077B59F0, 0x0678C85D, 0x36D31884, 0x5B42CA39, 0xD7C3EFB5, 0x1F6B2547} } ,
21323 { {0x539E9738, 0x4BA79B7D, 0x64A639E9, 0x4559DB34, 0xCA3C9736, 0xD367A77C, 0xB12EA712, 0x0D0B8D18},
21324 {0xDC6FC6C8, 0x7A53AE29, 0x960E9578, 0xB346B64B, 0x78BDB6F2, 0x6ABDAA76, 0x04FF6795, 0x08B0B771} } } ,
21325 { { {0x7A67FF27, 0xEAC5215F, 0xABBA0D7B, 0xE99384C5, 0x42873517, 0x534A2CD6, 0xD35DE1A5, 0x1008B8AF},
21326 {0x123EFECE, 0x221DBEF9, 0x790B2F0A, 0x012241A0, 0xA5688616, 0xA1B63BFB, 0xC5581D60, 0x042663C4} } ,
21327 { {0x035E34F7, 0x6EA5DB77, 0x5EDD6693, 0x7020C063, 0xE610D999, 0x56312783, 0x6438E66B, 0x231D7DE1},
21328 {0xAE266A84, 0x6108EBD6, 0x932D2991, 0x17A4CAFF, 0x4FE3FD9D, 0x8D2C78D3, 0x2B37AE9D, 0x1E4D2F60} } } } ;
21329 static const fp12_t var_expected = { { { {0xF79AD838, 0x2D15CEEB, 0x26240916, 0x7CDF6518, 0x9BC8C165, 0x4558D67E, 0xFF85947F, 0x07CD6495},
21330 {0x23DC68CD, 0x866B4850, 0x8F9DCBB5, 0xBAE1F98F, 0x7FA0CB84, 0xFA731E93, 0xEFCA12B1, 0x1D03944C} } ,
21331 { {0x2B6A929E, 0x65A25EEE, 0xDD3BCC0E, 0x02D2A6E9, 0x620FC49F, 0x2115D3D3, 0x1E790102, 0x02315B78},
21332 {0xEC61BBCB, 0x18BC352C, 0x3ADB1B4A, 0xB829325D, 0x30E8BEC4, 0x103C3A42, 0xD98F3923, 0x22993195} } } ,
21333 { { {0xB7B47158, 0x0BDEDB26, 0x6FBD9B1D, 0xDF8EF148, 0xFBFA8C62, 0x9C5C1009, 0xBEA3ABDF, 0x25002662},
21334 {0x999866FE, 0xD3B718B5, 0xE31353D3, 0x6D0BF7DB, 0xA319409A, 0xB7482741, 0x699DA9B6, 0x1EB34A17} } ,
21335 { {0x59020563, 0xB5C6D433, 0x0070AC63, 0x528CB8FD, 0xF603E82A, 0x8C819D20, 0x2BD1E8D5, 0x1E5FA8D6},
21336 {0x2C671EC2, 0xCE37FB44, 0xE2B05DD3, 0xC7B0EAF2, 0xB518871E, 0xDB53FD44, 0xC104203D, 0x203C61B7} } } ,
21337 { { {0xCC67B5F0, 0xC5174943, 0x03473051, 0xEC530CC7, 0x1A4FBEDB, 0xE67475C9, 0x73F5891C, 0x19AA41DA},
21338 {0x9471C0A6, 0x3A1D7C91, 0x00C91D1F, 0x76C17BFC, 0x05D05288, 0x70499DAD, 0x775D6F29, 0x0C18B310} } ,
21339 { {0x27F2E781, 0x13CA5AC7, 0xB347C49E, 0x9E7F0E19, 0x38B53FA9, 0xB5CD3EFD, 0x34180FEE, 0x1D857C88},
21340 {0xE3E0F105, 0xC6C71135, 0xD233E461, 0x88BBF07F, 0xC828121D, 0xC7B2D2A0, 0xEFA7D8F9, 0x09200FD1} } } } ;
21342 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3101 a000");
21343 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3102 a001");
21344 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3103 a010");
21345 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3104 a011");
21346 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3105 a100");
21347 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3106 a101");
21348 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3107 a110");
21349 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3108 a111");
21350 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3109 a200");
21351 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3110 a201");
21352 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3111 a210");
21353 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3112 a211");
21356 static const fp12_t var_a = { { { {0x6C4B20CF, 0xB69955EF, 0xE12C3B28, 0x8737416A, 0x6AEEF9F1, 0x3F3ABB0C, 0x35EA3A87, 0x1A75487F},
21357 {0xEFC4092B, 0xD8689D91, 0xEE02E1B8, 0xEF0F23B2, 0xAF13C018, 0x1893668F, 0x8E5E02DE, 0x123D6C6E} } ,
21358 { {0x21E7C750, 0x694309F2, 0xD20358E1, 0x9A2BEABD, 0x11C4DC1F, 0xEE2497D5, 0x115DA504, 0x1EDB577A},
21359 {0x3A0FADCD, 0x5D4D54E5, 0x0FE086A9, 0x4D520D27, 0x46151C8E, 0x6288FC29, 0x0242F361, 0x2065C9DC} } } ,
21360 { { {0x198FEE3E, 0x35032464, 0xB8AE47FA, 0xE06022EC, 0xF2F923AA, 0x25448600, 0x2286B8FE, 0x2066B2CC},
21361 {0x3FDE518C, 0x1C895FAB, 0x93244993, 0xC1CE346D, 0x438D57A5, 0x389F67C8, 0xAD7C4BE0, 0x22D47B97} } ,
21362 { {0x531B56F2, 0x7C04769C, 0xB7FEBBE4, 0x84FE0C0B, 0xC197EB34, 0x983DCBDF, 0xF0006AF2, 0x097457A6},
21363 {0x477C87DF, 0xA12D687F, 0x45E86717, 0x7F7F9A43, 0x45687B80, 0x38FA26A4, 0x5B9B76B4, 0x0C54B377} } } ,
21364 { { {0xF2E31C49, 0x628AF337, 0xCEDE088E, 0x1C800CDD, 0x4699A209, 0x46DD4542, 0x4C9D8DC7, 0x003912CE},
21365 {0xC98C68BD, 0x1B8084B1, 0x25CC5A4F, 0xD3A12511, 0x8D974F9C, 0x164B43B0, 0x4271C01B, 0x168A603D} } ,
21366 { {0x822884B3, 0x3D7B2E56, 0xDB7D98B0, 0x090339DE, 0x607DD946, 0xB173A895, 0xFBE0A622, 0x23768399},
21367 {0xE3125360, 0x257F1B2D, 0x9BFE49D6, 0xD0C00E17, 0xBA7250A7, 0x57FBCCBB, 0x5F00C3B1, 0x1C2D9CC0} } } } ;
21368 static const fp12_t var_expected = { { { {0xCA1AA840, 0x9CDE5632, 0xABCCAA76, 0xAD03E27D, 0xCFD88B11, 0xAF52613A, 0x6863FA7F, 0x1BCD7827},
21369 {0x8BBF9CC5, 0x211F910E, 0xDF2A023F, 0x1C12169F, 0xF2564284, 0x78FD7DC1, 0xA694CE02, 0x145089CA} } ,
21370 { {0x038D1DF8, 0x791973D7, 0x42E30B2B, 0x53EE46C1, 0xC5DCEE23, 0xD5A93D65, 0x0E01AF56, 0x0EF92B01},
21371 {0xB80A841B, 0x9C936115, 0x9EC49DE3, 0x4A18933E, 0x6F1AB8CC, 0x7946BE6D, 0x07E7E2BE, 0x15E871BC} } } ,
21372 { { {0x3492424E, 0x00AF5A1E, 0x87945693, 0x8303CE71, 0x7C808D6E, 0x91E3A8F1, 0xB38CD18A, 0x0B51220E},
21373 {0xBFF8B0ED, 0x539D5729, 0x5BADBD54, 0xA854487F, 0xB964050D, 0xCF79F950, 0x52634813, 0x1DE10033} } ,
21374 { {0x039CE231, 0xFD1B5E82, 0xE3F3029D, 0xF336D925, 0x1A7FAB8C, 0x65B3E642, 0xEC1644FE, 0x01C55FC9},
21375 {0x1488B017, 0x9ED79C00, 0x5A4F2BF3, 0x325026BB, 0x7C8213A3, 0x636449A4, 0x554B6EBD, 0x1113ACC1} } } ,
21376 { { {0x78DEA8BD, 0xA5AA1954, 0x2CE45661, 0x5A8362F9, 0x904FF5A8, 0xA189E18F, 0x33393A3F, 0x1A4E1D10},
21377 {0xA05A11BA, 0xE07F583A, 0x2A8E34AB, 0x93C51D1D, 0x6D341525, 0x90E1F976, 0x0448A69D, 0x04E2A4C9} } ,
21378 { {0xC3AC04CE, 0x60678FF7, 0x8E20D5BE, 0x60ACCDCE, 0xB2DC5889, 0xE5AE7D80, 0xFE23888D, 0x1D13ED12},
21379 {0xB15D1FC5, 0xAA2E0F30, 0xA2B5418B, 0xBE76B05D, 0x991EFE80, 0xF933BE72, 0xF8556F04, 0x023F690B} } } } ;
21381 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3113 a000");
21382 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3114 a001");
21383 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3115 a010");
21384 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3116 a011");
21385 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3117 a100");
21386 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3118 a101");
21387 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3119 a110");
21388 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3120 a111");
21389 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3121 a200");
21390 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3122 a201");
21391 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3123 a210");
21392 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3124 a211");
21395 static const fp12_t var_a = { { { {0xCFD8E95C, 0xAF01A7E3, 0x8C87F9DE, 0x6375433C, 0xB6C14CD3, 0x0F85B69C, 0xF7C1808A, 0x03BAAE61},
21396 {0x05B6D9D4, 0x02B69613, 0xBC5FAACE, 0x6606096B, 0x8852409D, 0x9AEA3533, 0x27B2F597, 0x09E8418C} } ,
21397 { {0xF4997998, 0x39C3A647, 0x0A8F6C6A, 0xFBAAC5D9, 0x99C87BD4, 0x9E11C93D, 0x91157633, 0x1A3E1EF7},
21398 {0x483FDCD5, 0xDA831A9C, 0x5BCC2983, 0x969F33FC, 0x0D8A2295, 0x8DF84594, 0x1738A5DD, 0x0F96DD9A} } } ,
21399 { { {0x6FCCB601, 0x4F37835B, 0x870727EF, 0xD2F77851, 0xF0281DD7, 0xB0F61B71, 0x876B483E, 0x103E09E5},
21400 {0x40829509, 0x514B6999, 0x86840F9B, 0x0942ADFE, 0x2B937299, 0xB5759203, 0x0A97F24D, 0x238AD3C2} } ,
21401 { {0x7FDA6CCB, 0xCCCFFB69, 0xC1C5A2E8, 0xAB6E73A2, 0xA9119280, 0x7E9996E5, 0x62395EC5, 0x0FB25B48},
21402 {0xFE777553, 0x6FDBCBFA, 0xB8EBE858, 0x5D6907A5, 0x87C151C0, 0x0CDD98DC, 0xDFBC7C30, 0x036803F0} } } ,
21403 { { {0x235CA349, 0xC83E3F0B, 0x10FB56A6, 0xD833A70C, 0x613314FE, 0x801908FB, 0xDFACB898, 0x1AFE6177},
21404 {0x219D372D, 0x796F0D2F, 0x8936F7FB, 0xC2006BE8, 0xBBDDC2F6, 0x4ED6E8D6, 0x6980D335, 0x0DEDC315} } ,
21405 { {0xE5525312, 0x17805010, 0x5DDAC9FC, 0x15157CD9, 0x2A67CC93, 0x6CA711E5, 0x14115A4B, 0x12B359C2},
21406 {0xF4A20D88, 0x459E37F1, 0x49BF259F, 0x77F7A025, 0xA7E9AF43, 0x1E4DCFA3, 0x526A1D68, 0x077C6BA9} } } } ;
21407 static const fp12_t var_expected = { { { {0xBF806251, 0xE45B10E2, 0x0301CEC9, 0x25EE88B9, 0x26487D20, 0x02CB420C, 0xF28BA4B1, 0x1CBAA206},
21408 {0x9CA79A25, 0xAD45780B, 0x11C29F94, 0x8BED36B1, 0x2A3DFC67, 0x90029518, 0x7F4A31DC, 0x13E4D8C5} } ,
21409 { {0xC0A3C7D8, 0x972B10CA, 0xA2277A7D, 0x10264C32, 0xAA603BE0, 0x0F98CEDF, 0xE0B47AEF, 0x14825BB4},
21410 {0xEA6EC890, 0x45247695, 0x5E3F3C7F, 0x13ED4C2C, 0x48199928, 0x59570B79, 0xFF42CC53, 0x1F419905} } } ,
21411 { { {0xB9087AE7, 0x5A87F315, 0xE58AEE42, 0xE5F4F284, 0x60FE16F2, 0x5BFC58A1, 0x0A004DB9, 0x071CD3AD},
21412 {0x68540994, 0x208F82BC, 0xE6D30029, 0xCBDCE737, 0x44FA68B2, 0xA73F2331, 0xCA52F272, 0x22F0972D} } ,
21413 { {0x3F46E382, 0x9C6C45E9, 0x9C76EBC1, 0xB9AF7524, 0x1B94B28E, 0xB345EFF4, 0x158E6F01, 0x1C2E5478},
21414 {0xFDC4D8B2, 0xDFB42469, 0xE13003CA, 0x18023A14, 0x4654D8E9, 0x8B343053, 0xD2C2558B, 0x08432002} } } ,
21415 { { {0x285C1ACC, 0xA715A38E, 0x3DCEA459, 0x9F086EE1, 0xE13E953B, 0x22FE143D, 0xD0F26BC3, 0x08D21221},
21416 {0x6B44A376, 0x61D10378, 0x15086CCC, 0xB5762182, 0x9016A1DA, 0xA44454C6, 0x8C5BE0C8, 0x18436AE1} } ,
21417 { {0xC85EE93C, 0xCF63FF24, 0x270FCC38, 0x0AD67CAE, 0xF71CD26D, 0x64B954F8, 0x52452254, 0x1C33078A},
21418 {0x3A974731, 0xABB7A36F, 0x2C62EDAC, 0x1CEB34A9, 0x38C3F0FB, 0xC4AD201E, 0xB9E4A17B, 0x11D2966A} } } } ;
21420 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3125 a000");
21421 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3126 a001");
21422 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3127 a010");
21423 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3128 a011");
21424 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3129 a100");
21425 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3130 a101");
21426 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3131 a110");
21427 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3132 a111");
21428 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3133 a200");
21429 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3134 a201");
21430 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3135 a210");
21431 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3136 a211");
21434 static const fp12_t var_a = { { { {0x3D3F1B29, 0x9F2CA176, 0xA2A6F598, 0x1A8E5C8E, 0x4A4F81C1, 0x99B978E5, 0xD3665C43, 0x0B1F3958},
21435 {0x4E535D8E, 0x6218DB04, 0xC5C082FE, 0x4BA49501, 0x8792AE7A, 0x4A6A205E, 0x9DA35A13, 0x1446B30F} } ,
21436 { {0x50C22B0C, 0x3E8CA9B3, 0xE265F048, 0xD760F1F7, 0xCABD31AD, 0xC8560C96, 0xC8A04231, 0x195EEC0D},
21437 {0x8D03C34B, 0xAE43885F, 0x26F6EDBB, 0xB015BE56, 0x6A66EE87, 0x0663FB4A, 0xB0E97D83, 0x18FF1F3E} } } ,
21438 { { {0x542F81D1, 0xA2B5B56F, 0x530DC145, 0x23742AB5, 0x0AEAF20C, 0xD66EE541, 0x3B6083C8, 0x07203167},
21439 {0x9AA4F8B7, 0x690A4FE8, 0xFB33995B, 0xD5D2CBB6, 0x295D3F68, 0xAFE080FF, 0x282E4694, 0x21EB2455} } ,
21440 { {0x099C4A6E, 0x27587518, 0x3D1B42ED, 0x8F7F8DF8, 0x80A92BE6, 0xD092CB05, 0x2BBC9095, 0x07134085},
21441 {0xF79D6294, 0xAE5635B9, 0x5FDB0EB4, 0x92B55B9A, 0xE94ED7E5, 0x6CD85610, 0xA51805F5, 0x240BA641} } } ,
21442 { { {0x781B86CF, 0x0561E975, 0x14B624D5, 0x1627429A, 0x6FC51244, 0xB841E912, 0x407C4945, 0x23125C69},
21443 {0x2490880C, 0x82911D8F, 0xDAFA30FE, 0x65641A02, 0x1B1D6BD6, 0xFACCA1EB, 0x0F4827E5, 0x236C802A} } ,
21444 { {0xC957F25D, 0xEF33ED76, 0x9094AD31, 0x6D99A383, 0x29CC042B, 0xD8BAA5A4, 0x476F8FCA, 0x1EF3BEEE},
21445 {0xF7785231, 0xB1A17502, 0x697429E5, 0x4B12211D, 0x52DEF601, 0xF9C35349, 0x49983216, 0x1C1D485E} } } } ;
21446 static const fp12_t var_expected = { { { {0x2521FFA3, 0xC835AB8B, 0xA46765E8, 0xA193061F, 0x4ACE349B, 0xC43EBA8C, 0x13F62B38, 0x06A4FF70},
21447 {0xCDE88E6B, 0x0D910847, 0xCCE7F174, 0xDAAE7D73, 0xB4F03307, 0xBD8DD546, 0x8A6F3B7E, 0x16A60288} } ,
21448 { {0x7DC0C4A2, 0x3E6A22EF, 0xF0905F41, 0xB1969E10, 0xA020B060, 0x98ED575D, 0x6C3594F1, 0x10ABC849},
21449 {0xF7202B61, 0xD0C2F05F, 0xB1572FEA, 0xE1816A0F, 0x87B236D0, 0x734A4A43, 0xF4387991, 0x16B01575} } } ,
21450 { { {0xABEBF53E, 0xA2CC1D0B, 0x4CC7561F, 0x827BE572, 0xB756BBDF, 0xE5893511, 0x63035238, 0x1F103F8D},
21451 {0x413FA2E0, 0x1840FB41, 0xC4D80A52, 0x91580E47, 0x395BAEE5, 0x5FBCB62E, 0x19F458CC, 0x0B8C6237} } ,
21452 { {0xD81FEF44, 0x902D883C, 0x9854B2F9, 0x4A9E25B9, 0x7CE40318, 0xEA1D15C8, 0xA1F57179, 0x1B5A5CCB},
21453 {0xEC6B49F1, 0xC5A181ED, 0x1EEA044B, 0xEEB18456, 0xFB6FCD98, 0x18C92778, 0x5362F1B3, 0x1FB9B408} } } ,
21454 { { {0xAFC58FF8, 0x281E0731, 0x36A619D0, 0xA5FA140F, 0x57749159, 0xB68B7F45, 0xD6F97ED3, 0x17862C3D},
21455 {0xCEF23163, 0x862A0010, 0x91B407C0, 0x240C0B99, 0x2C158CB9, 0xD91643ED, 0xE61B3327, 0x119C8DCC} } ,
21456 { {0xD61F98D9, 0xC873755F, 0x7F03893B, 0xDF20AF89, 0x8B478A3A, 0xAC17162A, 0x0B6AE0D8, 0x01829205},
21457 {0xAFA13B07, 0xB0685868, 0x026B8475, 0x45EC872C, 0x2ECA3DB7, 0x9742DD2E, 0x9A5FFFD9, 0x1DB055E8} } } } ;
21459 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3137 a000");
21460 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3138 a001");
21461 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3139 a010");
21462 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3140 a011");
21463 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3141 a100");
21464 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3142 a101");
21465 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3143 a110");
21466 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3144 a111");
21467 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3145 a200");
21468 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3146 a201");
21469 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3147 a210");
21470 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3148 a211");
21473 static const fp12_t var_a = { { { {0x3A8EED24, 0x559CA090, 0xD8F88E06, 0x9CB373DF, 0x54BB7803, 0xBB723FC7, 0xFD202625, 0x1706D38C},
21474 {0x21BD74E9, 0xBBB8FEBB, 0xFD28ACA4, 0xE195B451, 0xE158029A, 0x2FB5A031, 0x285912B4, 0x134B64BA} } ,
21475 { {0x4BB2D5EA, 0x38D61572, 0x8D58C386, 0x5FB8C00D, 0x44D6F0B1, 0x673EB7FA, 0x76F3E313, 0x07729FFC},
21476 {0x40CC0BF7, 0x3C39E3E1, 0xFED9C89A, 0xC7B69A05, 0x91F2D447, 0x77A9FDBE, 0x42A1AAC7, 0x0C4D84FC} } } ,
21477 { { {0x2C8B5C6A, 0x48A36584, 0xB021C718, 0xFE84ED31, 0xCFEA2C2F, 0x3CEA3614, 0x2BE27840, 0x09979AE9},
21478 {0x10DC8DC6, 0x84CBF10C, 0x926FE8E9, 0x4B424A54, 0xF0440F66, 0x5C5CE243, 0xE899A9E6, 0x169D89AA} } ,
21479 { {0x2B27541A, 0xF624E9B8, 0xEAAAF1C4, 0xF65C848C, 0x59796481, 0xE2A510E4, 0x2F2B222F, 0x0EB1F7C4},
21480 {0x35419BD2, 0x121F2467, 0xC233472D, 0x80952911, 0x9BB55C02, 0xA9A93E98, 0x9352E796, 0x020DD47A} } } ,
21481 { { {0x94D1E391, 0x03211C09, 0x79681087, 0x11AD12A8, 0x8721C72F, 0x9F4EA584, 0x78B9F63D, 0x069EBD25},
21482 {0xCC4AB965, 0x78E2E307, 0xB5077592, 0x5FE27E48, 0x315A02E5, 0xCEEB01B6, 0xA151BFBA, 0x11DC2BD8} } ,
21483 { {0x5CDBB85A, 0x0C5D96F2, 0xC637FAF5, 0xA7DECEBB, 0x3BC33A7F, 0x55A58DB5, 0xC50F148B, 0x023FFFE2},
21484 {0x4EE43862, 0xB3F80C19, 0xEF85FB81, 0x1B3CA7CC, 0x9AFE950C, 0x57C4366C, 0x80FDD567, 0x22F7503C} } } } ;
21485 static const fp12_t var_expected = { { { {0xDD4EA257, 0x2B149BCB, 0xB820DDE2, 0x4B4A1C3F, 0x1959E0B0, 0x1553B0AB, 0x4469E365, 0x03BC738C},
21486 {0x2850ABBA, 0x51ABDB2B, 0xD1C25993, 0xB5C97AB5, 0x27694DB0, 0xCBE88D4A, 0x6448EC9F, 0x0EFCD511} } ,
21487 { {0xBC70396E, 0xD27147DF, 0x5A03297C, 0x89DBE10B, 0x39786412, 0xDB25B462, 0x8E4209FB, 0x0DC425CC},
21488 {0x1E5B8FA4, 0x36CAA7B7, 0x8B581C58, 0xAB4CCAF4, 0x8B0DF429, 0x9DE894EF, 0x396CD9F3, 0x09EF696B} } } ,
21489 { { {0x17C38236, 0xAF424694, 0x10EEFB15, 0x9C89B981, 0x2D46F4A2, 0x1D44FFFC, 0xB199B66A, 0x17B0CC3F},
21490 {0x69F0CA5F, 0xCD9FD849, 0x171BB0D9, 0xB87848E3, 0xF432C561, 0x484BF385, 0x9BA8E41B, 0x0C926DDA} } ,
21491 { {0x043BB112, 0xBA5A0F49, 0xB5D54809, 0x09525A8C, 0xE9066A6C, 0x0F16F37D, 0x8277946D, 0x0DC3F159},
21492 {0xC5EC5F39, 0x6A0243FC, 0x8AA70A69, 0x25919E86, 0x6803D751, 0xBAD43A44, 0x00B5870D, 0x1C204BD9} } } ,
21493 { { {0xDA84970A, 0xE0F29959, 0x627F5DD7, 0x85DDC9CE, 0x8B4D1FDA, 0x04DFCDD6, 0x7986D6EA, 0x01A73E2F},
21494 {0xEBCFE8A3, 0xB98DB058, 0x7A4E324B, 0x710E10B8, 0x58398494, 0x58F59601, 0x738DEABD, 0x05DF9BC8} } ,
21495 { {0x787D0EBF, 0x7D0E0FCB, 0xA597EBBD, 0x163238B5, 0xAE2B6461, 0x3D097BD4, 0xA1FDE2AA, 0x0183BAF6},
21496 {0x7C76F01A, 0x0D9316AA, 0xCDC08C08, 0x435B8362, 0xFAD5FB43, 0xD066AE93, 0x963A9B14, 0x0C98F0E6} } } } ;
21498 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3149 a000");
21499 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3150 a001");
21500 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3151 a010");
21501 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3152 a011");
21502 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3153 a100");
21503 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3154 a101");
21504 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3155 a110");
21505 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3156 a111");
21506 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3157 a200");
21507 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3158 a201");
21508 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3159 a210");
21509 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3160 a211");
21512 static const fp12_t var_a = { { { {0xFA4F8436, 0xABB7F237, 0x2C4BB35F, 0x00F32A3F, 0xA0692EC7, 0xCAD440A5, 0x463E9F05, 0x0746EDEB},
21513 {0xCD502932, 0x99FA3F3E, 0xB1E690C4, 0x88598F1E, 0xB107DC07, 0x4D2A42AF, 0xA6D71534, 0x0BD371AA} } ,
21514 { {0x45AC2AEB, 0x1AA6DABD, 0x68F954D6, 0xADD30217, 0xF759A631, 0x1D7E6AF4, 0xBC39FE69, 0x229766E9},
21515 {0x2C2DCB55, 0x3A9D6E78, 0x48C9FD39, 0xBB4FFB62, 0x3094F9C9, 0x93256393, 0x3CA70C00, 0x137CE38C} } } ,
21516 { { {0x8E89AD27, 0xDC5BF290, 0x8E83010D, 0x2E84A2B2, 0xFD16A54F, 0x028B9ABE, 0xCD0079EE, 0x1B8E8EFE},
21517 {0xE1F89918, 0x283591E6, 0xF5AD1040, 0x79611380, 0x1D4A3985, 0xA8615898, 0x8D04F550, 0x0D62394E} } ,
21518 { {0x8438CC51, 0x59C96E5B, 0x6984B4E3, 0xB7E851B5, 0xE49D8FBD, 0x20D29B01, 0x9759B95C, 0x03799712},
21519 {0x993F7F58, 0xC417E126, 0xBE95727C, 0x5D2828DD, 0xFDD5706D, 0x6ADE35A0, 0xCE268D72, 0x0D22CF46} } } ,
21520 { { {0x2311F24A, 0x2102C707, 0x99DB763E, 0x9466F157, 0x54B3FA0B, 0xBD37B58A, 0xBFD6A428, 0x0F7D6430},
21521 {0x8A31281D, 0xFDF06201, 0xDF6A43C0, 0xEB8D29CA, 0x0B83328A, 0x863F555A, 0xD1E4A74F, 0x16113181} } ,
21522 { {0xB83370A6, 0x79754B56, 0x2C3C83DE, 0x2334DE36, 0xE6F4A0AF, 0x770E714B, 0xA87CBEC9, 0x1A0AC4B3},
21523 {0x7A9A62BF, 0x28C017D2, 0xB71CD98A, 0x7FB91D59, 0x435115F7, 0x21859147, 0x00011728, 0x00113705} } } } ;
21524 static const fp12_t var_expected = { { { {0xC1D92807, 0x8FFA8D00, 0x25724B7C, 0x0EA2E11A, 0x56099C1C, 0x7B419D01, 0x8A30A8FA, 0x174BAC32},
21525 {0x42830009, 0xA257D88D, 0xA8D0E4CA, 0xD1E245D7, 0x1A9B0F25, 0x526BBEC7, 0x1205DE37, 0x05DD625A} } ,
21526 { {0x60FD2557, 0xFB81A9E4, 0xEC2778E4, 0xB2CA2370, 0x434386F1, 0x242F8DAE, 0xCF4A900A, 0x0E0948D0},
21527 {0x970D8600, 0xE6FCFE04, 0x4E827FEA, 0x3600843F, 0xF59B8079, 0x44919D17, 0xFD5B5364, 0x0E54F1F7} } } ,
21528 { { {0x3BF5AB38, 0x805B7FB4, 0xA28CF47F, 0xC3787552, 0x604CA343, 0x3A1B66D5, 0x4F2E3E54, 0x102E0D29},
21529 {0x15AA5CC6, 0x8B732F6F, 0x771ACC52, 0xE9C15DF9, 0xFA001E65, 0xAA24BA46, 0xE63AD573, 0x1B9F5F93} } ,
21530 { {0x6C7CB05C, 0xB2376B07, 0x6CE5AAD7, 0xB59AAA4D, 0x8CA6ED33, 0x2974EC24, 0x7D197C00, 0x20A264BF},
21531 {0x03439AAF, 0xF280262C, 0xD592048E, 0x1792DF45, 0x485F9C70, 0xB977F799, 0x14671140, 0x1E3C9997} } } ,
21532 { { {0x37506AE7, 0xC694CEEF, 0x8A58706E, 0x467605D1, 0x8B4968D0, 0xFB7F9DAB, 0x3BE116D3, 0x1F58A433},
21533 {0x53BC3E1D, 0xD231708E, 0x159C3CF5, 0xC49C4F4E, 0xDF974272, 0x7E1B648E, 0x9933CBAD, 0x01E7844D} } ,
21534 { {0xA2ACA711, 0x46871824, 0x3FE5A6A7, 0xDD1323C8, 0x6EC98878, 0x89E57B11, 0x0E4F19A1, 0x0AF77358},
21535 {0xBCE4D49F, 0xF9945326, 0x71154999, 0x96E45292, 0xA54F8501, 0x4CE04581, 0xC26A799F, 0x15391A54} } } } ;
21537 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3161 a000");
21538 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3162 a001");
21539 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3163 a010");
21540 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3164 a011");
21541 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3165 a100");
21542 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3166 a101");
21543 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3167 a110");
21544 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3168 a111");
21545 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3169 a200");
21546 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3170 a201");
21547 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3171 a210");
21548 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3172 a211");
21551 static const fp12_t var_a = { { { {0x5B40BE22, 0x33B74CBC, 0x237BAC2A, 0x0FE5EDCC, 0x2404C59C, 0xE9DFFD29, 0x6230C4E9, 0x0C651232},
21552 {0x37E62075, 0x44B96946, 0x913C8A9D, 0x80441D67, 0x55906661, 0x75511BEA, 0xDF9B2EEA, 0x16F8CBF1} } ,
21553 { {0xA01CCA98, 0x1FB2BB6D, 0x3CF9EAA9, 0x720498AA, 0xC5E6B815, 0xE2F669FE, 0x20B5FA7C, 0x149C20BF},
21554 {0xD453EE72, 0xE9B5D404, 0xD1AD8E65, 0x4E2ED7F9, 0xB5EBD58F, 0xF1421522, 0xEE4DFA59, 0x1CACB149} } } ,
21555 { { {0x7F3EC59C, 0xA09C762F, 0x20B22832, 0xDF739E25, 0x3988BC21, 0xC2521A7F, 0x75C2827F, 0x11021C2C},
21556 {0x91E66C56, 0x67EECEF6, 0x302092F9, 0x0923E358, 0xF45ACF5D, 0xC7003961, 0xBBEB1A26, 0x1DCE36E2} } ,
21557 { {0x5F22CE5D, 0x498CAB6C, 0x9C56729D, 0x6476F37D, 0xB33CA106, 0x29BBF117, 0x74349BDF, 0x0162BF9B},
21558 {0x5874D228, 0x65F26824, 0xDAC354B6, 0x8D14DA02, 0xCD73EC7F, 0x1ADD0776, 0x70988C34, 0x01BB0805} } } ,
21559 { { {0x53F36D29, 0xD9BAC28A, 0xCB1999A1, 0x2539A1A9, 0x3607BB46, 0xDAFA06F2, 0x39A55293, 0x0403BEBE},
21560 {0x05C4199D, 0x8292F986, 0xD55D8AB3, 0x8E3B91B1, 0xE6D66636, 0x194CCF4A, 0xB6EE7AA6, 0x16A925AA} } ,
21561 { {0x56C6C5C4, 0xFC6E0A74, 0x1852C2B7, 0x88BBB6AC, 0xA7EFDD32, 0x7AC06558, 0xFA2B386B, 0x05A3E593},
21562 {0x82518041, 0xBBF5CCB7, 0xFC2BA39B, 0x9C7464D3, 0xC112DFFF, 0xD2CFCFF6, 0x103DF4B5, 0x06A3A02B} } } } ;
21563 static const fp12_t var_expected = { { { {0x1C15151C, 0x92135CEA, 0x12E1DBF1, 0x680606BF, 0x0E2EF648, 0x1A0CA746, 0xE962184B, 0x0725A352},
21564 {0x583853AB, 0x729882DE, 0x0D0CAB03, 0x76F6B861, 0xF83427DA, 0xD4578C11, 0x90A6B536, 0x0A765573} } ,
21565 { {0x88829A0E, 0xB47F2E97, 0x597F4600, 0x99FC70CE, 0xFD362CB4, 0x4B9E897F, 0x8BFA4C90, 0x1FAFAC91},
21566 {0xF3A99BC9, 0x78D78CF0, 0xF3E806F8, 0x849088B5, 0x1981ACE3, 0x9EBB055F, 0x76BDC246, 0x235A9B5B} } } ,
21567 { { {0x50409865, 0xE8C9410E, 0x5BC8F1F0, 0xFC082DAE, 0x6FFE41F6, 0x70738F76, 0x372EE249, 0x1DA7543F},
21568 {0xB5C455BA, 0x4031BD3C, 0xA9306DF1, 0xB8DBCDEC, 0x0248BF3D, 0xFD4E3457, 0xBC7B9150, 0x1609CF50} } ,
21569 { {0x70020CA5, 0x77E95792, 0x8388BC5D, 0x55668B17, 0xA46C82A4, 0xAEBCF69E, 0x82615220, 0x230F95A5},
21570 {0xD5CF2B6B, 0xC1CFD442, 0xBB164CF6, 0x82AD1458, 0x4CDCE77F, 0x3F3A0FC0, 0x744FAA26, 0x05A03D8B} } } ,
21571 { { {0x276108A8, 0x31CC0384, 0x57313909, 0x746C0965, 0xA63F8FFA, 0x6B5DF713, 0x2650E4BF, 0x20ABF976},
21572 {0x762C0545, 0x343701F8, 0x021B635A, 0xA6E68DFB, 0xD8818C9D, 0x0C227520, 0x025F6FF2, 0x036FF0AD} } ,
21573 { {0x84003335, 0x3E4CB3E1, 0x30F09DA1, 0x38B130B2, 0x76A5BCC3, 0x5108F179, 0x8B5B21F5, 0x171D434C},
21574 {0xE5A6163C, 0x7A00000F, 0x006D7065, 0xDBD2637D, 0x7AA436CF, 0x0E6664A4, 0x6C6AD8E3, 0x123BC8A7} } } } ;
21576 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3173 a000");
21577 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3174 a001");
21578 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3175 a010");
21579 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3176 a011");
21580 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3177 a100");
21581 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3178 a101");
21582 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3179 a110");
21583 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3180 a111");
21584 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3181 a200");
21585 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3182 a201");
21586 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3183 a210");
21587 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3184 a211");
21590 static const fp12_t var_a = { { { {0x3534EB2A, 0x36FDB05C, 0xE8B6C0D3, 0x6FBF2120, 0x8B244740, 0xECBB0D4A, 0xC5E2E258, 0x05FB8CAD},
21591 {0x6049FD13, 0xE5AC016B, 0x16AD0FE9, 0x5765D4EA, 0x11F3F10F, 0xE94B3886, 0x6B490851, 0x0C317CE3} } ,
21592 { {0x5E53E5DE, 0x6F11955B, 0xD5327F03, 0x0BAE584F, 0xE395A1FA, 0xA7EEC6A0, 0x13A4E86B, 0x156664AD},
21593 {0xB0523B64, 0x4E868521, 0x6FB3DDA5, 0x37316DE1, 0xBA099BBB, 0xB52C681E, 0xC1851232, 0x1279509C} } } ,
21594 { { {0xCACF0772, 0x18ADC7AC, 0xACC99A3B, 0xB8EF4FC2, 0x28E00CDC, 0x74231AFD, 0x6F61DB20, 0x0322587B},
21595 {0xD5EFAC30, 0x2C56285F, 0x24C667B7, 0xE93E06E3, 0xD9F4AEF6, 0x8C4AAE2F, 0x21C62B23, 0x086FA167} } ,
21596 { {0xC93CF9B5, 0x330EDCF8, 0xA6ABF3E5, 0xFA9D2815, 0xADBC476F, 0x81362881, 0xE6AF848B, 0x00B37626},
21597 {0x228A6D3D, 0x60AD2014, 0xAB5D762B, 0x59C371CA, 0x16499355, 0x1C1F807E, 0x287A20F4, 0x036B723C} } } ,
21598 { { {0x71230B9D, 0x8022CE72, 0xB250227E, 0x681A9294, 0x6917CCBC, 0x58A171A5, 0x8B989C2E, 0x0666F294},
21599 {0x0A472BD2, 0xDFDD0B38, 0x9D4EC7B4, 0x6EE82DED, 0x110C5A06, 0x5EEB5C76, 0x5CFBBBD2, 0x165D0A38} } ,
21600 { {0xC99025AD, 0xB8A4EF6B, 0x5B2044DE, 0x2D3D5483, 0xE362CC90, 0x78C2A595, 0x9B420C7E, 0x10F181A9},
21601 {0x36A6ED5F, 0x3FB0CDA9, 0x27F2198D, 0x91514A18, 0xE562B5F5, 0x38E791FD, 0x0678758F, 0x223B4842} } } } ;
21602 static const fp12_t var_expected = { { { {0x3C078225, 0x7990DF0D, 0xF35BDDF8, 0x62ED4928, 0x474F3BA9, 0x6A0457EA, 0x5AC85832, 0x042E5F1C},
21603 {0xE7B5F8E5, 0x5679EDB5, 0x76A4E8BD, 0x2D671771, 0xA56BF2C8, 0x043E3C22, 0x54D32233, 0x033EE69C} } ,
21604 { {0xA7262FA1, 0xC9886EC6, 0x12C08745, 0xC3E04FB7, 0x38A78687, 0x5A371B7E, 0x14D22FF4, 0x001D4557},
21605 {0xE95AB69F, 0x980CADF9, 0xEAB02C13, 0x258F3B8E, 0xEB438227, 0x6A6F3A51, 0xE3014798, 0x240ED9AB} } } ,
21606 { { {0xF3574640, 0x0D3F6D85, 0x34CDAC26, 0xCB6A279E, 0xB75C48A2, 0x7511D184, 0xE3B78FEE, 0x2229E995},
21607 {0x001A6B38, 0xC341A9B9, 0xC9A5C4A3, 0x63293347, 0x4CD3139B, 0xF3975955, 0x9CB337F8, 0x1B0C8062} } ,
21608 { {0x7E386A73, 0x6C4F2937, 0xF26D306E, 0x4F28E595, 0x96E69C94, 0x72262D0E, 0x7AD42CFC, 0x07A465B6},
21609 {0x5B67714B, 0x427534ED, 0x14C0E226, 0x51429F25, 0x948E3707, 0xC377772F, 0x4FBB5941, 0x10468785} } } ,
21610 { { {0x27A91516, 0x0C34CDB8, 0x83907864, 0xAEB30269, 0xA0AAACF4, 0xD73CE209, 0x8626A6E2, 0x1958622E},
21611 {0x573E0A40, 0xD0E7F5FD, 0x3D10EBF6, 0x10853EED, 0x46D1F166, 0x808039CB, 0x51E30ADF, 0x174FA56E} } ,
21612 { {0x6E2CDAF8, 0xDC546871, 0xDA967A93, 0xDA1420CA, 0x606C36B3, 0x31F63258, 0xE48C47FD, 0x190DC0A9},
21613 {0xA55D95A9, 0x3188846E, 0x55CF4D5F, 0x4149CB1F, 0x2B4CD935, 0x9F505996, 0x5FB29804, 0x0512452F} } } } ;
21615 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3185 a000");
21616 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3186 a001");
21617 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3187 a010");
21618 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3188 a011");
21619 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3189 a100");
21620 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3190 a101");
21621 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3191 a110");
21622 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3192 a111");
21623 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3193 a200");
21624 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3194 a201");
21625 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3195 a210");
21626 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3196 a211");
21629 static const fp12_t var_a = { { { {0xBDA6F93D, 0xB46A596B, 0x83487BA5, 0xDA9FEF18, 0x19B7AE47, 0x3CDA8716, 0x21C38611, 0x1379EA98},
21630 {0x8A61AB2A, 0x7CD381D2, 0x09B18354, 0x6AB9DD1B, 0xDEA54781, 0xDFEC185F, 0xB76F0866, 0x06E6E1C5} } ,
21631 { {0x701E4BD6, 0xBEF92E3F, 0xAC7B9436, 0x2B0E0E91, 0xA9E950E6, 0xFE1C2671, 0x677BC5DA, 0x1C2789A5},
21632 {0x1B8A2770, 0xB80BF19E, 0xE230BAA7, 0xE1B13DAC, 0x5AF50895, 0xB346870E, 0x8D6A4A09, 0x1D04FEFE} } } ,
21633 { { {0x8ECEFC23, 0xA5A8CDF2, 0x0A2CD81C, 0x28733D95, 0x8E119F6A, 0x22C56F11, 0x05C2F1AF, 0x1F3949FE},
21634 {0x4BC889CF, 0x9698644F, 0x96FAF852, 0x1EE26534, 0x1AA2DA93, 0x518A9CC4, 0x093103B8, 0x1FABA6A3} } ,
21635 { {0xDDB13C70, 0x92482C5F, 0x02A73475, 0xB24E42A6, 0xDF4DF46F, 0xBF94AE60, 0x9BA93F5F, 0x19AB812A},
21636 {0x625AFA14, 0x6C8C4033, 0x5EF6BD01, 0x56B10B86, 0x267B5A97, 0x08E914E5, 0x52F3EA58, 0x224B364C} } } ,
21637 { { {0xA850F005, 0x74DAA30F, 0x009F8C9E, 0x023AE26F, 0xB5080F0F, 0x9216379A, 0xC90C0924, 0x033CE445},
21638 {0x4431D840, 0xDCAEB7D5, 0xAA1B14A8, 0x88FAA6F4, 0xC054D189, 0xC956BB4C, 0xC1DCF7F5, 0x1BFEDE75} } ,
21639 { {0xC4ED44FC, 0x27B0964B, 0x5757DCC0, 0x38AE8492, 0xB384CFDE, 0xE07079A8, 0xDB2A9F74, 0x09940BAB},
21640 {0x17955E1B, 0x6BA49D1E, 0xE342307A, 0x98831D9F, 0xB0A435B2, 0x0557144D, 0x75EB6737, 0x05F4A547} } } } ;
21641 static const fp12_t var_expected = { { { {0x2E6211DD, 0x43A5FE5F, 0x2E36455A, 0x48F334FB, 0xE6983CC4, 0x34C7C858, 0x7DF19642, 0x1A37F658},
21642 {0x528F3602, 0xB8805EA4, 0x7F2E3461, 0x021BBA71, 0x7B69DDE5, 0xAF7A9AF1, 0x0D1E31CF, 0x0E631E8C} } ,
21643 { {0xBAE5E995, 0x8B134F55, 0x8BC1C47E, 0x0DF383F0, 0xE5FE3CF8, 0xF740FF00, 0x7BD9F3D0, 0x075D5B1A},
21644 {0xDB0754B6, 0xF03474D8, 0x135803C3, 0x5A5D56EB, 0x8A150D5A, 0x5C1F6918, 0xD593EE64, 0x02AF252F} } } ,
21645 { { {0xE7D48BA2, 0x0BCEAF9E, 0xD65952D5, 0x88C15CBF, 0x6C373786, 0x82FA0A58, 0x0D045ED6, 0x206395FA},
21646 {0x45FF708D, 0x0084A78F, 0xEFAE7133, 0x8C858B93, 0x765B93DA, 0x62867082, 0x5FFCE02D, 0x02E14282} } ,
21647 { {0x673AF9C4, 0xAF8D4C78, 0x70CE7BDB, 0xB4558BB0, 0x4A470DFF, 0xC9895A53, 0xA38742B6, 0x030FA6FA},
21648 {0x55E2F6D4, 0x2170EBFB, 0x096E9B5C, 0xA1AC8C4A, 0xF939B491, 0xCF9ABF52, 0x9A6634F7, 0x01A67AA1} } } ,
21649 { { {0xD10C7BEE, 0xEC81309D, 0x234A7EEA, 0x470054F4, 0x662C4A95, 0x428768C6, 0x381C8BB2, 0x0570E832},
21650 {0xC4C5ADD0, 0xA3DF6316, 0x68011C02, 0x6B3E33D4, 0x9A561F30, 0xCBBA5A7D, 0x03678282, 0x2033417B} } ,
21651 { {0x5899DA21, 0x8EE7FA0F, 0xDBE1CCF5, 0xD9E5DEF8, 0xE7B9D2E7, 0xD13B474E, 0x6418A8FA, 0x0D2267AE},
21652 {0x2164039E, 0xB444427E, 0x42BA99F2, 0x027A7D33, 0x077FCB5C, 0xA455526F, 0x2628170B, 0x10586B86} } } } ;
21654 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3197 a000");
21655 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3198 a001");
21656 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3199 a010");
21657 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3200 a011");
21658 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3201 a100");
21659 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3202 a101");
21660 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3203 a110");
21661 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3204 a111");
21662 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3205 a200");
21663 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3206 a201");
21664 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3207 a210");
21665 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3208 a211");
21668 static const fp12_t var_a = { { { {0x8BA80C76, 0x12981B06, 0x054B94E2, 0x882DD12B, 0x0DAC0826, 0x0C247143, 0x174A40C7, 0x0F495782},
21669 {0xD8A7DBA6, 0xD5811774, 0xA1D1CD8E, 0xDF9D12F0, 0x9677C1EE, 0xBEF494DE, 0x811602E4, 0x0A321477} } ,
21670 { {0x8799C8ED, 0xC0C2A795, 0xD188D43D, 0x6AC7AD97, 0xD2691F78, 0x3EF1A3B6, 0x109033E2, 0x0D61E383},
21671 {0xF1F18AC8, 0x86E5A03A, 0xD137595A, 0x4708237B, 0xFA0558C4, 0x873CCBA4, 0x61EAC6CD, 0x1B3BBD25} } } ,
21672 { { {0x65D05AAF, 0xA0389BA2, 0x08151601, 0x7AC1110F, 0x312DB4D7, 0x1CDF5EDC, 0xCED9F21C, 0x096AB029},
21673 {0xB5CE6E39, 0x7CC5AE48, 0x31B48DA0, 0xBDFE2181, 0x9E19294C, 0x45B9632D, 0xC01E8D14, 0x228CA1CA} } ,
21674 { {0xE60F7BAA, 0x8C7BB701, 0xCA045887, 0x29CB721F, 0xE42D7900, 0xF3208E5B, 0x6A5424E6, 0x18534D8A},
21675 {0x692FE4C5, 0xD74558EA, 0x33E91644, 0xF3A3B051, 0x98D973EC, 0xA27308C1, 0x42BC56B8, 0x05328DDE} } } ,
21676 { { {0xA1662E78, 0xD05D5819, 0x7E197551, 0xECF74123, 0x9E25135B, 0xCDCE2B51, 0xFF23AAC7, 0x0CE305AD},
21677 {0x2D0637B2, 0xF579B3F4, 0xF7615EA8, 0xE7E33D28, 0x05EABEC5, 0x8C0A94CB, 0x8F293795, 0x16158422} } ,
21678 { {0x523CF438, 0x9172A3EB, 0xBB57E206, 0xAFE55EC8, 0x075A1300, 0x143BE502, 0xDB95FD2F, 0x19A92427},
21679 {0x9C299EE6, 0xE25B8646, 0x26A0A5D3, 0x9D819BF4, 0x5F146710, 0xD708DEA4, 0x5B9B8BC4, 0x15F84AC9} } } } ;
21680 static const fp12_t var_expected = { { { {0xAF6AA2DB, 0xB763B41D, 0xA96E8563, 0x30478537, 0x3756FE58, 0x2722E119, 0x5B256C0B, 0x0A3A8CB3},
21681 {0x493DE1EE, 0x0260FDAE, 0x85E021DA, 0x5E438CFF, 0x09CD62A1, 0xCEF7D9DF, 0x10451D7D, 0x212C6392} } ,
21682 { {0x38488C4A, 0x281FF9CE, 0x9F8FAF5C, 0x2B683D11, 0x5D77C6E3, 0x9423C5DF, 0xFF1CEDBA, 0x01F5EFA0},
21683 {0xFDF086DA, 0x4544ACB9, 0xFA154188, 0xF06B63F7, 0x73285837, 0x6B56E50C, 0xC229CB08, 0x0604D141} } } ,
21684 { { {0x1BFC61A7, 0x3ADF2EDB, 0xC5B45558, 0xFDEB07EB, 0x308BA35A, 0x0FACB142, 0x3860C33B, 0x080EB798},
21685 {0x274B57E4, 0xDE303CD1, 0x71C76A2A, 0x8FF51371, 0x9FDA11EF, 0x0D14FFA7, 0x8CC4E55A, 0x0A0AF953} } ,
21686 { {0xF2B80271, 0x88A4BF0E, 0xADA8C8C2, 0x614472FA, 0x7D63D73D, 0x24F3AB1D, 0xBDF4826F, 0x128B3CB5},
21687 {0xD3A8C24D, 0xAC875B32, 0x6FED224F, 0xBF84DEEC, 0x274578A2, 0x58C9952F, 0xE36BCEA9, 0x1FDDE49E} } } ,
21688 { { {0xA3DC6B13, 0x5538F08D, 0x67D3C8FE, 0xE87F5D44, 0x188480DC, 0x1F338C9D, 0x4F231A04, 0x1FFB7BD6},
21689 {0xBC7B4DEF, 0x69C0A072, 0xA2837EB5, 0x8C7F027F, 0xF10A1520, 0x45E1FC25, 0xE95064BB, 0x14928B93} } ,
21690 { {0x559C9EF6, 0x32F6EDF6, 0xBBC714D4, 0xD082D2AE, 0xF34AC9B3, 0xE4E9D2FA, 0xAB77B397, 0x0A4E9D44},
21691 {0x3035D996, 0xBCE485A2, 0x11D5C604, 0x2CCE3F42, 0x4CF75C74, 0x71596AC9, 0x367C734B, 0x1780B685} } } } ;
21693 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3209 a000");
21694 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3210 a001");
21695 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3211 a010");
21696 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3212 a011");
21697 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3213 a100");
21698 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3214 a101");
21699 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3215 a110");
21700 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3216 a111");
21701 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3217 a200");
21702 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3218 a201");
21703 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3219 a210");
21704 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3220 a211");
21707 static const fp12_t var_a = { { { {0x084CFE64, 0xB189A48B, 0xD4942C98, 0xD0813029, 0x25FB8930, 0xB3936475, 0xBE7C79C9, 0x0F133668},
21708 {0x0FAF624D, 0x91437163, 0x4E2EA284, 0xEA6DF4C7, 0xA29CE514, 0x10C36E18, 0xFE630766, 0x178FC7DE} } ,
21709 { {0x1CCCFEA5, 0xD4B9D91F, 0xD7EC57DD, 0x2E95D75F, 0xF947D9B4, 0x2B4A8D15, 0xEC4EBDDD, 0x0C9554CA},
21710 {0x810D8E12, 0xB5E927E3, 0x85B4071E, 0xE692618E, 0xE3203C11, 0xE3F82E59, 0x257C82BA, 0x2287960A} } } ,
21711 { { {0x65E4015B, 0xCEE12760, 0xFDA57429, 0xCE714242, 0xF4330C6C, 0xBCEA760A, 0xA495728F, 0x04FB7AB3},
21712 {0xA998495E, 0x5AF72102, 0x8C2A0471, 0xB4B9153A, 0x8BB9FB1B, 0x97559C7B, 0x4CFFF82E, 0x14D3F0BF} } ,
21713 { {0xD075E877, 0x048AB4D5, 0x7851D020, 0xBB915431, 0x363CF833, 0x54ACD2B3, 0x406B4491, 0x1AAEB109},
21714 {0x0B475E2B, 0xD830B457, 0x3C0C730A, 0x363AD441, 0x95E8D5AB, 0x6526CE22, 0xA3868F52, 0x1D53D939} } } ,
21715 { { {0x6890E1C7, 0x00C2C1D9, 0xE1D2C64B, 0x01FECE04, 0x977DA3D5, 0xB2751A10, 0x75358C33, 0x2492C14C},
21716 {0x4A85F575, 0xEB1B51F2, 0x1A340053, 0x1BA65749, 0x53073B5A, 0xE137AC6A, 0x69CB6D35, 0x14881CAB} } ,
21717 { {0xAB2A8619, 0x7A17E0F3, 0x1ED7E8AB, 0xD7560E31, 0xC833E690, 0xB743F491, 0x6C3C3C8A, 0x0DC20141},
21718 {0x86D24390, 0x76CA76A9, 0x983120D4, 0x9004F8C6, 0x44CD63C5, 0x94444AB8, 0xA98308A1, 0x138121C6} } } } ;
21719 static const fp12_t var_expected = { { { {0x55B201EA, 0x69644D23, 0x142C6D08, 0x869A036C, 0x204F874B, 0x8E1FBD49, 0x8E64D31C, 0x143391CE},
21720 {0xDB8CD4D9, 0x103F195E, 0xD088CFA1, 0x961A85AF, 0x9120C970, 0x8766F9E1, 0x9E75F23A, 0x1F63254E} } ,
21721 { {0x4C0676F8, 0xDF1EE054, 0xFDE6599C, 0xD72A8C79, 0xD82E6E50, 0xA177F771, 0xA8781571, 0x122D4F49},
21722 {0x3ED92DFD, 0x7CD4320C, 0xD45E7E29, 0x8AA165FA, 0xF1A7891D, 0xB23F1480, 0x2B0FCFDD, 0x2438FF52} } } ,
21723 { { {0x1B1894D7, 0xC19D8063, 0x4A28881E, 0x9F60E6F3, 0x3EF714ED, 0xCA9B3426, 0x65853384, 0x20B0C76E},
21724 {0xCA8404D1, 0x477E9184, 0xD692D23F, 0x09C4ED50, 0x8706171B, 0xB09004CA, 0x99CA5B26, 0x1291AD72} } ,
21725 { {0x10D87586, 0x6C406865, 0x7F403378, 0x05C7E74E, 0xB797D61F, 0xF7D086A8, 0x6235F1AB, 0x1C3BE62C},
21726 {0x437EBAEC, 0x972D5367, 0xDF1171A4, 0x8B6F04B8, 0xEDD1744A, 0xD5A6AB78, 0x8EEE66BC, 0x22A6863A} } } ,
21727 { { {0xD467F1D6, 0xD87491F6, 0x41936108, 0x9C9D76F0, 0x4F87BC10, 0x82B2546F, 0xA81C89C0, 0x0B7DDF83},
21728 {0x76DA9312, 0x5B4A3034, 0xE22486E7, 0x687A3258, 0x5E7E1769, 0x12F06B41, 0xA6022E94, 0x0F35E399} } ,
21729 { {0x5CA12448, 0x639CF7CA, 0xEC558B82, 0x9BEC101C, 0x87FA2802, 0x6973DAEA, 0x5C4D6EED, 0x174C4386},
21730 {0x3A3BA7E4, 0x927F6E60, 0x3F6B3F06, 0x201267D2, 0x43A55A97, 0xF44A8C7C, 0x73E4A7B9, 0x11DAC281} } } } ;
21732 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3221 a000");
21733 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3222 a001");
21734 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3223 a010");
21735 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3224 a011");
21736 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3225 a100");
21737 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3226 a101");
21738 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3227 a110");
21739 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3228 a111");
21740 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3229 a200");
21741 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3230 a201");
21742 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3231 a210");
21743 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3232 a211");
21746 static const fp12_t var_a = { { { {0x14D93399, 0x92799458, 0x1CF5BE73, 0xDBF1A46A, 0x50437D4F, 0xB452EAA6, 0x21E1A681, 0x0FADDBCE},
21747 {0xAAA29801, 0x98F57EF8, 0x1B1D0A8D, 0x72E762D0, 0x7CC05188, 0x79D4342F, 0x32D78D3A, 0x01C38F26} } ,
21748 { {0xCCB97D36, 0x117839BA, 0xDBA3E636, 0x3780108D, 0x7759D818, 0xB0F26735, 0x95EC9F62, 0x1EB334F2},
21749 {0xA0FCF6AE, 0xCE7A6353, 0x1353964D, 0xD9017A4D, 0x2F2F9311, 0x6E943629, 0x5620A3CE, 0x0EB234B5} } } ,
21750 { { {0xA4CAA842, 0x94B2D42A, 0xAFB80533, 0x5E880460, 0xA6367465, 0xA88BB603, 0xB71FC7A0, 0x1F305B81},
21751 {0x255B4F9B, 0xFDBCED5B, 0x4CF9FF81, 0xFE7035BE, 0x7027748F, 0xBDAAC8FB, 0x2BE70D98, 0x01AEED04} } ,
21752 { {0xC96369E7, 0x28472CEA, 0xBD72C03F, 0xF0FD5423, 0x38BAA87D, 0x03DB7C40, 0x1B432FCF, 0x0F7D1F94},
21753 {0x060F46E9, 0x06D3E4F3, 0x892E04F0, 0x9CF7B137, 0x3B3774A4, 0x38E669BE, 0x24188123, 0x04B3A1F4} } } ,
21754 { { {0xA842E1C5, 0xD90944ED, 0x6A240D85, 0x5F736378, 0xCB54A7DF, 0x420D867C, 0xD77DAE2B, 0x1EF553E1},
21755 {0x4F365CFD, 0x3892F92E, 0xCF4C2BAC, 0xD6E595EB, 0xCD65B622, 0xF2E8245E, 0xB8A747A6, 0x18DAD598} } ,
21756 { {0xEE59FE5B, 0x168F2E6E, 0x5B83DED7, 0x3249ABE1, 0x3CD84650, 0xD5DF991A, 0x40A37481, 0x18675D4C},
21757 {0x4E8CF854, 0x0994A905, 0x64398A1B, 0xA207DAFB, 0xA403D2C7, 0xDB7CF57B, 0x5BE05433, 0x0912001A} } } } ;
21758 static const fp12_t var_expected = { { { {0x0A6C99D6, 0x9CBCCA2C, 0x0E7ADF43, 0x1E895235, 0x2821BEAC, 0xB7439C13, 0x30F0D341, 0x1A68A028},
21759 {0x55514C0A, 0x9FFABF7C, 0x0D8E8550, 0x6A043168, 0xBE6028C8, 0x1A0440D7, 0x396BC69E, 0x137379D4} } ,
21760 { {0x665CBE9B, 0x08BC1CDD, 0xEDD1F31B, 0x1BC00846, 0xBBACEC0C, 0x5879339A, 0x4AF64FB1, 0x0F599A79},
21761 {0xD07E7B57, 0xE73D31A9, 0x89A9CB26, 0xEC80BD26, 0x9797C988, 0x374A1B14, 0xAB1051E7, 0x07591A5A} } } ,
21762 { { {0x52655421, 0xCA596A15, 0x57DC0299, 0xAF440230, 0xD31B3A32, 0x5445DB01, 0xDB8FE3D0, 0x0F982DC0},
21763 {0x92ADA7D7, 0xD25E76AD, 0x267CFFCA, 0x2FC89ADF, 0xB813BA4C, 0x3BEF8B3D, 0x35F386CD, 0x136928C3} } ,
21764 { {0x64B1B4FD, 0x67A39675, 0xDEB96029, 0x290F2A11, 0x1C5D5443, 0x5F07E4E0, 0x2DA197E8, 0x1A50420B},
21765 {0x8307A37E, 0xD6E9F279, 0xC4970281, 0x7F0C589B, 0x1D9BBA56, 0x798D5B9F, 0x320C4092, 0x14EB833B} } } ,
21766 { { {0xD42170EC, 0xC004A276, 0x351206CC, 0xE04A31BC, 0x65AA53F3, 0x7E20E9FE, 0x0BBED716, 0x220C5C32},
21767 {0x279B2E88, 0xEFC97C97, 0xE7A615DF, 0x9C034AF5, 0x66B2DB15, 0x568E38EF, 0x7C53A3D4, 0x1EFF1D0D} } ,
21768 { {0x772CFF37, 0x5EC79737, 0xADC1EF75, 0x49B555F0, 0x1E6C232C, 0xC809F34D, 0x4051BA41, 0x1EC560E7},
21769 {0xA7467C2A, 0x84CA5482, 0xB21CC50D, 0xD103ED7D, 0xD201E963, 0xEDBE7ABD, 0x2DF02A19, 0x0489000D} } } } ;
21771 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3233 a000");
21772 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3234 a001");
21773 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3235 a010");
21774 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3236 a011");
21775 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3237 a100");
21776 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3238 a101");
21777 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3239 a110");
21778 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3240 a111");
21779 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3241 a200");
21780 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3242 a201");
21781 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3243 a210");
21782 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3244 a211");
21785 static const fp12_t var_a = { { { {0x89A171E4, 0x3D3F4252, 0x74F847BB, 0x31080371, 0xA747141E, 0xBE8A77AE, 0x2B89D576, 0x1401C613},
21786 {0x8F39896B, 0x695106C7, 0xCCB47B2D, 0x3871D911, 0x7C7A77C1, 0xFBCDC920, 0xC3B40862, 0x081DC773} } ,
21787 { {0xA4E643F6, 0x7F63B2C7, 0xDCEF06C6, 0x4A33B5DD, 0x6BA7CBDC, 0x9741DEAE, 0xAC5447C2, 0x15BCFA73},
21788 {0xE0A3BE7A, 0x002860CA, 0xCCAA527F, 0x48C09B11, 0x521DE8FC, 0x52BD24CB, 0x630CA872, 0x15AD4FE2} } } ,
21789 { { {0xAE9BEC6C, 0x8F388CBB, 0xF7289441, 0x95894B7B, 0x23CD154A, 0xD98828F8, 0x59C5948E, 0x1DD850E7},
21790 {0x4D3ED0DD, 0x7576D521, 0x6A82F736, 0x99426C82, 0x63F84790, 0x36AF61EB, 0x721A8947, 0x0DC8AD70} } ,
21791 { {0x52A805FB, 0x8DFC1709, 0x6A069A37, 0x965E26CA, 0xAD2FA0E5, 0x43819185, 0xC79043E4, 0x023FB5FD},
21792 {0x2459E0A6, 0x8E9FC54E, 0xEB6D7E06, 0xDC67B785, 0x2DA1B452, 0x0F165CC8, 0xE4A5F39E, 0x05F4BDE4} } } ,
21793 { { {0x7F399CE5, 0x74FF9D83, 0x19DEE44E, 0xD84BDD9A, 0x26B786D1, 0xFFDDB2D6, 0x0AA62EC5, 0x19EBB2A6},
21794 {0xF2F16350, 0x92242839, 0xD3BAB052, 0xEEC41F75, 0x6C06442B, 0x275C3B8F, 0x2E5DB59B, 0x0B641321} } ,
21795 { {0x60910313, 0x32B48F3B, 0x2B49C5E1, 0x22E454FD, 0xEB8C16F2, 0xC1135772, 0xB88854A0, 0x04097855},
21796 {0x8383B23B, 0x2BAEC7EA, 0xE7218A17, 0x7DD7E280, 0x1E40C870, 0x801DDCDF, 0xC5286AA5, 0x1E96EEFB} } } } ;
21797 static const fp12_t var_expected = { { { {0x44D0B8F2, 0x9E9FA129, 0xBA7C23DD, 0x188401B8, 0x53A38A0F, 0x5F453BD7, 0x95C4EABB, 0x0A00E309},
21798 {0xC79CC4BF, 0x88288363, 0xE65A3DA0, 0xCCC96C88, 0x3E3D3BE4, 0x5B010B50, 0x01DA0432, 0x16A095FB} } ,
21799 { {0xD27321FB, 0x3FB1D963, 0xEE778363, 0x2519DAEE, 0x35D3E5EE, 0x4BA0EF57, 0xD62A23E1, 0x0ADE7D39},
21800 {0x7051DF3D, 0x80143065, 0xE655293F, 0x24604D88, 0xA90EF47E, 0x295E9265, 0x31865439, 0x0AD6A7F1} } } ,
21801 { { {0xD74DF636, 0xC79C465D, 0xFB944A20, 0x4AC4A5BD, 0x11E68AA5, 0x6CC4147C, 0xACE2CA47, 0x0EEC2873},
21802 {0xA69F6878, 0x0E3B6A90, 0x35417BA5, 0x7D31B641, 0xB1FC23CC, 0x7871D7B5, 0x590D44A4, 0x197608F9} } ,
21803 { {0xA9540307, 0x9A7E0B84, 0x35034D25, 0xFBBF9365, 0xD697D076, 0xFEDAEF82, 0x03C821F2, 0x13B18D40},
21804 {0x122CF053, 0x474FE2A7, 0xF5B6BF03, 0x6E33DBC2, 0x16D0DA29, 0x078B2E64, 0x7252F9CF, 0x02FA5EF2} } } ,
21805 { { {0xBF9CCE7C, 0x0DFFCEC1, 0x0CEF7231, 0x1CB66ECD, 0x135BC36D, 0xDD09002B, 0x25531763, 0x1F878B94},
21806 {0xF978B1A8, 0x4912141C, 0xE9DD5829, 0xF7620FBA, 0xB6032215, 0x93AE1DC7, 0x972EDACD, 0x05B20990} } ,
21807 { {0xB0488193, 0x6CDA479D, 0x95A4E2FA, 0x4202AA7E, 0x75C60B7D, 0x3DA3D279, 0xFC442A51, 0x14966E6B},
21808 {0x41C1D927, 0x695763F5, 0x7390C515, 0x6F7C7140, 0x8F20643C, 0x9D29152F, 0x02943553, 0x21DD29BF} } } } ;
21810 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3245 a000");
21811 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3246 a001");
21812 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3247 a010");
21813 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3248 a011");
21814 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3249 a100");
21815 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3250 a101");
21816 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3251 a110");
21817 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3252 a111");
21818 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3253 a200");
21819 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3254 a201");
21820 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3255 a210");
21821 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3256 a211");
21824 static const fp12_t var_a = { { { {0x64D745EB, 0x36BF14A0, 0x0374EC65, 0xA646A674, 0x98EBDB15, 0x5E7E8E7D, 0x2696D93C, 0x07156956},
21825 {0xE5D59A2C, 0x902161CF, 0x2D17AAC9, 0xF7F47BE7, 0x7F5F6D64, 0x87276F24, 0x9F7378FA, 0x209E10D6} } ,
21826 { {0x37E82C28, 0x2709FC5D, 0x486EAD8F, 0xF857C728, 0x0CEF08D5, 0x22AF00C6, 0xA95F3EA7, 0x185CB5F0},
21827 {0x64CE11A5, 0x64ACA67A, 0xE919B8C8, 0xC0208F9F, 0x0C3F2AB4, 0x76463996, 0x3084C117, 0x1C60ACE7} } } ,
21828 { { {0xC625D636, 0x15CB101D, 0xDD7AC5A5, 0x1762F20E, 0x626434D7, 0x932883C9, 0x95F2C92F, 0x02A963D5},
21829 {0x8E3FF434, 0x6BD72635, 0xA104C2EE, 0xA03E148D, 0x82520526, 0x0B087D9C, 0x2DC805CC, 0x026D3D56} } ,
21830 { {0x3E47DFA6, 0x11A0D37C, 0xE85F8F66, 0x6296D141, 0xF89969BA, 0xD925898F, 0x402D287B, 0x1B9567CE},
21831 {0x2FB9DBE3, 0x0A9517D1, 0x195D7EC0, 0x6206C59A, 0xDF762D3F, 0xA4B9CA85, 0xCB20FDD0, 0x1C63DB14} } } ,
21832 { { {0x0C292594, 0xED9697F1, 0xCFB6A17D, 0x81897A02, 0x6B2F826C, 0xE20720E8, 0xFE0D3BFE, 0x12036DDC},
21833 {0x55580D40, 0x42540588, 0x57A49C51, 0x68E8D750, 0x5FC2E5E6, 0xDE81BE3A, 0xFF392354, 0x1C4C0E9E} } ,
21834 { {0xDD9C1C71, 0x183F0363, 0x353CF403, 0xBD551B1B, 0x97E5E5EF, 0xE1891A5D, 0xE6FE25A0, 0x088503D3},
21835 {0x4D976DC4, 0x670A66E2, 0x9FA6EB1B, 0x10FDF0C1, 0x80544BA1, 0x38AE0670, 0x7FD4374B, 0x1F4554CD} } } } ;
21836 static const fp12_t var_expected = { { { {0x326BA2FF, 0x6EDF8A50, 0x01BA763C, 0x03B3D33A, 0xCC75ED8F, 0x0C596DFE, 0x334B6C9F, 0x161C66EC},
21837 {0xF2EACD16, 0xC810B0E7, 0x968BD564, 0x7BFA3DF3, 0x3FAFB6B2, 0x4393B792, 0x4FB9BC7D, 0x104F086B} } ,
21838 { {0x9BF41614, 0x9384FE2E, 0x243756C7, 0xFC2BE394, 0x0677846A, 0x91578063, 0x54AF9F53, 0x0C2E5AF8},
21839 {0x326708DC, 0x05D6533D, 0xF48CDC6E, 0x90A0C7CF, 0x061F955E, 0x983D438B, 0xB842608C, 0x20C208B4} } } ,
21840 { { {0xE312EB1B, 0x8AE5880E, 0x6EBD62D2, 0x8BB17907, 0xB1321A6B, 0xC99441E4, 0xCAF96497, 0x0154B1EA},
21841 {0xC71FFA1A, 0x35EB931A, 0xD0826177, 0x501F0A46, 0x41290293, 0x05843ECE, 0x16E402E6, 0x01369EAB} } ,
21842 { {0x1F23EFD3, 0x08D069BE, 0xF42FC7B3, 0x314B68A0, 0xFC4CB4DD, 0xEC92C4C7, 0x2016943D, 0x0DCAB3E7},
21843 {0x97DCEDFB, 0xD8CA8BE8, 0x0CAEBF69, 0xE193E2CD, 0xEFBB16A3, 0x2F770C02, 0x85907EE9, 0x20C39FCB} } } ,
21844 { { {0x861492CA, 0xF6CB4BF8, 0x67DB50BE, 0x40C4BD01, 0x3597C136, 0x71039074, 0x7F069DFF, 0x0901B6EE},
21845 {0x2AAC06A0, 0xA12A02C4, 0x2BD24E28, 0x34746BA8, 0x2FE172F3, 0x6F40DF1D, 0x7F9C91AA, 0x0E26074F} } ,
21846 { {0xEECE0E42, 0x5F9F81B1, 0x9A9E7A0B, 0x0F3B0D8D, 0xCBF2F2FC, 0x4DDEB3EE, 0x137F12D1, 0x16D4342B},
21847 {0x26CBB6E2, 0xB3853371, 0xCFD3758D, 0x887EF860, 0x402A25D0, 0x9C570338, 0xBFEA1BA5, 0x0FA2AA66} } } } ;
21849 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3257 a000");
21850 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3258 a001");
21851 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3259 a010");
21852 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3260 a011");
21853 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3261 a100");
21854 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3262 a101");
21855 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3263 a110");
21856 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3264 a111");
21857 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3265 a200");
21858 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3266 a201");
21859 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3267 a210");
21860 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3268 a211");
21863 static const fp12_t var_a = { { { {0x9F39B027, 0x61BBF5AC, 0x00206AA6, 0x301E7B9C, 0x9B6E956F, 0xBA806260, 0x0B2C7E78, 0x11A35D42},
21864 {0xA31D9CC1, 0x8C4910EA, 0x77CB8D19, 0x2C1363E7, 0xFE25E07D, 0x2BFA4CF4, 0xBE1A7389, 0x08882F9A} } ,
21865 { {0x7D2BC678, 0xC0D0CF63, 0x5655D696, 0xC2A2372F, 0xD23D80D2, 0x37496296, 0x83D1C235, 0x094EAAC1},
21866 {0x2590147E, 0x8F4E9628, 0xA36510E1, 0x7273B2C5, 0xD6D8FDC4, 0x8B162F12, 0x33EB6D3A, 0x00505E28} } } ,
21867 { { {0xE6034B61, 0xB1F5207D, 0x9AE27215, 0x3B94C371, 0xDA5741B5, 0xBC03A7C8, 0xA288FA9B, 0x1BACB7BB},
21868 {0xDF6069AF, 0x300E8532, 0x280383BB, 0x610754F2, 0x45880D72, 0x4E1AC03F, 0x9331BE3E, 0x05065022} } ,
21869 { {0x8589D6A1, 0x3164B8BD, 0x7231CC47, 0xCE3C351C, 0x902221EC, 0xD7410947, 0x7E998A92, 0x184A5B95},
21870 {0x1F9F9177, 0x8A4A87C0, 0x4CBD71D4, 0x4D40B853, 0xC9989958, 0x23EEAA02, 0x91284794, 0x05FEA9FE} } } ,
21871 { { {0x4988E37B, 0x11271A0E, 0xC35E20D9, 0x9640C9E2, 0x11357136, 0x6E2F8BDC, 0x2C4F4189, 0x11214C12},
21872 {0x71C74AEA, 0x789C6C97, 0x9488EDB1, 0xB7809934, 0x1E883255, 0x6DD48FBE, 0x64B83D78, 0x14178D57} } ,
21873 { {0x5DA19AA1, 0x7F2D5816, 0xB28A3205, 0x86283450, 0xBA273AD3, 0x1B63E68E, 0xC0409474, 0x0CED59AA},
21874 {0xA4938E92, 0xFB8914C0, 0xC4846A12, 0xEDC38903, 0x42BD27DB, 0x735F4C57, 0x3FBEE030, 0x0D1D721A} } } } ;
21875 static const fp12_t var_expected = { { { {0x4F9CD81D, 0x045DFAD6, 0x0010355D, 0xC89FBDCE, 0x4DB74ABB, 0x3A5A57F0, 0x25963F3D, 0x1B6360E2},
21876 {0x518ECE6A, 0x99A48875, 0xBBE5C696, 0xC69A31F3, 0x7F12F042, 0x73174D3A, 0x7F0D39C5, 0x16D5CA0E} } ,
21877 { {0xBE95E33C, 0x606867B1, 0xAB2AEB4B, 0x61511B97, 0x691EC069, 0x9BA4B14B, 0xC1E8E11A, 0x04A75560},
21878 {0x12C80A3F, 0xC7A74B14, 0xD1B28870, 0x3939D962, 0x6B6C7EE2, 0x458B1789, 0x19F5B69D, 0x00282F14} } } ,
21879 { { {0xF301A5BA, 0xAC7A903E, 0xCD713914, 0xCE5AE1B8, 0x6D2BA0DE, 0xBB1BFAA4, 0xF1447D4E, 0x20680E1E},
21880 {0x6FB034E1, 0x6B874299, 0x1401C1E7, 0x61142A79, 0xA2C406BD, 0x042786DF, 0x6998DF20, 0x1514DA52} } ,
21881 { {0xC2C4EB5A, 0x6C325C5E, 0x3918E62D, 0x97AE9A8E, 0xC81110FA, 0x48BAAB63, 0xDF4CC54A, 0x1EB6E00B},
21882 {0x0FCFC8C5, 0x18A543E0, 0xA65EB8F4, 0x5730DC29, 0x64CC4CB0, 0xEF117BC1, 0x689423CA, 0x15910740} } } ,
21883 { { {0x24C471C7, 0x5C138D07, 0x61AF1076, 0x7BB0E4F1, 0x089AB89F, 0x9431ECAE, 0x3627A0C5, 0x1B22584A},
21884 {0xB8E3A575, 0xBC4E364B, 0x4A4476D8, 0xDBC04C9A, 0x0F44192A, 0x36EA47DF, 0xB25C1EBC, 0x0A0BC6AB} } ,
21885 { {0x2ED0CD5A, 0x9316AC0B, 0x5945190C, 0xF3A49A28, 0x5D139D6D, 0xEACC1A07, 0x80204A3A, 0x19085F16},
21886 {0x5249C749, 0x7DC48A60, 0xE2423509, 0xF6E1C481, 0xA15E93ED, 0x39AFA62B, 0x1FDF7018, 0x068EB90D} } } } ;
21888 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3269 a000");
21889 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3270 a001");
21890 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3271 a010");
21891 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3272 a011");
21892 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3273 a100");
21893 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3274 a101");
21894 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3275 a110");
21895 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3276 a111");
21896 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3277 a200");
21897 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3278 a201");
21898 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3279 a210");
21899 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3280 a211");
21902 static const fp12_t var_a = { { { {0x301B3734, 0x52554FC2, 0xA4289228, 0x0185B810, 0x286443A4, 0x88A48F54, 0x51A3121D, 0x10A379E1},
21903 {0xC2CA1C88, 0x78903DD0, 0xE14CAC1B, 0xD238C657, 0x715814CB, 0xE6D55DE5, 0x195FE51F, 0x10AF09E2} } ,
21904 { {0x6EB1F0AC, 0x2D82488F, 0x3E4F564E, 0x9F02F466, 0x37F55F36, 0xFED0CF00, 0x329F0B8B, 0x13249368},
21905 {0x1A1118E6, 0x0C3B3845, 0x3147963F, 0xB4B15714, 0x2803408D, 0x77533661, 0xA6579775, 0x0E6F78ED} } } ,
21906 { { {0x04658D20, 0x4FA8FDC3, 0x65084D86, 0xD0DF86C3, 0x055723C1, 0x4D0123FC, 0xB89A68F4, 0x20E176F7},
21907 {0x39B8BBE1, 0x902E7E31, 0x38F5F566, 0x183063C2, 0x24C0D382, 0x859A857A, 0x1C48AD67, 0x1ACE12FA} } ,
21908 { {0x1F4C77B6, 0xD2DE02F4, 0x3DA19D99, 0xD02B64B8, 0xEF46DB7F, 0x689DB61D, 0x7A87BBC7, 0x211E64F3},
21909 {0xEC8E1C87, 0x98362DBE, 0xBC434018, 0xF47AD67B, 0x63BBE1F3, 0x6F632393, 0x6E0ED10C, 0x1264138D} } } ,
21910 { { {0x2C6271EA, 0x8B6D936F, 0x2DFAE4C1, 0x027704C1, 0x9293E3BB, 0xFD463826, 0x8B3D8125, 0x15BFBDE4},
21911 {0x3FB10226, 0xF65B6641, 0xC1DA42C7, 0x7DF743FF, 0x211A4764, 0xD27BA603, 0xD30ADC16, 0x13E43BF2} } ,
21912 { {0xD857D6D5, 0x35E1C280, 0xD9D6B66D, 0xB5EA3C98, 0xCAEC4CCD, 0xF5B683CF, 0xC1BC97DC, 0x1802CC94},
21913 {0x7F58DC71, 0xC9F090EA, 0x8C6DC93E, 0x0ADA0BC6, 0xDCCA5267, 0x5A3CB29C, 0xFF75C742, 0x104666AE} } } } ;
21914 static const fp12_t var_expected = { { { {0x180D9B9A, 0x292AA7E1, 0x52144914, 0x00C2DC08, 0x143221D2, 0xC45247AA, 0xA8D1890E, 0x0851BCF0},
21915 {0x61650E44, 0xBC481EE8, 0xF0A6560D, 0xE91C632B, 0xB8AC0A65, 0xF36AAEF2, 0x0CAFF28F, 0x085784F1} } ,
21916 { {0xB758F856, 0x16C12447, 0x1F27AB27, 0x4F817A33, 0x1BFAAF9B, 0xFF686780, 0x194F85C5, 0x099249B4},
21917 {0x8D088C73, 0x861D9C22, 0x18A3CB1F, 0xDA58AB8A, 0x9401A046, 0xBBA99B30, 0xD32BCBBA, 0x0737BC76} } } ,
21918 { { {0x8232C690, 0x27D47EE1, 0xB28426C3, 0xE86FC361, 0x02AB91E0, 0x268091FE, 0xDC4D347A, 0x1070BB7B},
21919 {0x9CDC5DFA, 0x1B973F18, 0x1C7AFABD, 0x3CA8B1E1, 0x126069C5, 0x9FE7697D, 0x2E2456B4, 0x1FF8BBBE} } ,
21920 { {0x0FA63BDB, 0xE96F017A, 0x1ED0CECC, 0xE815B25C, 0xF7A36DBF, 0xB44EDB0E, 0xBD43DDE3, 0x108F3279},
21921 {0x76470E4D, 0x1F9B16DF, 0xDE21A016, 0x2ACDEB3D, 0xB1DDF0FE, 0x14CBB889, 0xD7076887, 0x1BC3BC07} } } ,
21922 { { {0x963138F5, 0xC5B6C9B7, 0x96FD7260, 0x813B8260, 0x4949F1DD, 0xFEA31C13, 0x459EC092, 0x0ADFDEF2},
21923 {0x9FD88113, 0xFB2DB320, 0xE0ED2163, 0x3EFBA1FF, 0x908D23B2, 0x693DD301, 0x69856E0B, 0x09F21DF9} } ,
21924 { {0x6C2BEB74, 0x6E70E140, 0x6CEB5B40, 0x0B859E4C, 0xE576266B, 0x57F568A7, 0x80DE4BEF, 0x1E93188B},
21925 {0x3FAC6E42, 0x38784875, 0x4636E4A9, 0xB5FD85E3, 0x6E652937, 0x0A38800E, 0x9FBAE3A2, 0x1AB4E598} } } } ;
21927 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3281 a000");
21928 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3282 a001");
21929 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3283 a010");
21930 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3284 a011");
21931 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3285 a100");
21932 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3286 a101");
21933 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3287 a110");
21934 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3288 a111");
21935 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3289 a200");
21936 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3290 a201");
21937 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3291 a210");
21938 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3292 a211");
21941 static const fp12_t var_a = { { { {0x10637058, 0x66161297, 0x262EA736, 0xFC25F214, 0xB6B3D6E9, 0x662EE1D4, 0x3089E854, 0x12A53088},
21942 {0x3AABBB61, 0xE9A18145, 0xA30A372E, 0x1BC7CF35, 0x4F5553E3, 0x6CDF9FA1, 0x27AF4FFE, 0x17899F5E} } ,
21943 { {0x010FEA28, 0x034C68C2, 0x387AB7C9, 0xBEE588C6, 0xB1CA42BF, 0x2FBF69EE, 0x2EF546F3, 0x13B0C278},
21944 {0x3D8D6D6F, 0xE9858515, 0xCB6B1354, 0xA8631B46, 0x79AAEF02, 0x62D4049D, 0x4190518F, 0x0A16CE26} } } ,
21945 { { {0x190CCA3B, 0xBD37701E, 0x76084413, 0x13EF0FCA, 0x5965EE54, 0xCC04CA35, 0x507182D0, 0x1C0B9C45},
21946 {0x946FA2BA, 0x9D2E5149, 0x08468BEC, 0xE5375F33, 0x97F44A71, 0xDBE2D4CE, 0x80B6CCE1, 0x05B3857B} } ,
21947 { {0x0300085B, 0xAA08590F, 0x834954D2, 0xE88A3D91, 0x8BD8D23D, 0x6EA1334E, 0x2BDEACE8, 0x1AFE86ED},
21948 {0x8D2031AB, 0x5AB6D308, 0x9F99E9E4, 0x2FE02418, 0x25670F5E, 0x5541AB11, 0x9BD8ADFC, 0x23C3B71E} } } ,
21949 { { {0xAE5534DE, 0x1289FB70, 0x46217940, 0x468D2994, 0x646ACBF0, 0x7074E4E7, 0x13DB9450, 0x06A3EA42},
21950 {0xB59B5E01, 0x74D4ED1D, 0x1602FCA8, 0x40588985, 0xE00E3EBC, 0xED942987, 0x46123E41, 0x0174A5D5} } ,
21951 { {0x450D3421, 0x3C206319, 0xE2360157, 0xD8FAC926, 0x412235C8, 0x0DA7ED5A, 0x9E1674AD, 0x06F54E8D},
21952 {0xD8D94D42, 0x88E70C39, 0x31067093, 0xE8C30774, 0xC5A1D8D2, 0xD16A98DA, 0xB6394C4E, 0x10957F4C} } } } ;
21953 static const fp12_t var_expected = { { { {0x8831B82C, 0x330B094B, 0x1317539B, 0xFE12F90A, 0x5B59EB74, 0x331770EA, 0x1844F42A, 0x09529844},
21954 {0x9D55DDBA, 0x4850C0A2, 0xD1851BA1, 0xBE74679A, 0xA7AAA9F5, 0x1389F690, 0x33D7A800, 0x1E5681F0} } ,
21955 { {0x0087F514, 0x81A63461, 0x1C3D5BE4, 0xDF72C463, 0x58E5215F, 0x97DFB4F7, 0x177AA379, 0x09D8613C},
21956 {0x9EC6B6C1, 0x4842C28A, 0x65B589B4, 0x84C20DA3, 0xBCD57785, 0x8E84290E, 0x40C828C8, 0x179D1954} } } ,
21957 { { {0x0C866527, 0xB21BB80F, 0x3B042213, 0x3A8807E5, 0xACB2F72E, 0x431C8BDA, 0xC838C169, 0x20978063},
21958 {0xCA37D15D, 0x4E9728A4, 0x842345F6, 0xF29BAF99, 0x4BFA2538, 0xEDF16A67, 0xC05B6670, 0x02D9C2BD} } ,
21959 { {0x81800437, 0x28842C87, 0xC1A4AA73, 0x24D59EC8, 0x45EC6923, 0x146AC067, 0xB5EF5675, 0x2010F5B7},
21960 {0x469018DF, 0x00DB6984, 0x4FCCF4FC, 0x4880920C, 0x92B387B3, 0x07BAFC48, 0x6DEC56FF, 0x24738DD0} } } ,
21961 { { {0x572A9A6F, 0x0944FDB8, 0x2310BCA0, 0x234694CA, 0xB23565F8, 0x383A7273, 0x09EDCA28, 0x0351F521},
21962 {0xDACDAF0A, 0x0DEA768E, 0x8B017E5E, 0x50BCC4C2, 0xF0071F62, 0xD3E43B83, 0xC3091F21, 0x134C052B} } ,
21963 { {0xA2869A1A, 0x7190318C, 0x711B00B5, 0x9D0DE493, 0x20911AE8, 0x63EE1D6D, 0xEF0B3A57, 0x160C5987},
21964 {0xEC6CA6A1, 0xC473861C, 0x18833849, 0x746183BA, 0x62D0EC69, 0x68B54C6D, 0x5B1CA627, 0x084ABFA6} } } } ;
21966 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3293 a000");
21967 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3294 a001");
21968 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3295 a010");
21969 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3296 a011");
21970 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3297 a100");
21971 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3298 a101");
21972 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3299 a110");
21973 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3300 a111");
21974 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3301 a200");
21975 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3302 a201");
21976 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3303 a210");
21977 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3304 a211");
21980 static const fp12_t var_a = { { { {0x378C904D, 0x6CE9BA4F, 0xBE44BB83, 0x5C8135EB, 0xBE98E1BD, 0xDA1A5687, 0x219FD15E, 0x1BC3A522},
21981 {0x03A173E6, 0x9609AAD2, 0xF667294D, 0x8C357125, 0x124F5E78, 0x9EC2C05F, 0xE1290952, 0x0583E9CC} } ,
21982 { {0x306D5B59, 0xA0C19E18, 0x7D681C55, 0x056CAB99, 0xB9C75D17, 0x65C602B2, 0xB03198A3, 0x165D099D},
21983 {0x84542A69, 0x0B20ADAA, 0xA974831A, 0x40E740D1, 0x438F1CC1, 0x78D158F9, 0xFB14987F, 0x1A1EA976} } } ,
21984 { { {0x1D50A5A2, 0x3859D078, 0x0573DFC1, 0x974F5C17, 0x50DA8C61, 0xAAA78080, 0x218B604E, 0x0D796B2D},
21985 {0xE8C4498A, 0x4FE8B326, 0xD0548B90, 0x75AC1F34, 0x15F45380, 0x1B7B1FFA, 0x38D65288, 0x104F4640} } ,
21986 { {0x2BAA8E1B, 0xF440500F, 0x7C381DC0, 0xAC9BFA14, 0xDDFC960A, 0x5B27B1D4, 0x49B8EF4D, 0x0B90505B},
21987 {0xFBFFE6B7, 0x650C3D10, 0x2F5C2D8C, 0x34FEB85B, 0x86F8303D, 0x89E89EEC, 0x8F3FC28C, 0x185A8AE1} } } ,
21988 { { {0xC795DCC5, 0xF8FDDAA7, 0x45E0C904, 0xB1310DAE, 0x002D2C87, 0xDB259F2F, 0xFC62E9B5, 0x08711CB3},
21989 {0xCB2018D3, 0x422EB773, 0xCC59566A, 0x497ECE47, 0xD2D097EA, 0xD1FE2EF2, 0xF5684AC1, 0x01E702E4} } ,
21990 { {0x9EA23BAA, 0x0914CAA6, 0x0635BA23, 0x8A8D04C2, 0x95091B43, 0xA4C1DBD2, 0x1124B6D4, 0x02B2DC18},
21991 {0xA51FD834, 0x73FC73A1, 0xEBE708B9, 0x1B939139, 0x763ACA84, 0x480313BA, 0x1D018BF3, 0x0F155598} } } } ;
21992 static const fp12_t var_expected = { { { {0x9BC64830, 0x89F4DD27, 0xDF225DCB, 0xDED11AF5, 0xDF4C70E2, 0x4A275203, 0x30CFE8B0, 0x207384D2},
21993 {0x01D0B9F3, 0xCB04D569, 0xFB3394A6, 0x461AB892, 0x8927AF3C, 0x4F61602F, 0x709484A9, 0x02C1F4E6} } ,
21994 { {0x1836ADB6, 0xA3E0CF0C, 0xBEB40E34, 0xB346D5CC, 0x5CE3AE8F, 0x8FFD2819, 0xF818CC52, 0x1DC0370F},
21995 {0x422A153E, 0xD91056D5, 0xD4BA4196, 0xD1042068, 0xA1C78E64, 0x9982D33C, 0x9D8A4C40, 0x1FA106FC} } } ,
21996 { { {0x0EA852D1, 0x9C2CE83C, 0x82B9EFE0, 0xCBA7AE0B, 0x286D4630, 0x5553C040, 0x90C5B027, 0x06BCB596},
21997 {0x746224C5, 0x27F45993, 0x682A45C8, 0x3AD60F9A, 0x0AFA29C0, 0x0DBD8FFD, 0x1C6B2944, 0x0827A320} } ,
21998 { {0x95D54717, 0x4DA02807, 0x3E1C0EEA, 0x86DE7D0A, 0x6EFE4B09, 0x8AADFFAA, 0xC4DC77A7, 0x1859DA6E},
21999 {0x7DFFF365, 0x06061E88, 0x97AE16D0, 0xCB0FDC2D, 0x437C1822, 0x220E7636, 0xE79FE147, 0x1EBEF7B1} } } ,
22000 { { {0xE3CAEE6C, 0x4FFEED53, 0x22F0648C, 0x092906D7, 0x80169648, 0xCAACF657, 0x1E3174DB, 0x16CA409B},
22001 {0xE5900C73, 0xF4975BB9, 0xE62CAB3E, 0x554FE723, 0x69684BF9, 0xC6193E39, 0x9AB42561, 0x138533B3} } ,
22002 { {0x4F511DD5, 0x848A6553, 0x031ADD11, 0xC5468261, 0x4A848DA1, 0x5260EDE9, 0x08925B6A, 0x01596E0C},
22003 {0xD28FEC1A, 0xB9FE39D0, 0xF5F3845C, 0x0DC9C89C, 0x3B1D6542, 0xA40189DD, 0x0E80C5F9, 0x078AAACC} } } } ;
22005 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3305 a000");
22006 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3306 a001");
22007 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3307 a010");
22008 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3308 a011");
22009 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3309 a100");
22010 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3310 a101");
22011 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3311 a110");
22012 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3312 a111");
22013 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3313 a200");
22014 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3314 a201");
22015 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3315 a210");
22016 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3316 a211");
22019 static const fp12_t var_a = { { { {0x9DA5F824, 0xD61E596F, 0xA4F40C8A, 0x050D1400, 0xB8A23B5F, 0x6B083547, 0x1AD89D4B, 0x049081C8},
22020 {0x15A2EEAB, 0x783D7F91, 0x11BC66AA, 0xD0EB3FCA, 0x304CD23E, 0x4D1BC824, 0xBEA17306, 0x218CC8C5} } ,
22021 { {0xF188678F, 0x40D74E25, 0x442013DC, 0x07B2D6DE, 0xC749ADE7, 0x10D9728B, 0x6FE7153F, 0x1F268A26},
22022 {0xE9CAFF1B, 0x74E4592B, 0x04F7AD4F, 0x09B9FF21, 0xFC45D577, 0x54537EA1, 0x8B170C3D, 0x1A218225} } } ,
22023 { { {0x071CCDDE, 0x1C2A0A6B, 0x4B4CA2A7, 0x411BA6F8, 0x5F616E20, 0x84823E82, 0x63984394, 0x03EE5B80},
22024 {0x2D0AA101, 0x5D1C9932, 0xC8742A8B, 0x4DB50BE8, 0x17612BF7, 0x2A3A4466, 0x3CB8F025, 0x20BCCAB6} } ,
22025 { {0x8DE3E845, 0x9548F3FC, 0x5EF0DF04, 0x0F83D085, 0x5D2D391E, 0x556A5D71, 0xCC63B2EA, 0x1A1F98AF},
22026 {0x2FED8782, 0x2E5C69D9, 0xA31C1B59, 0x9DC916C5, 0xFF9F5119, 0x4D2FF975, 0x03B18270, 0x1CA71E92} } } ,
22027 { { {0x6EE90219, 0x85B2504B, 0x62B784F5, 0x6B3276ED, 0xDEA2C8C7, 0x3A390E1C, 0xFF3F3E01, 0x03EF1B1A},
22028 {0x7BEECB49, 0x5174F539, 0x19318B0B, 0x2603F790, 0x709EAEEF, 0x36BD1128, 0xD657CCDE, 0x241EBC6A} } ,
22029 { {0xD98CA128, 0x6A4B8073, 0x7CCF8FDA, 0x07793DA6, 0x3F3862B3, 0x4083BF56, 0x91F13119, 0x1486FF0F},
22030 {0xDF453C57, 0xC89FB137, 0xF09F1FFA, 0x35A69C84, 0x67612B1C, 0x2DCBC0A3, 0xEB75196A, 0x11D6E280} } } } ;
22031 static const fp12_t var_expected = { { { {0xCED2FC12, 0x6B0F2CB7, 0x527A0645, 0x82868A00, 0xDC511DAF, 0xB5841AA3, 0x0D6C4EA5, 0x024840E4},
22032 {0x8AD1775F, 0x0F9EBFC8, 0x08DE335F, 0x99061FE5, 0x18266923, 0x03A80AD2, 0xFF50B984, 0x235816A3} } ,
22033 { {0xF8C433D1, 0xF3EBA712, 0x221009F7, 0xB469EB6F, 0xE3A4D6F7, 0x6586E005, 0x57F38AA0, 0x2224F754},
22034 {0xF4E57F97, 0x8DF22C95, 0x827BD6B1, 0xB56D7F90, 0xFE22EABF, 0x8743E610, 0xE58B861F, 0x1FA27353} } } ,
22035 { { {0x838E66EF, 0x8E150535, 0x25A65153, 0x208DD37C, 0x2FB0B710, 0x42411F41, 0x31CC21CA, 0x01F72DC0},
22036 {0x1685508A, 0x820E4C99, 0x643A154F, 0xD76B05F4, 0x0BB095FF, 0x723748F3, 0x3E5C7813, 0x22F0179C} } ,
22037 { {0x46F1F42C, 0x1E2479FE, 0xAF786F8C, 0x38526842, 0xAE969C93, 0x07CF5578, 0x0631D976, 0x1FA17E99},
22038 {0x97F6C3C1, 0x972E34EC, 0xD18E0DAC, 0xCEE48B62, 0xFFCFA88C, 0x2697FCBA, 0x01D8C138, 0x0E538F49} } } ,
22039 { { {0xB7748116, 0x96592825, 0xB15BC284, 0xE629BB76, 0x6F516467, 0x7A36ADCE, 0x9F9F9F01, 0x14893FCE},
22040 {0xBDF765AE, 0x7C3A7A9C, 0x0C98C58F, 0xC3927BC8, 0x384F577B, 0xF878AF54, 0x8B2BE66F, 0x24A11076} } ,
22041 { {0xECC65094, 0x3525C039, 0x3E67C7ED, 0x83BC9ED3, 0x1F9C3159, 0xA041DFAB, 0xC8F8988C, 0x0A437F87},
22042 {0xEFA29E35, 0x37CFD89B, 0x784F9007, 0x4B63CE42, 0xB3B09592, 0xF4000711, 0x95BA8CB5, 0x1B7D2381} } } } ;
22044 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3317 a000");
22045 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3318 a001");
22046 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3319 a010");
22047 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3320 a011");
22048 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3321 a100");
22049 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3322 a101");
22050 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3323 a110");
22051 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3324 a111");
22052 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3325 a200");
22053 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3326 a201");
22054 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3327 a210");
22055 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3328 a211");
22058 static const fp12_t var_a = { { { {0x3952C3C9, 0x3A6A9439, 0x113A6A33, 0xE1C5C6DF, 0x1CB5B919, 0x884C9492, 0x565E9971, 0x0042CE31},
22059 {0x67B8C8AA, 0x67938A89, 0x2C52D816, 0x01BE4009, 0x2227A0AA, 0xCD05B9FB, 0x769E43D2, 0x04D80AE7} } ,
22060 { {0x3DB3B857, 0x78E654E3, 0xC61B8256, 0xF66FDEAD, 0x530227EE, 0xE6E1ADC5, 0xE4DCC711, 0x0B69076F},
22061 {0x626803B0, 0x158FF8ED, 0x137CC4F4, 0x8F55DEFD, 0x1D3715C2, 0xADF3B45C, 0xEC7CB2F0, 0x17C4EBEB} } } ,
22062 { { {0xD1EE817F, 0xA72BA415, 0x7F0C5F6D, 0xA0657BAE, 0x01FA35E2, 0xCA763930, 0xCF7C12CE, 0x00C0D499},
22063 {0x5AA5ACF0, 0xCB6CF6C9, 0x29EDB0C2, 0xF507F58B, 0x15B2D709, 0xA4521E84, 0x421F1017, 0x1030882D} } ,
22064 { {0x22D9D4A1, 0x0B454815, 0x63672107, 0x89AE7D63, 0x83377AE5, 0x70965D5D, 0xAD63BE5F, 0x0409E116},
22065 {0x1EBC5D23, 0xD9AEDCB3, 0x3460BB69, 0x463C80E4, 0x08626298, 0x6B2AE9EB, 0x2D51B177, 0x13E73988} } } ,
22066 { { {0x9CABA755, 0x7AF3170C, 0xD69A7A50, 0x19E12CB9, 0x76E7D056, 0x85F53963, 0x93122331, 0x1CD0B7C9},
22067 {0xBBC63D0E, 0x6B9420AB, 0x38CBED29, 0x5800427E, 0x328A1A1E, 0xE6EE79D5, 0xA3E0B13E, 0x19E1BF56} } ,
22068 { {0xEFD45503, 0x83B78B33, 0x7C7818A9, 0x29388372, 0xB697D7FA, 0xAE59EBC0, 0x56BB0072, 0x1D210493},
22069 {0x7E7CD5AA, 0x5326F7FD, 0x7AAFBE27, 0x73824CAE, 0x10B7E0E8, 0x0796CE39, 0x98F5C477, 0x1FE43830} } } } ;
22070 static const fp12_t var_expected = { { { {0x9CA961EE, 0x70B54A1C, 0x889D3523, 0x2173636F, 0x0E5ADC91, 0xA1407109, 0xCB2F4CB9, 0x12B31959},
22071 {0xB3DC6455, 0x33C9C544, 0x96296C0B, 0x00DF2004, 0x9113D055, 0x6682DCFD, 0xBB4F21E9, 0x026C0573} } ,
22072 { {0x9ED9DC35, 0x0FF32A71, 0xE30DC135, 0xABC86F56, 0xA98113FB, 0xD08AFDA2, 0x126E6389, 0x184635F9},
22073 {0xB13401D8, 0x0AC7FC76, 0x89BE627A, 0x47AAEF7E, 0x0E9B8AE1, 0x56F9DA2E, 0xF63E5978, 0x0BE275F5} } } ,
22074 { { {0xE8F740C9, 0xA715D20A, 0x3F862FC0, 0x80C33DD7, 0x00FD1AF5, 0x42554358, 0x07BE0968, 0x12F21C8E},
22075 {0xAD52D678, 0x65B67B64, 0x94F6D861, 0xFA83FAC5, 0x0AD96B84, 0xD2290F42, 0xA10F880B, 0x08184416} } ,
22076 { {0x916CEA5A, 0x5922A40A, 0xB1B3908D, 0xF567BEB1, 0xC19BBD76, 0x9565556E, 0x76B1DF30, 0x1496A2CC},
22077 {0x8F5E2E9B, 0xC0576E59, 0x1A305DBE, 0x53AEC072, 0x84313150, 0x92AF9BB5, 0x36A8D8BC, 0x1C854F05} } } ,
22078 { { {0x4E55D3B4, 0x10F98B86, 0xEB4D3D32, 0x3D81165C, 0xBB73E82F, 0xA014C371, 0xE9891199, 0x20FA0E25},
22079 {0xDDE31E87, 0xB5CA1055, 0x1C65F694, 0x2C00213F, 0x99450D0F, 0x73773CEA, 0x51F0589F, 0x0CF0DFAB} } ,
22080 { {0xF7EA2A8B, 0x955BC599, 0x3E3C0C5E, 0x452CC1B9, 0x5B4BEC01, 0x34471CA0, 0xCB5D803A, 0x2122348A},
22081 {0xBF3E6AD5, 0xA9937BFE, 0x3D57DF13, 0x39C12657, 0x885BF074, 0x83CB671C, 0x4C7AE23B, 0x0FF21C18} } } } ;
22083 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3329 a000");
22084 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3330 a001");
22085 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3331 a010");
22086 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3332 a011");
22087 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3333 a100");
22088 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3334 a101");
22089 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3335 a110");
22090 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3336 a111");
22091 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3337 a200");
22092 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3338 a201");
22093 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3339 a210");
22094 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3340 a211");
22097 static const fp12_t var_a = { { { {0x05C9575D, 0xD3E3B205, 0x3C858483, 0x85933774, 0x6207D779, 0xA1E020DA, 0x8A8E0AE4, 0x128A86D7},
22098 {0xF301EC93, 0x7F46DC1D, 0x80698AAF, 0x1B6DC8B3, 0x608E7511, 0x1B42B7B3, 0x015DB986, 0x00505514} } ,
22099 { {0x0CD18EFA, 0x4DAE8CD5, 0x394977DD, 0x17358727, 0xD5F6E229, 0x3E2F14FF, 0x850BA56C, 0x0D3DC547},
22100 {0xE7B88207, 0x28C1FDE3, 0x0E8104F9, 0x62C60A90, 0x1E9FB2C3, 0xF2A2EF6F, 0xD3DEB13A, 0x17C7DD12} } } ,
22101 { { {0x71DB243B, 0x823FC56F, 0xDA9F9F16, 0xA51CCF6D, 0xADF7675F, 0xD31BAD67, 0x5C51D8AB, 0x03D2A3A7},
22102 {0x6810D565, 0x0D5F8A06, 0x2AF99388, 0x0AABE943, 0x87319728, 0xCBDD28BE, 0x04841146, 0x0D1BE8E2} } ,
22103 { {0xE14B004D, 0x71C2D6A4, 0xC207DE7D, 0x1BD1DFDD, 0xC73CFD5B, 0xA7CC0A18, 0xE36F7685, 0x1AC0898A},
22104 {0xC3548047, 0xB9F1E4BF, 0x18A0A817, 0x7B064F4B, 0x191728FE, 0xF91DAEC8, 0x48F31B4D, 0x1FB0EAEF} } } ,
22105 { { {0x4ACBCBCE, 0x79718EDD, 0xD7F2F36B, 0x85741444, 0x3F6A90D2, 0x0049DCB2, 0x31B1759C, 0x13C00F5C},
22106 {0x847FAFF3, 0x2862BBE8, 0x5E5F090E, 0xC9B81E70, 0x907A28F7, 0x5012758B, 0x93B74924, 0x173E681C} } ,
22107 { {0xD71792EC, 0x92ADF51A, 0x3F16A754, 0x8343379E, 0x7465E4C5, 0x5D9C3B7A, 0x18F67E69, 0x22DC3F66},
22108 {0x79076716, 0xA9C80106, 0xC08B0CC6, 0x07E94D4D, 0xE9AF9D47, 0x8B3A5310, 0x9C9150D6, 0x15338EE1} } } } ;
22109 static const fp12_t var_expected = { { { {0x82E4ABB8, 0xBD71D902, 0x1E42C24B, 0xF35A1BBA, 0x3103EBC0, 0x2E0A372D, 0xE5470573, 0x1BD6F5AC},
22110 {0xF980F653, 0x93236E0E, 0xC034C561, 0xBE476459, 0xB0473A8C, 0xEABB8299, 0x20AEDCC3, 0x12B9DCCB} } ,
22111 { {0x8668C77D, 0xA6D7466A, 0x9CA4BBEE, 0x8B9AC393, 0xEAFB7114, 0x1F178A7F, 0xC285D2B6, 0x069EE2A3},
22112 {0xF3DC410D, 0x67E0FEF1, 0x07408286, 0xE1F38548, 0x8F4FD965, 0x566B9E77, 0x89EF589E, 0x1E75A0CA} } } ,
22113 { { {0xB8ED9227, 0x149FE2B7, 0xED4FCF95, 0x031EE7B6, 0xD6FBB3B4, 0xC6A7FD73, 0xCE28EC56, 0x147B0414},
22114 {0x34086ABC, 0xDA2FC503, 0x957CC9CD, 0x35E674A1, 0x4398CB98, 0x4308BB1F, 0x224208A4, 0x191FA6B2} } ,
22115 { {0x70A58030, 0x8C616B52, 0xE103EF48, 0xBE796FEE, 0x639E7EB1, 0xB1002BCC, 0x91B7BB43, 0x1FF1F706},
22116 {0xE1AA402D, 0xB078F25F, 0x8C505415, 0x6E13A7A5, 0x0C8B9483, 0xD9A8FE24, 0xC4798DA7, 0x226A27B8} } } ,
22117 { { {0xA565E5E7, 0xBCB8C76E, 0x6BF979B5, 0x42BA0A22, 0x1FB54869, 0x0024EE59, 0x18D8BACE, 0x09E007AE},
22118 {0x423FD803, 0xE7B15DF4, 0x2F2F8490, 0x156C8F38, 0xC83D1480, 0x05236185, 0x69DBA493, 0x1E30E64F} } ,
22119 { {0x6B8BC976, 0x4956FA8D, 0x1F8B53AA, 0xC1A19BCF, 0x3A32F262, 0xAECE1DBD, 0x0C7B3F34, 0x116E1FB3},
22120 {0x3C83B38B, 0x54E40083, 0xE0458663, 0x83F4A6A6, 0x74D7CEA3, 0x459D2988, 0xCE48A86B, 0x0A99C770} } } } ;
22122 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3341 a000");
22123 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3342 a001");
22124 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3343 a010");
22125 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3344 a011");
22126 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3345 a100");
22127 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3346 a101");
22128 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3347 a110");
22129 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3348 a111");
22130 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3349 a200");
22131 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3350 a201");
22132 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3351 a210");
22133 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3352 a211");
22136 static const fp12_t var_a = { { { {0xF7D4EDA0, 0x38069F02, 0x5DBA57FF, 0x24041F0C, 0x01256463, 0x6AAC1F31, 0x30F8AFB5, 0x1A76880C},
22137 {0xAFB0D4A9, 0x8B74D10B, 0x4435CF8C, 0x5CB74A1B, 0x62042CAE, 0xBCD1529F, 0xD8CDDF26, 0x1D99D78C} } ,
22138 { {0x555BCCBE, 0xDA4F57D8, 0xD70A10D6, 0xAC971B6E, 0xC480499A, 0x5947F20F, 0x8CA4910A, 0x1E3C1B42},
22139 {0x725CC756, 0x5A002CD6, 0x2E775047, 0x7075A99E, 0x778E4C06, 0x7A8AFD41, 0x3A8A1000, 0x18F62EC1} } } ,
22140 { { {0xE088CAC1, 0x9EAE3A86, 0x9266FDF9, 0xD78F17AA, 0xDA0118B6, 0x54E51468, 0x026342D4, 0x1C6C6EF2},
22141 {0x50D92B08, 0xF060A298, 0x03C893E3, 0xC9CE0852, 0xE5FD4CEC, 0x2566B45C, 0xF9118A36, 0x1CD21B71} } ,
22142 { {0xC4901657, 0xB5AB2D14, 0xB4AF6834, 0x94FB90D0, 0xA0B26BEB, 0xF6127AD6, 0xA770D4E2, 0x18AF2549},
22143 {0x15B3A37C, 0x70F4DFC5, 0x8949AEF1, 0x03584924, 0xA96B2EDA, 0x330DB6D1, 0xC9215A28, 0x0816FDF1} } } ,
22144 { { {0x6ECBF989, 0xD240BA2F, 0xA09B18AD, 0xFBA9439A, 0xB3EE1BC7, 0xBB34CB74, 0x0F24E04C, 0x1271D5C7},
22145 {0xCF022F5B, 0x32941930, 0xC518BF0D, 0x66F6FF63, 0x012A484C, 0xCC66924A, 0x9F428193, 0x1B42ABA4} } ,
22146 { {0x8B86E798, 0x2BE850A5, 0xFC023345, 0x48B5A5F7, 0xEF32B2C9, 0x0190B2FD, 0x50474A07, 0x017634DB},
22147 {0xCA3EEA39, 0xD0A46063, 0xFB9DEEA9, 0x35F22AB1, 0x6A94D272, 0x127477A9, 0x7010330A, 0x24F3A828} } } } ;
22148 static const fp12_t var_expected = { { { {0x7BEA76D0, 0x9C034F81, 0x2EDD2BFF, 0x92020F86, 0x8092B231, 0xB5560F98, 0x187C57DA, 0x0D3B4406},
22149 {0xD7D86A5E, 0x193A6885, 0xA21AE7D0, 0x5EEC250D, 0xB102165B, 0x3B82D00F, 0x8C66EF94, 0x215E9E07} } ,
22150 { {0x2AADE65F, 0x6D27ABEC, 0x6B85086B, 0x564B8DB7, 0xE24024CD, 0x2CA3F907, 0x46524885, 0x0F1E0DA1},
22151 {0x392E63AB, 0xAD00166B, 0x173BA823, 0x383AD4CF, 0xBBC72603, 0x3D457EA0, 0x9D450800, 0x0C7B1760} } } ,
22152 { { {0x7044656A, 0xA2D71D43, 0x49337F06, 0x9C580BD5, 0x6D008C5F, 0x078CB0F4, 0x2131A16B, 0x20C7E9BA},
22153 {0x286C9584, 0xF830514C, 0x01E449F1, 0x64E70429, 0x72FEA676, 0x12B35A2E, 0xFC88C51B, 0x0E690DB8} } ,
22154 { {0x62480B35, 0x2E55968A, 0x5A57B424, 0xFB0E4868, 0x505935F9, 0x5823642B, 0xF3B86A72, 0x1EE944E5},
22155 {0x8AD9D1BE, 0xB87A6FE2, 0x44A4D778, 0x01AC2492, 0xD4B5976D, 0x1986DB68, 0xE490AD14, 0x040B7EF8} } } ,
22156 { { {0xB765FCCE, 0xBCA05D17, 0x504D8C60, 0x2E6521CD, 0x59F70DE8, 0x3AB48C7A, 0xA7927027, 0x1BCA9D24},
22157 {0x678117B7, 0x6CCA0C98, 0xE28C5F90, 0x640BFFB1, 0x0095242A, 0xC34D6FE5, 0x6FA140CA, 0x20330813} } ,
22158 { {0xC5C373CC, 0x95F42852, 0xFE0119A2, 0xA45AD2FB, 0xF7995964, 0x80C8597E, 0xA823A503, 0x00BB1A6D},
22159 {0xE51F7526, 0xBBD23031, 0xFDCEF75E, 0x4B899558, 0xB54A693D, 0xE6546294, 0x58081985, 0x250B8655} } } } ;
22161 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3353 a000");
22162 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3354 a001");
22163 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3355 a010");
22164 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3356 a011");
22165 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3357 a100");
22166 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3358 a101");
22167 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3359 a110");
22168 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3360 a111");
22169 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3361 a200");
22170 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3362 a201");
22171 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3363 a210");
22172 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3364 a211");
22175 static const fp12_t var_a = { { { {0x08D52518, 0x35B3EDEB, 0xAD318836, 0xF8711CAB, 0x72ED349B, 0x6A5DCDDD, 0xBF613EEB, 0x1FB4D3A4},
22176 {0x940AE051, 0xEA21DA7A, 0xB0DC5196, 0xEA90340E, 0x9FDF36C7, 0x960CAED5, 0x7291CA71, 0x0F274646} } ,
22177 { {0x125F0980, 0x4F502124, 0xD836572C, 0x281A0027, 0x9A4D46C3, 0x8F03910B, 0x31085D49, 0x090CB912},
22178 {0xF906EFB4, 0xF2B4D9F1, 0xAAC3CD52, 0xE4882F69, 0x9FE938B6, 0x3FF8B641, 0xD983720B, 0x05DDE68C} } } ,
22179 { { {0x1632C4C5, 0x57247E2B, 0xE2348536, 0x60F35C28, 0x021497B0, 0x32494635, 0x3A331EF5, 0x0031A305},
22180 {0x07A2C371, 0x9ABEE031, 0xED7CDE6B, 0x0ABD5D36, 0xA609F497, 0x7FE85770, 0x59A78110, 0x21858846} } ,
22181 { {0xC190CDCE, 0x135469A5, 0x6FB147B8, 0x884075C7, 0x8762ADD2, 0xC9FDA294, 0xB08667D8, 0x0010C7E9},
22182 {0x0BE7E592, 0x646D81DE, 0xBFBD6600, 0xE5A2F5F4, 0x32E0AAE0, 0xD24B8765, 0x6A1A8B04, 0x12E0FA35} } } ,
22183 { { {0x01C3D4C6, 0x53D64F1A, 0x66E547E1, 0xB7B315F7, 0x488CFF7C, 0x3C7C19FA, 0xA7A856E1, 0x1BEDFF67},
22184 {0x914EDAEA, 0xAFC52520, 0xA41663FD, 0x0B7431B7, 0xFF26715F, 0x276F029F, 0xFE9D22A8, 0x07CC048A} } ,
22185 { {0x01E64C4A, 0xF9853F8E, 0xEB0C30E7, 0x1D9D99AB, 0xA0E56279, 0xAF1C1EEB, 0xB68A3FDD, 0x0F8BDF55},
22186 {0x678E5C84, 0xB4B9BA6E, 0x62439D31, 0xCFC5A206, 0x0A819A2C, 0x9630622C, 0x4BEB5470, 0x05FED252} } } } ;
22187 static const fp12_t var_expected = { { { {0x846A928C, 0x1AD9F6F5, 0xD698C41B, 0xFC388E55, 0xB9769A4D, 0xB52EE6EE, 0x5FB09F75, 0x0FDA69D2},
22188 {0x4A057032, 0x4890ED3D, 0x586E28D5, 0x25D89A07, 0xCFEF9B68, 0xA8207E2A, 0x5948E539, 0x1A255564} } ,
22189 { {0x092F84C0, 0x27A81092, 0xEC1B2B96, 0x940D0013, 0xCD26A361, 0xC781C885, 0x18842EA4, 0x04865C89},
22190 {0xFC8377DA, 0x795A6CF8, 0xD561E6A9, 0x724417B4, 0xCFF49C5B, 0x9FFC5B20, 0x6CC1B905, 0x02EEF346} } } ,
22191 { { {0x8B19626C, 0xFF123F15, 0x711A42A4, 0x610A2E14, 0x810A4BDC, 0x763EC9DA, 0xBD198F7B, 0x12AA83C3},
22192 {0x83D161C2, 0xA0DF7018, 0x76BE6F3F, 0xB5EF2E9B, 0x5304FA4F, 0x1D0E5278, 0x4CD3C089, 0x23547664} } ,
22193 { {0xE0C866E7, 0x09AA34D2, 0xB7D8A3DC, 0x44203AE3, 0x43B156E9, 0x64FED14A, 0xD84333EC, 0x000863F4},
22194 {0x05F3F2C9, 0x3236C0EF, 0x5FDEB300, 0x72D17AFA, 0x99705570, 0x6925C3B2, 0xB50D4582, 0x09707D1A} } } ,
22195 { { {0x00E1EA63, 0xA9EB278D, 0xB372A3F0, 0x5BD98AFB, 0x24467FBE, 0x9E3E0CFD, 0xD3D42B70, 0x0DF6FFB3},
22196 {0x48A76D75, 0xD7E29290, 0xD20B31FE, 0x85BA18DB, 0xFF9338AF, 0x13B7814F, 0x7F4E9154, 0x03E60245} } ,
22197 { {0x00F32625, 0xFCC29FC7, 0xF5861873, 0x8ECECCD5, 0xD072B13C, 0xD78E0F75, 0xDB451FEE, 0x07C5EFAA},
22198 {0x33C72E42, 0xDA5CDD37, 0x3121CE98, 0x67E2D103, 0x0540CD16, 0x4B183116, 0x25F5AA38, 0x02FF6929} } } } ;
22200 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3365 a000");
22201 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3366 a001");
22202 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3367 a010");
22203 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3368 a011");
22204 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3369 a100");
22205 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3370 a101");
22206 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3371 a110");
22207 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3372 a111");
22208 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3373 a200");
22209 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3374 a201");
22210 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3375 a210");
22211 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3376 a211");
22214 static const fp12_t var_a = { { { {0x2FBC90F2, 0xF12DE42F, 0x63B7B78A, 0xDBD6C122, 0x2E94CE06, 0x6E974E47, 0x70C1DE90, 0x0256BAB8},
22215 {0x9A699FE9, 0x30343F9D, 0xFD7A4344, 0xB32FBDBD, 0x914A11CB, 0x164F256C, 0x0703D4A0, 0x0ABBC2A7} } ,
22216 { {0x397D97B8, 0x159BE800, 0x72171A1A, 0x8F1C4D05, 0xCD5E72EF, 0x9697B86D, 0x2ACFBFE9, 0x1296417A},
22217 {0x7680B3C2, 0x582A3727, 0xBABF86F2, 0xC24ABAAF, 0x0F6971F8, 0xFA5B0508, 0x667DD725, 0x24A00356} } } ,
22218 { { {0x0BA63392, 0x6EB1BB98, 0xFF520B6D, 0xA1B5515B, 0x9B7D2152, 0x21C2EC4A, 0x3B75D760, 0x24EB6E07},
22219 {0x8820F967, 0x47AC0201, 0x1F2F2466, 0x6248B037, 0x441B03B9, 0x48C3C942, 0xDDDAB00E, 0x20974C52} } ,
22220 { {0xD1C8F7AB, 0x9071B962, 0x2ED3176B, 0x3A67588C, 0xF469118B, 0x7C556646, 0x760452D5, 0x00B45986},
22221 {0x9E149D3D, 0x38F3186C, 0xF151D919, 0xEC9CF207, 0x2AC97944, 0x1624730F, 0xA2CE134A, 0x032B7277} } } ,
22222 { { {0xFA5CA6C7, 0x2311B8F8, 0x63947C21, 0x926543E4, 0x77AEEC6E, 0x51D78303, 0x31AD953D, 0x149BF2E3},
22223 {0xC5743C13, 0x13742790, 0x336CDFC7, 0x5173B6D2, 0x00D49A33, 0xA2BDA5B8, 0x6899125E, 0x0C049EBE} } ,
22224 { {0x328F2BC9, 0xEC06F97A, 0x457671D2, 0xD57EF355, 0xFFB6398C, 0x5E98A04D, 0x80CE7842, 0x05BE2C50},
22225 {0x49768D48, 0xE0ED14DA, 0x2DCD4B0C, 0x2B54FDA4, 0x4266A94F, 0xF9CC77E3, 0x664FCEE1, 0x08BD19DD} } } } ;
22226 static const fp12_t var_expected = { { { {0x97DE4879, 0x7896F217, 0x31DBDBC5, 0x6DEB6091, 0x974A6703, 0x374BA723, 0x3860EF48, 0x012B5D5C},
22227 {0xCD34CFFE, 0xEB9A1FCE, 0xFEBD21AB, 0x0A285EDE, 0x48A508EA, 0xE841B976, 0xA381EA50, 0x17EF9394} } ,
22228 { {0x1CBECBDC, 0x0ACDF400, 0xB90B8D0D, 0xC78E2682, 0xE6AF3977, 0xCB4BDC36, 0x1567DFF4, 0x094B20BD},
22229 {0xBB4059E1, 0x2C151B93, 0xDD5FC379, 0x61255D57, 0x07B4B8FC, 0xFD2D8284, 0x333EEB92, 0x125001AB} } } ,
22230 { { {0x05D319C9, 0xB758DDCC, 0xFFA905B6, 0x50DAA8AD, 0x4DBE90A9, 0x10E17625, 0x9DBAEBB0, 0x1275B703},
22231 {0xC4107CBD, 0xF7560100, 0x8F97923C, 0xE1B4D81B, 0x220D81E0, 0x017C0B61, 0x8EED5808, 0x22DD586A} } ,
22232 { {0x68E47BDF, 0x9BB8DCB1, 0x17698BBF, 0xCDC42C46, 0x7A3488C9, 0x9B44D9E3, 0x5B02296B, 0x12EBDF04},
22233 {0x4F0A4EA8, 0x6FF98C36, 0xF8A8EC96, 0xA6DEF903, 0x9564BCA6, 0xE82C6047, 0xF16709A5, 0x14276B7C} } } ,
22234 { { {0x7D2E536D, 0x6508DC7C, 0x31CA3E1A, 0x79C321F2, 0xBBD7763B, 0x8605E841, 0xB8D6CA9F, 0x1CDFABB2},
22235 {0x62BA1E13, 0x5D3A13C8, 0x19B66FED, 0xD94A5B69, 0x006A4D1D, 0x2E78F99C, 0x544C8930, 0x189401A0} } ,
22236 { {0x194795EE, 0x49837CBD, 0xA2BB38F3, 0x9B4FF9AA, 0xFFDB1CCA, 0x0C6676E6, 0x60673C22, 0x1570C869},
22237 {0x24BB46A4, 0x70768A6D, 0x16E6A586, 0x95AA7ED2, 0xA13354A7, 0xFCE63BF1, 0xB327E770, 0x045E8CEE} } } } ;
22239 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3377 a000");
22240 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3378 a001");
22241 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3379 a010");
22242 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3380 a011");
22243 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3381 a100");
22244 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3382 a101");
22245 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3383 a110");
22246 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3384 a111");
22247 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3385 a200");
22248 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3386 a201");
22249 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3387 a210");
22250 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3388 a211");
22253 static const fp12_t var_a = { { { {0x66114404, 0xF41C7E06, 0xB78BED79, 0x2670B274, 0xAAA014E1, 0x584765D0, 0x7946ACAA, 0x12606528},
22254 {0xB83B2263, 0x7976E861, 0x621F6A4B, 0xFB6CC10C, 0xAE43AC16, 0x7E3663BF, 0xD02CDBDE, 0x0B1F0024} } ,
22255 { {0xC3EA995A, 0x537DC2AA, 0xDF6AD092, 0xBD1561DD, 0xD60942E0, 0x390FCE5A, 0xB1C359B4, 0x1CC07C7D},
22256 {0xDFA43DC9, 0x869394D8, 0x97B80978, 0x71296363, 0x409986E3, 0x2EDE9546, 0x1BE358B8, 0x148AC9C8} } } ,
22257 { { {0xB6478F40, 0xBDC9D77F, 0x237D9365, 0xB23E6A88, 0x1DE28C50, 0x79BA99BE, 0xBD12F65C, 0x2412999D},
22258 {0xCA1EC226, 0xC440A6BE, 0xD1E9BE84, 0x0B6561D5, 0x35CDE473, 0x06733C39, 0xFCF0BEE0, 0x2166CF52} } ,
22259 { {0xEC498CE5, 0x681EE7BD, 0x264F6015, 0x400B7ABD, 0x5F3A7D5A, 0x7BF2A730, 0xB17047C0, 0x1FDC046C},
22260 {0xC6732502, 0xE305D8E4, 0x574F189F, 0xC4275000, 0x0A4FFD6D, 0xC9A0D157, 0xE9E45CCC, 0x24BE583B} } } ,
22261 { { {0x53D8EC6F, 0x922F16F7, 0xCEE0A01A, 0xDACCF7A1, 0xB814689D, 0x0CADBFA2, 0xE3D89F1F, 0x20BBEF3D},
22262 {0x619B8CD1, 0xF3048977, 0xAB20C8B3, 0x6E501440, 0x7D67254C, 0xF2B22379, 0x56B98ED6, 0x04DB75FF} } ,
22263 { {0x166F7262, 0xE652D0D4, 0x40F50289, 0x6202429B, 0x8434CA6C, 0x3A212BF1, 0xA8544BE7, 0x0D9D6BD9},
22264 {0x688AEBBF, 0x7A081816, 0x9480C167, 0x22586604, 0x8A083A5F, 0x0B1C3F7A, 0xF81FA5C4, 0x0E2C424C} } } } ;
22265 static const fp12_t var_expected = { { { {0x3308A202, 0xFA0E3F03, 0x5BC5F6BC, 0x9338593A, 0x55500A70, 0x2C23B2E8, 0x3CA35655, 0x09303294},
22266 {0xDC1D913B, 0x903B7430, 0x310FB52F, 0xAE46E086, 0xD721D60F, 0x1C35589F, 0x88166DF0, 0x18213253} } ,
22267 { {0x61F54CAD, 0x29BEE155, 0xEFB56849, 0x5E8AB0EE, 0x6B04A170, 0x1C87E72D, 0xD8E1ACDA, 0x0E603E3E},
22268 {0x6FD21EEE, 0x16C9CA6C, 0xCBDC04C6, 0xE92531B1, 0x204CC375, 0xF4897163, 0x2DF1AC5C, 0x1CD71725} } } ,
22269 { { {0xDB23C7A0, 0xDEE4EBBF, 0x11BEC9B2, 0x591F3544, 0x0EF14628, 0x3CDD4CDF, 0xDE897B2E, 0x12094CCE},
22270 {0x650F6113, 0x6220535F, 0xE8F4DF42, 0x85B2B0EA, 0x9AE6F239, 0x03399E1C, 0x7E785F70, 0x10B367A9} } ,
22271 { {0xF624C67C, 0x878F73DE, 0x9327B014, 0x50963D5E, 0x2F9D3EB1, 0x1B137A58, 0x78B823E1, 0x227FB477},
22272 {0x63399281, 0xF182EC72, 0x2BA78C4F, 0xE213A800, 0x8527FEB6, 0x64D068AB, 0xF4F22E66, 0x125F2C1D} } } ,
22273 { { {0xA9EC7641, 0x1C978B7B, 0xE7705017, 0x1DF6FBD0, 0x5C0A3453, 0x63710691, 0x11EC4F90, 0x22EFA9E0},
22274 {0xB0CDC672, 0xCD0244BB, 0x55906463, 0x67B88A20, 0xBEB392AA, 0x5673387C, 0xCB5CC76C, 0x14FF6D40} } ,
22275 { {0x0B37B931, 0xF329686A, 0xA07A8144, 0x3101214D, 0xC21A6536, 0x9D1095F8, 0xD42A25F3, 0x06CEB5EC},
22276 {0x344575E9, 0x90840C0B, 0x4A4060BD, 0xC1BCB302, 0x45041D33, 0xE2A8467D, 0x9C0FD2E2, 0x19A7D367} } } } ;
22278 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3389 a000");
22279 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3390 a001");
22280 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3391 a010");
22281 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3392 a011");
22282 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3393 a100");
22283 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3394 a101");
22284 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3395 a110");
22285 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3396 a111");
22286 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3397 a200");
22287 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3398 a201");
22288 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3399 a210");
22289 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3400 a211");
22292 static const fp12_t var_a = { { { {0xA3EF5D99, 0xBE8D73F9, 0xE262EF40, 0x4EA2B8FD, 0x61EEFB99, 0x3D223D02, 0xD550326B, 0x0BC54D76},
22293 {0xE8024557, 0x219822B7, 0x17CD4992, 0xA3FE97C7, 0x6F9DDBFD, 0x6ABF2EB3, 0x04CD8172, 0x1CFFE0D3} } ,
22294 { {0xA8700E0D, 0xBFA961E7, 0x57637557, 0x33247AC1, 0x2CF837DF, 0x5B06A80F, 0xBEE3AF36, 0x0DF43ADB},
22295 {0x2C64EE4C, 0x7504A85A, 0x78EFFD71, 0xA0DF947F, 0xA7DA82E7, 0xA9A4A9E4, 0x6FD3E7B2, 0x1FBFF2EF} } } ,
22296 { { {0x110E3A11, 0x1042750E, 0x85E3A965, 0xCB20F435, 0x0239F668, 0xC1562C3F, 0x39289C86, 0x030DD4DB},
22297 {0xC47AFAD4, 0xA77610CB, 0x3CACCB30, 0x394839A2, 0xF28D6030, 0x6F6C34CC, 0x2FE77F57, 0x003854A0} } ,
22298 { {0x0AB9B91A, 0x1BD6DA60, 0x91D37AA9, 0x103330ED, 0x40999A90, 0xD9DB8154, 0x5A858ABF, 0x19FD443E},
22299 {0x7B50AF2B, 0x3F0318EE, 0x29F3DE04, 0x8593DF15, 0x4A6E163E, 0x4643E6D6, 0xF7B69011, 0x0DA8F556} } } ,
22300 { { {0x0208E98F, 0x43D54D10, 0xE076F688, 0x57F0E657, 0x82D277C9, 0xADA6578A, 0x37023C36, 0x058D4A98},
22301 {0x5FFC05D1, 0x32BC9D66, 0x432F829D, 0x54ED2FA7, 0xEEEB4810, 0x3FBA9B15, 0xBE356B97, 0x188723E5} } ,
22302 { {0xA5069A5E, 0x9EB1B954, 0x17B4062E, 0x472054CB, 0xA73F26C8, 0x27696E69, 0x259545E4, 0x0CE81567},
22303 {0xBC7256D1, 0x50B85688, 0xD096F849, 0xEFEE3DDD, 0x5A00FC31, 0x4FCB607A, 0x79F08A43, 0x1C718F1F} } } } ;
22304 static const fp12_t var_expected = { { { {0xD1F7AED6, 0x32C6B9FC, 0xF13177AA, 0xD7E1DC7E, 0x30F77DD0, 0x7BAB4541, 0x8AA81936, 0x187458FC},
22305 {0xF40122B5, 0xE44C115B, 0x8BE6A4D2, 0x028FCBE3, 0xB7CEEE03, 0x1279BE19, 0xA266C0BA, 0x2111A2AA} } ,
22306 { {0xD4380710, 0xB354B0F3, 0xABB1BAB5, 0xCA22BD60, 0x967C1BF3, 0x0A9D7AC7, 0xFF71D79C, 0x198BCFAE},
22307 {0x16327726, 0xBA82542D, 0xBC77FEB8, 0xD06FCA3F, 0x53ED4173, 0x54D254F2, 0xB7E9F3D9, 0x0FDFF977} } } ,
22308 { { {0x08871D12, 0x5BA13A87, 0xC2F1D4BC, 0x9620FA1A, 0x811CFB38, 0x3DC53CDF, 0xBC944E44, 0x14189CAE},
22309 {0xE23D7D6A, 0x53BB0865, 0x1E566598, 0x1CA41CD1, 0x7946B018, 0xB7B61A66, 0x17F3BFAB, 0x001C2A50} } ,
22310 { {0x055CDC8D, 0x8DEB6D30, 0xC8E9BD54, 0x08199876, 0x204CCD48, 0xECEDC0AA, 0x2D42C55F, 0x0CFEA21F},
22311 {0x3DA8579F, 0xF3018C77, 0x94F9EF0B, 0x735A6F8A, 0x25370B23, 0x803C1A2B, 0x9BDB4809, 0x19662CEC} } } ,
22312 { { {0x010474D1, 0xF56AA688, 0xF03B7B4D, 0xDC88F32B, 0x41693BE8, 0x33ED5285, 0x3B811E1C, 0x1558578D},
22313 {0x2FFE02F2, 0x6CDE4EB3, 0xA197C158, 0x5B0717D3, 0xF775A40C, 0x7CF7744A, 0xFF1AB5CC, 0x1ED54433} } ,
22314 { {0x52834D2F, 0x4F58DCAA, 0x8BDA0317, 0x23902A65, 0xD39F9364, 0x13B4B734, 0x92CAA2F2, 0x06740AB3},
22315 {0x5E392B72, 0x7BDC2B44, 0xE84B7C2E, 0x28879EEE, 0x2D007E1D, 0x84FFD6FD, 0xDCF84522, 0x20CA79D0} } } } ;
22317 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3401 a000");
22318 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3402 a001");
22319 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3403 a010");
22320 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3404 a011");
22321 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3405 a100");
22322 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3406 a101");
22323 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3407 a110");
22324 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3408 a111");
22325 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3409 a200");
22326 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3410 a201");
22327 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3411 a210");
22328 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3412 a211");
22331 static const fp12_t var_a = { { { {0xE0059CDC, 0x32EE3E5D, 0x1A65A089, 0x490ED6E9, 0xCAAC2E0E, 0x442CF0A8, 0x7973EA21, 0x18722B2F},
22332 {0x2055FF63, 0xBF2C65DE, 0x547B3CA3, 0xE1F0E244, 0x4BFEC8B4, 0x9379C474, 0x1B5A6AA1, 0x1EFD0265} } ,
22333 { {0xE06BDC28, 0xAA339CCC, 0x10A76641, 0x3EBD47A7, 0x49270951, 0x1156CAEC, 0x87632A6B, 0x0C7656F5},
22334 {0x57C22C04, 0x3575D3C5, 0x9599CB7D, 0x729A608C, 0xBF61E7EC, 0x95EA20F2, 0x1B1E0BD0, 0x06C24741} } } ,
22335 { { {0x12840C19, 0x605AFB61, 0x5D2AC237, 0x9D232562, 0xC1CD6F45, 0xC66DE175, 0x2506043D, 0x0E1E7C31},
22336 {0x6F26B728, 0x092BF3DC, 0x97694993, 0xE7B54408, 0xF29F095A, 0x7DD56770, 0x6C6D321E, 0x0FB9812F} } ,
22337 { {0x234FEEEC, 0xF97D22AF, 0xA6826C0C, 0xFA3C72CA, 0x0EA00529, 0xA9F98B8B, 0xA832EB48, 0x138AD337},
22338 {0xB50A0D78, 0xD532A048, 0xA06E2F59, 0x86318D7A, 0x62F70D11, 0x6ECB7307, 0x05505965, 0x0CB582B7} } } ,
22339 { { {0x00532C6B, 0x2D0B09FD, 0xCF766F34, 0xB886638F, 0x4F4F519F, 0x01A37A39, 0xA538737A, 0x0C7BE7E9},
22340 {0xB5E53528, 0x71C66710, 0x34876134, 0xCDC21F35, 0xCA3F83C4, 0xCC93EE2A, 0x1BF8503D, 0x0FC69445} } ,
22341 { {0xD66ABC4A, 0xBFD2D0BF, 0xFF50985B, 0x7103CF0C, 0xDF0D0CD4, 0x7C323DAB, 0xF03A2D84, 0x031964D4},
22342 {0x3CEBE6E2, 0xF58C9312, 0x183DBC77, 0xC7706CF0, 0x2ABA0111, 0x7D88D207, 0x610C9B27, 0x12972EC9} } } } ;
22343 static const fp12_t var_expected = { { { {0xF002CE6E, 0x99771F2E, 0x8D32D044, 0x24876B74, 0x65561707, 0xA2167854, 0xBCB9F510, 0x0C391597},
22344 {0x102AFFBB, 0xB31632EF, 0x2A3D9E5B, 0xA188F122, 0x25FF645E, 0xA6D708FA, 0xADAD3551, 0x22103373} } ,
22345 { {0x7035EE14, 0xD519CE66, 0x8853B320, 0x9F5EA3D3, 0x249384A8, 0x88AB6576, 0xC3B19535, 0x063B2B7A},
22346 {0xABE11602, 0x9ABAE9E2, 0x4ACCE5BE, 0x394D3046, 0x5FB0F3F6, 0x4AF51079, 0x8D8F05E8, 0x036123A0} } } ,
22347 { { {0x89420616, 0x83AD7DB0, 0x2E956125, 0xFF2212B1, 0xE0E6B7A6, 0xC051177A, 0xB283021F, 0x19A0F059},
22348 {0x37935B94, 0x8495F9EE, 0x4BB4A4C9, 0x73DAA204, 0x794F84AD, 0x3EEAB3B8, 0xB636990F, 0x07DCC097} } ,
22349 { {0x91A7F776, 0x7CBE9157, 0x53413606, 0xFD1E3965, 0x87500294, 0x54FCC5C5, 0xD41975A4, 0x09C5699B},
22350 {0x5A8506BC, 0xEA995024, 0x503717AC, 0xC318C6BD, 0xB17B8688, 0xB765B983, 0x82A82CB2, 0x065AC15B} } } ,
22351 { { {0x8029963F, 0xEA0584FE, 0xE7BB37A3, 0x0CD3B1C7, 0xA7A7A8D4, 0xDDEBE3DC, 0xF29C39BD, 0x18CFA635},
22352 {0x5AF29A94, 0x38E33388, 0x9A43B09A, 0x66E10F9A, 0x651FC1E2, 0xE649F715, 0x8DFC281E, 0x07E34A22} } ,
22353 { {0xEB355E25, 0xDFE9685F, 0x7FA84C2D, 0x3881E786, 0xEF86866A, 0x3E191ED5, 0x781D16C2, 0x018CB26A},
22354 {0x1E75F371, 0xFAC64989, 0x0C1EDE3B, 0xE3B83678, 0x955D0088, 0xBEC46903, 0xB0864D93, 0x094B9764} } } } ;
22356 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3413 a000");
22357 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3414 a001");
22358 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3415 a010");
22359 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3416 a011");
22360 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3417 a100");
22361 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3418 a101");
22362 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3419 a110");
22363 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3420 a111");
22364 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3421 a200");
22365 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3422 a201");
22366 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3423 a210");
22367 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3424 a211");
22370 static const fp12_t var_a = { { { {0x6CF7D918, 0x0771DB9E, 0xF4E993AD, 0xA5419646, 0xC53BBD83, 0xC042A033, 0x1051F064, 0x0081F1ED},
22371 {0x122EB705, 0x6A637E2A, 0x8854AD76, 0x99A8F70C, 0xD03865A4, 0x76BEE589, 0x0C84683A, 0x0FEF2D9B} } ,
22372 { {0x8F9AFBF4, 0x724D2A3C, 0x608A4A50, 0xA522D5D5, 0xFDFB4C31, 0x6E8575F0, 0x970EE91F, 0x1C95F8A4},
22373 {0x64C19460, 0x47B7885E, 0x17FCEFA1, 0x4165B60F, 0x2BFA34B4, 0xA86C5670, 0x126DC7F3, 0x00613035} } } ,
22374 { { {0x3C16DECE, 0xE4DE6721, 0x8200E31A, 0x85B892ED, 0x5FA6A162, 0x95BBD3D1, 0xBC74A229, 0x0386B0CB},
22375 {0x28BEBC6B, 0x47C5BC5A, 0x696EE2A0, 0x6015FEFC, 0x0DB93BD8, 0xF6C12AB8, 0xD302FA9C, 0x1494F4ED} } ,
22376 { {0x79E216DE, 0x7F1EE538, 0x67FCA29A, 0xABCE7405, 0x000C7F96, 0xC6BAC8BF, 0x75CD06A8, 0x0D81C1C7},
22377 {0x1F90FDEB, 0x20D4450F, 0x86922878, 0xAC3BA8DD, 0x2A48D0F6, 0xDF46C1F1, 0xF10B9E72, 0x0EAEED21} } } ,
22378 { { {0x3EB87F55, 0x7D64E132, 0x7E80435F, 0xC8AF88CF, 0xCE2973E4, 0xC8AD4308, 0xB52E2837, 0x2357E61A},
22379 {0xEA906CDD, 0xFA0D16E0, 0x46049994, 0x48A7BEA0, 0xA69A8170, 0x6E41AE53, 0x00DD6948, 0x2099F0A8} } ,
22380 { {0x778EA81F, 0xAAE410A1, 0x15889CC4, 0xA16E7CA7, 0x523A4280, 0xDE16E5BA, 0xA5770701, 0x11F69B73},
22381 {0xF6D957C6, 0x7F541000, 0x1684E8B4, 0xF5095C20, 0xFF86C3D8, 0x41C3C5B4, 0x4CEB4E49, 0x0B07D3AB} } } } ;
22382 static const bigint_t var_b = {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
22383 static const fp12_t var_expected = { { { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
22384 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
22385 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22386 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
22387 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22388 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
22389 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22390 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
22391 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22392 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
22393 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
22394 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
22396 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3425 a000");
22397 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3426 a001");
22398 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3427 a010");
22399 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3428 a011");
22400 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3429 a100");
22401 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3430 a101");
22402 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3431 a110");
22403 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3432 a111");
22404 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3433 a200");
22405 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3434 a201");
22406 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3435 a210");
22407 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3436 a211");
22410 static const fp12_t var_a = { { { {0xCD1C662F, 0x9EFAEDB5, 0x6C8DC518, 0x5C4E6108, 0xEFFDA64A, 0xD7DE0CB0, 0x55C9683C, 0x12081D91},
22411 {0x8267105E, 0x1855A0ED, 0x8E26D7BA, 0xCFBD478F, 0x8FBFEF14, 0x98DD1770, 0x1E10215A, 0x1FF73D82} } ,
22412 { {0xB302CBA6, 0x7879321B, 0xA99D1C2E, 0x04347FB4, 0x259F8BB9, 0x9E4AFBDC, 0xBF3AB917, 0x21B581A0},
22413 {0x0C698BDC, 0x9AADCB45, 0x08B7B7F1, 0x8B417704, 0x94F4142C, 0xA2330B17, 0x0143A3B2, 0x058CD717} } } ,
22414 { { {0x9B21600C, 0x636636F2, 0xD1915718, 0xCBB3643F, 0x87BB62D1, 0x167AC19D, 0x0F5955C0, 0x075B44D5},
22415 {0xBE3D7169, 0x01238301, 0x1E1D65F8, 0xFB9883F5, 0xDE887476, 0x8EBBF398, 0x3439B764, 0x0AFC7951} } ,
22416 { {0x4D36E219, 0xCFD76E1D, 0x1AD8B547, 0xF9225259, 0xD3520049, 0x6F3C0948, 0x3CD1A265, 0x087620B3},
22417 {0x8C513FF3, 0xDB9CAAD4, 0xA91A1DFC, 0xF2B5896C, 0x62E23552, 0x0E595F91, 0x6F58DE4A, 0x0EE5AFBB} } } ,
22418 { { {0x3EF8B77A, 0x53F2B489, 0x30675C7A, 0x0EE7C77F, 0x5B2706BB, 0xBE0E4870, 0x5E98635A, 0x13708FCA},
22419 {0x7407750E, 0xDFA18432, 0x19B662B2, 0x7958D44C, 0xF2A0C459, 0xB7A2A66D, 0x7910A8C8, 0x0EEC4C45} } ,
22420 { {0x271A490C, 0x33C743ED, 0x7CEBDE33, 0xBADF443B, 0xA9CD9979, 0x8C5649BC, 0xC582B242, 0x167D1FF0},
22421 {0x1455CDDF, 0x738ED7F8, 0x785B35FE, 0x1BED9598, 0x8F9E74C9, 0x11090A14, 0xFD0970B8, 0x1EC7DCE8} } } } ;
22422 static const bigint_t var_b = {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
22423 static const fp12_t var_expected = { { { {0xCD1C662F, 0x9EFAEDB5, 0x6C8DC518, 0x5C4E6108, 0xEFFDA64A, 0xD7DE0CB0, 0x55C9683C, 0x12081D91},
22424 {0x8267105E, 0x1855A0ED, 0x8E26D7BA, 0xCFBD478F, 0x8FBFEF14, 0x98DD1770, 0x1E10215A, 0x1FF73D82} } ,
22425 { {0xB302CBA6, 0x7879321B, 0xA99D1C2E, 0x04347FB4, 0x259F8BB9, 0x9E4AFBDC, 0xBF3AB917, 0x21B581A0},
22426 {0x0C698BDC, 0x9AADCB45, 0x08B7B7F1, 0x8B417704, 0x94F4142C, 0xA2330B17, 0x0143A3B2, 0x058CD717} } } ,
22427 { { {0x9B21600C, 0x636636F2, 0xD1915718, 0xCBB3643F, 0x87BB62D1, 0x167AC19D, 0x0F5955C0, 0x075B44D5},
22428 {0xBE3D7169, 0x01238301, 0x1E1D65F8, 0xFB9883F5, 0xDE887476, 0x8EBBF398, 0x3439B764, 0x0AFC7951} } ,
22429 { {0x4D36E219, 0xCFD76E1D, 0x1AD8B547, 0xF9225259, 0xD3520049, 0x6F3C0948, 0x3CD1A265, 0x087620B3},
22430 {0x8C513FF3, 0xDB9CAAD4, 0xA91A1DFC, 0xF2B5896C, 0x62E23552, 0x0E595F91, 0x6F58DE4A, 0x0EE5AFBB} } } ,
22431 { { {0x3EF8B77A, 0x53F2B489, 0x30675C7A, 0x0EE7C77F, 0x5B2706BB, 0xBE0E4870, 0x5E98635A, 0x13708FCA},
22432 {0x7407750E, 0xDFA18432, 0x19B662B2, 0x7958D44C, 0xF2A0C459, 0xB7A2A66D, 0x7910A8C8, 0x0EEC4C45} } ,
22433 { {0x271A490C, 0x33C743ED, 0x7CEBDE33, 0xBADF443B, 0xA9CD9979, 0x8C5649BC, 0xC582B242, 0x167D1FF0},
22434 {0x1455CDDF, 0x738ED7F8, 0x785B35FE, 0x1BED9598, 0x8F9E74C9, 0x11090A14, 0xFD0970B8, 0x1EC7DCE8} } } } ;
22436 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3437 a000");
22437 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3438 a001");
22438 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3439 a010");
22439 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3440 a011");
22440 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3441 a100");
22441 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3442 a101");
22442 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3443 a110");
22443 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3444 a111");
22444 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3445 a200");
22445 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3446 a201");
22446 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3447 a210");
22447 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3448 a211");
22450 static const fp12_t var_a = { { { {0x98BA0378, 0xE463428D, 0xAD72A60D, 0x45DB34E6, 0x43F05D13, 0xE9FC67BA, 0x8A540A80, 0x1910085D},
22451 {0x28248748, 0x1512569E, 0xA4B5CDE0, 0x11780DEC, 0x487F7888, 0x6A064158, 0x8150FA87, 0x23A436AC} } ,
22452 { {0xBEFC86A0, 0xEA33198E, 0xAB5A5140, 0x89E18E6F, 0x67108D84, 0x2C6A71F2, 0x03D96768, 0x18AA0E78},
22453 {0x327E0469, 0x87256DD4, 0x6265B522, 0x955C660F, 0x31A9A96A, 0x79965515, 0x3828217B, 0x1072F1FC} } } ,
22454 { { {0x70FA1EFC, 0xF9C1863D, 0x87DC9CD9, 0x939A8C0E, 0xB6CA1C13, 0x0959EE67, 0x5E15B0FF, 0x21F400E1},
22455 {0x1BD60C1C, 0x80B436A1, 0xD8C5EA7E, 0x1B679DE8, 0x6A98116F, 0xC7156249, 0xB0EDEE3F, 0x0A497FA0} } ,
22456 { {0x685378BF, 0x77E0D475, 0x5E1683C1, 0xFBFC3BE3, 0x53684E1A, 0x4130B842, 0xE9E95D94, 0x1591742B},
22457 {0x36160B29, 0x36D162CA, 0xD8B94C64, 0x54A220A8, 0x98D860E1, 0x6128103F, 0xD9FE3636, 0x23CB07A4} } } ,
22458 { { {0xD53E3EAC, 0xAA4BD855, 0x212C4F81, 0xA4CC0481, 0x035B368A, 0x945BF1B8, 0x50AE69A5, 0x120260C5},
22459 {0x9BEF149E, 0x4F41FA19, 0x3EF7FDE8, 0x434E1E67, 0xB0B01ADF, 0x97BCE463, 0x0282488A, 0x10B4A35B} } ,
22460 { {0xDCA81B85, 0xFCD6DE64, 0x75CCE3AD, 0xABD3F640, 0x3F09ADC0, 0x4EB95DBD, 0x05BE438F, 0x0A4E045A},
22461 {0xADBBEC2B, 0x8E4A03A8, 0xDBE30BDC, 0x1C7BE57E, 0x889AC7FB, 0xAAB66E0A, 0x2042FAEF, 0x01FF5DE1} } } } ;
22462 static const bigint_t var_b = {0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
22463 static const fp12_t var_expected = { { { {0x611776DB, 0x2483BAC9, 0xAFB048FD, 0x92C71C2B, 0xB9FC2715, 0x69890E1A, 0xC69D51F1, 0x0E244C42},
22464 {0x33A5E421, 0xE34A07B7, 0x968237F6, 0x6F7366AE, 0x60310993, 0x0E25D6B1, 0x9A190858, 0x12BA4A65} } ,
22465 { {0x506381E8, 0x0D5F156B, 0x4D1353A4, 0x522E3F9D, 0xB26291C7, 0x2B5FEE7E, 0x53CCA6E0, 0x225857CC},
22466 {0x66F98B55, 0x201392F1, 0x56FFD35D, 0xA0A63C02, 0x391C1826, 0x3DF32D99, 0x25CF9AB3, 0x1BEC6059} } } ,
22467 { { {0xC97D195A, 0xBAE9AAD1, 0x88AA02E4, 0x517F0132, 0x1CB02F82, 0x229D69B3, 0x190C28F0, 0x12D648C6},
22468 {0x399B7257, 0x19BF27E3, 0xDF517F09, 0x8D552962, 0x82B63917, 0x083A094A, 0x254F2FAB, 0x1106D110} } ,
22469 { {0xE0392A6C, 0x09B09A6B, 0x9EA32D87, 0xC5093D24, 0x4682A7C2, 0x31363E18, 0xD9E9FB3C, 0x0452F230},
22470 {0xED856CB5, 0xEE3B6F34, 0xCFD9610C, 0xA4FE9E35, 0x55B507A7, 0x4BFCBB6B, 0x69C7475E, 0x09E6EC61} } } ,
22471 { { {0x0F89FDA4, 0xA705E726, 0xBF5AB151, 0x330EA42F, 0x5D6EB453, 0x5E102AC1, 0xF1442A25, 0x1723D2F1},
22472 {0x6131A44D, 0x235F01B4, 0xFFD51CB4, 0xDD89E619, 0xB934BB18, 0x8E37B7DE, 0x38B04598, 0x1175F149} } ,
22473 { {0x84666A86, 0x0CEA3A2C, 0x73C07FBB, 0xC409D401, 0x51C0DF16, 0x54CD7B69, 0x74F6CCE8, 0x1FF232D8},
22474 {0x2F3AAB4C, 0x942A9FF5, 0xFCDD8EB3, 0xC79355A9, 0x8AE51CB2, 0xF953A7A5, 0x46B159A4, 0x018F3231} } } } ;
22476 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3449 a000");
22477 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3450 a001");
22478 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3451 a010");
22479 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3452 a011");
22480 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3453 a100");
22481 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3454 a101");
22482 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3455 a110");
22483 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3456 a111");
22484 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3457 a200");
22485 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3458 a201");
22486 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3459 a210");
22487 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3460 a211");
22490 static const fp12_t var_a = { { { {0x5D6EE083, 0xAA506E76, 0xD3DE2A81, 0xB3EE47CF, 0x8C45C1A9, 0x2D20DDCD, 0x9D3BFDD4, 0x002184A5},
22491 {0x5716D4C3, 0x8EC4AA37, 0x6C337756, 0x781DFA51, 0x423A494C, 0xFB294567, 0xB66B23C4, 0x1FDEFDE0} } ,
22492 { {0x2AE37B95, 0x5FA62D24, 0x7DD58E29, 0x20C2B6F7, 0x90F9D897, 0xA223E749, 0xBD90C9E0, 0x120769AF},
22493 {0x35D64613, 0xC68B80BF, 0xDAC85FF2, 0x8AB33E57, 0xDADA1014, 0x8AC03BE5, 0xFA7EB255, 0x0A40CBE2} } } ,
22494 { { {0xAA408023, 0xB7BBB1A7, 0xC9B51981, 0xD1775798, 0x94754E81, 0x34E46E87, 0xEEFC5140, 0x2478AFD0},
22495 {0x88CEAEFE, 0xC5261CF9, 0x77E0C19E, 0xC0940D67, 0xC1193584, 0x7D366EA6, 0x5D5BC9C0, 0x04FBB6ED} } ,
22496 { {0xE013B4AE, 0xCCFBE493, 0x76B4BB57, 0xF4E5F3D4, 0xE548A0BB, 0xC126A69F, 0x7D0C3C37, 0x0692B8B1},
22497 {0x9B303BFF, 0x5BED2301, 0x279656A5, 0x0ECBBDE4, 0xE25A8868, 0x184D0DE9, 0x97DB3F33, 0x23831716} } } ,
22498 { { {0xCDCBA411, 0x04E588AE, 0x4AD79097, 0xF20733AE, 0xB52CC600, 0x5C4E35F3, 0x9190ABCD, 0x1A9802DB},
22499 {0x30175381, 0x8F85DEA9, 0xBB3EF260, 0x007989B1, 0xFDD716A1, 0xFDBB290E, 0x5CB3A978, 0x1CFFBDED} } ,
22500 { {0xF55BF0B2, 0xB70428CE, 0x68F07B7C, 0xC1EAD32E, 0xE7071808, 0x5FC07A3D, 0xC35AC961, 0x1F9179E8},
22501 {0xE15A108D, 0x54934E87, 0x136E8EFA, 0xE4FAC943, 0xC4D4478F, 0xEDDCF653, 0x9C2ED262, 0x04F2F7D6} } } } ;
22502 static const bigint_t var_b = {0xE320AAC4, 0xD696992D, 0xB62DB9CD, 0x00261908, 0xA8743131, 0xBBC7BDC6, 0x2336384C, 0xD105B996};
22503 static const fp12_t var_expected = { { { {0x80EBEC96, 0x1B422033, 0x6F198AA0, 0x6E8EBC5A, 0xE0D30074, 0xC0833B92, 0xD37A229D, 0x1643AEEB},
22504 {0x52873F7F, 0x6053A24B, 0x53C2B2E6, 0x784EEAA6, 0x16ECF088, 0xFC1D759F, 0x7D77D430, 0x0C437DAA} } ,
22505 { {0xE421FC0B, 0x30E3370B, 0x42047C97, 0x34274B9E, 0x407F05A5, 0x89DC90D9, 0x0EBB71A3, 0x19CD503F},
22506 {0xED228F4F, 0xFC2FD87B, 0x782CF782, 0xB36B3928, 0x93F15F18, 0xC79519CA, 0xCE1FC5C7, 0x067E86E5} } } ,
22507 { { {0xE7127DAA, 0x87F455ED, 0x05740120, 0xE7F10570, 0x84B3BC5B, 0x1D1A4C40, 0x59D919B2, 0x24585830},
22508 {0xEC3BE74C, 0xB2FB39F2, 0x441766C8, 0x9080107E, 0xCD880EB0, 0x6A4A4908, 0x0DD6A473, 0x1CA4A85E} } ,
22509 { {0x0EEC4D35, 0x73E8E852, 0xB1A21186, 0xFE5185A0, 0xC87EAAA8, 0x777EC58B, 0x86D65183, 0x152D81C0},
22510 {0xBF62C22A, 0x0D3BF0EB, 0x3EB4ECCE, 0x593239DB, 0x90954352, 0xF251B582, 0x44E6CC32, 0x09E83FB5} } } ,
22511 { { {0xAD8B6F95, 0x2B88BBE6, 0xF0AED4C8, 0xC33FFA05, 0xD1F9F084, 0xAF956718, 0xCAA63F18, 0x230147C2},
22512 {0xD55B8D46, 0x71988146, 0x8EE5971D, 0x736F4A88, 0xD63A29E0, 0xC36D5431, 0x8CB2F34C, 0x0F7D6621} } ,
22513 { {0xB7E6152F, 0x42F9650D, 0x45D3B223, 0x0A17600E, 0xB4BC06CD, 0x90EBEA19, 0x45B731B6, 0x0ECD65A6},
22514 {0xE8EC3977, 0x342AEA12, 0x24B71C04, 0x34E6CAE6, 0xFF3BC108, 0x12CBDE15, 0x97621537, 0x004EFC0B} } } } ;
22516 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3461 a000");
22517 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3462 a001");
22518 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3463 a010");
22519 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3464 a011");
22520 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3465 a100");
22521 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3466 a101");
22522 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3467 a110");
22523 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3468 a111");
22524 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3469 a200");
22525 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3470 a201");
22526 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3471 a210");
22527 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3472 a211");
22530 static const fp12_t var_a = { { { {0x2002E122, 0xB61CC6D9, 0x47BC4407, 0xC33238C3, 0xB74EB60C, 0xFB99CCA9, 0x5109E2AD, 0x0A4B91E6},
22531 {0xA7A2647E, 0x573D109E, 0x9B436422, 0xB1D48F29, 0x30114CD5, 0x691A2B45, 0x620ABDEF, 0x01A0714E} } ,
22532 { {0x8AE70CE4, 0xD3C8BBB6, 0xBFB45604, 0xE68E8ADA, 0x030FEB99, 0x6227B507, 0xF532F979, 0x16190E64},
22533 {0xC643390F, 0xD7F0AC42, 0x490EEC53, 0xBC831EAE, 0x493F18D4, 0x1F8246CA, 0xB6BCDFD7, 0x1BF57A04} } } ,
22534 { { {0x9982843B, 0x21350F3B, 0xD0E6B0F2, 0x73847C95, 0x53705DA9, 0xEDEC1A10, 0x71A10491, 0x1E447ECF},
22535 {0xC1A18758, 0x40B611A9, 0x14CCAEB3, 0x400E8C77, 0xB49F5E2F, 0xDFA32C9D, 0xFEC62627, 0x0725D377} } ,
22536 { {0x3024190D, 0x623B5ADD, 0x53FC77F6, 0xB85B7511, 0xE52F66E9, 0xC40C5849, 0xE9F20481, 0x181D0680},
22537 {0x6FBB2BFC, 0x0C250D14, 0xCD342BC1, 0x48015CD2, 0x61CF4612, 0xF9D76E7A, 0x77661771, 0x16D12D8D} } } ,
22538 { { {0x77C097C6, 0x2112324E, 0xAB3E3A68, 0x8CA15B65, 0xEB748741, 0x5B875AEC, 0x4E4F19CD, 0x187A288D},
22539 {0x43CA15FC, 0x560FCCF9, 0x0A9DBB2D, 0x01214E88, 0xCF79A768, 0xA5A83D46, 0xC1252E2E, 0x25189AE2} } ,
22540 { {0x8F26A001, 0x7171DFF4, 0xE6B8B7BB, 0xB8877D1A, 0xCEB39230, 0x3B5A7A11, 0x9A2180E4, 0x1DD0BAA8},
22541 {0xE748CA6A, 0xFA99A7AA, 0x1D28242D, 0x77F736FD, 0xC8C8B90C, 0x46736B21, 0x2898F37F, 0x2259BC1E} } } } ;
22542 static const bigint_t var_b = {0x6A50105D, 0xE550D26A, 0x34C84FDD, 0x5DD90100, 0x009BC222, 0x1ADD3E21, 0x0CE42F05, 0x7E814026};
22543 static const fp12_t var_expected = { { { {0x033E77BE, 0xF4047255, 0x320B602C, 0xF100D5C7, 0x2F3D6057, 0xD3029AB5, 0x7BD79D36, 0x19F5FB31},
22544 {0xED0FFFE0, 0x679E3C8A, 0xA3939956, 0x0ED6BB6B, 0xF585E888, 0xCC1A7C66, 0x850322E6, 0x22F007AE} } ,
22545 { {0xCAA195E1, 0x848AB27E, 0x41459764, 0x609BC042, 0x165A637A, 0x35A4754F, 0x624DDFF9, 0x0EC56C90},
22546 {0xE0037046, 0xDAEC2EA5, 0x7DAB9A2D, 0x4BF6A855, 0x20F9D364, 0x28187D45, 0xE528B238, 0x1835DE53} } } ,
22547 { { {0xF53470AA, 0xF207F0BC, 0x1182AD0C, 0x99324EF7, 0x3FA05AD8, 0x5216E12C, 0xA9CAE907, 0x040ACBBA},
22548 {0x1A304E04, 0xAA13457E, 0x2C6078D0, 0xC1122561, 0xB3DC2BE1, 0xED6331B0, 0x0538934A, 0x16D895DE} } ,
22549 { {0x82E0F982, 0x8A241E72, 0x3F587805, 0x9BF0EAD7, 0x50C11CF6, 0x880A94D6, 0x67FC8EE7, 0x03E3CE6D},
22550 {0x903FF30A, 0x9B12B402, 0x70A437D8, 0x63A6D4B9, 0x8E866F1D, 0x8414E7C2, 0x8ED66148, 0x17B12D30} } } ,
22551 { { {0xD304ADED, 0x85A68637, 0xF6AB6B9F, 0xDB90BBCD, 0x2D519B06, 0x91420CA4, 0x7F4A21F5, 0x194416B6},
22552 {0xF687EE4D, 0x894E0A76, 0xD6F3E7BE, 0x4CF307FD, 0xDF74022F, 0x5C6F9BF3, 0x0BAAB9AC, 0x1DA2E059} } ,
22553 { {0x715BFFF0, 0x4F3602A9, 0x2B5F1932, 0xDF18050E, 0xE62F0DAE, 0x6D98582C, 0x29ABF132, 0x0115A275},
22554 {0x570C9D7B, 0x8F165DAA, 0xCE4FAFA1, 0x161FD3BA, 0xF279E4A8, 0xDF9990BA, 0x0001DA6E, 0x048ED948} } } } ;
22556 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3473 a000");
22557 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3474 a001");
22558 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3475 a010");
22559 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3476 a011");
22560 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3477 a100");
22561 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3478 a101");
22562 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3479 a110");
22563 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3480 a111");
22564 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3481 a200");
22565 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3482 a201");
22566 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3483 a210");
22567 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3484 a211");
22570 static const fp12_t var_a = { { { {0x0B457A37, 0x1242D148, 0xB6B60D98, 0x531FBF8D, 0xC246B001, 0x077EA5D9, 0x3128C310, 0x14CA794D},
22571 {0x210ED93C, 0x2D17A621, 0x604580B8, 0x58EC76CE, 0xF25563FA, 0x345F1AE4, 0x4440A396, 0x09FAD9C3} } ,
22572 { {0x83918DA5, 0x84C5355E, 0x94734206, 0x5AA6A2C9, 0x02A44130, 0xF9D9FABD, 0x1756187D, 0x005F068E},
22573 {0x52409BC9, 0xD03C9A0A, 0xC931430F, 0x762365AA, 0x3B29CA33, 0xCC031866, 0x167EF666, 0x0B7D4C0F} } } ,
22574 { { {0x7181E6EC, 0x8953E794, 0xEAB8B205, 0x7E05C92E, 0x6308AD5E, 0xD9CBFCD8, 0x29CDB603, 0x16F04B74},
22575 {0x46565202, 0x00F1AC13, 0x56BA6141, 0x29CEF6C8, 0x77278F46, 0x8227F04F, 0xE6D97B54, 0x12F14B0A} } ,
22576 { {0xE2340261, 0xB4ECCEB2, 0xFD546E96, 0x2E1799EF, 0x1F6F486C, 0x8ED0E4D0, 0x0A945049, 0x15007FD4},
22577 {0x6581354B, 0x8BA3A7A1, 0x4A214FF7, 0x96040FFC, 0x72FD7DD1, 0xD141079F, 0x6612F400, 0x02F2C887} } } ,
22578 { { {0x27FE844E, 0x2293AEDF, 0x9F63D3F4, 0x28E837EB, 0x416E6509, 0x7001202B, 0xF95E3CE7, 0x1B35FB86},
22579 {0xA7E16A48, 0xF1AA6034, 0x55A16BFC, 0xB74242D7, 0x10936A73, 0xEA124DDA, 0x2FF982C0, 0x1055CDE4} } ,
22580 { {0xBE358F4E, 0xD89F86BA, 0x48454F87, 0x65D21107, 0x056DD0BD, 0x523CB031, 0x93838A73, 0x0CC63EE8},
22581 {0xD07D6A37, 0xED82B0BC, 0xE5F7AFB3, 0x75680CEB, 0xF4EBBE2C, 0xB8158106, 0xE9592F63, 0x22C8C181} } } } ;
22582 static const bigint_t var_b = {0xD40811E3, 0xEC974F8B, 0xC46E7967, 0xA1FF5DA3, 0x139A709B, 0xE7070E69, 0x5F857305, 0xBAC7727D};
22583 static const fp12_t var_expected = { { { {0x7894BF3E, 0x55E735E0, 0xA5E5A1E2, 0x57B545D0, 0xACF975A7, 0x14B94A1C, 0x7634AA1D, 0x100C45D8},
22584 {0x9AB0BD5E, 0x2A930D73, 0x883B10E0, 0x93A94886, 0xAE0DD050, 0xEA8EA428, 0xCFB650AC, 0x17BFE9B5} } ,
22585 { {0x5A787ACE, 0xCC539C20, 0x8AA9410A, 0x90B1AD7D, 0xDFEF525B, 0xFEFD312B, 0xFAF8ADA3, 0x127592D1},
22586 {0x50BDAF40, 0x55AFDA35, 0x13812629, 0xE517B8F2, 0xA76BBA4A, 0x79F5440C, 0x47952B94, 0x15790F74} } } ,
22587 { { {0x30F40C8E, 0xE6D973CE, 0x185237FD, 0x16935CC6, 0x49576722, 0x4C76B0F9, 0xFA5E6D5F, 0x0F03E5C6},
22588 {0x4CC21E45, 0xB574CF6B, 0xB489591D, 0x709F5235, 0x3FD424EB, 0xD58DD7B5, 0x9B0CCDE0, 0x09C0DB39} } ,
22589 { {0x54FD329F, 0x24F52B0B, 0x4C0B4BDC, 0x27011468, 0xB3011337, 0xB4AC7C0E, 0x3D0F9DAE, 0x104A9A51},
22590 {0x118011F3, 0x9FCC2053, 0x81BBECE2, 0x00F493EB, 0xE0CEE844, 0x0517DA6F, 0x4BFEEA48, 0x1A033092} } } ,
22591 { { {0xC25BB2D5, 0x7E4E56E1, 0x33687FBA, 0xD8B4794C, 0x30B88F42, 0xC8975F6C, 0x0ADB60DA, 0x01DF372E},
22592 {0xFFAB89B7, 0x08037E7A, 0x0917DE89, 0xD0CE9CAC, 0x98B411D5, 0x9ACAA341, 0x108E97F3, 0x1D8CCFA9} } ,
22593 { {0x7B0E733B, 0xCE514C6E, 0x0B48CD34, 0x44427987, 0xCD2C1C12, 0x00E3DE9C, 0xF63100F6, 0x1D94A623},
22594 {0x60EEC5E6, 0xD94DDDBE, 0x8DE14549, 0xE6B36F3F, 0x0E6BC9C2, 0x722F5190, 0xC4629784, 0x00B548A8} } } } ;
22596 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3485 a000");
22597 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3486 a001");
22598 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3487 a010");
22599 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3488 a011");
22600 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3489 a100");
22601 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3490 a101");
22602 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3491 a110");
22603 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3492 a111");
22604 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3493 a200");
22605 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3494 a201");
22606 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3495 a210");
22607 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3496 a211");
22610 static const fp12_t var_a = { { { {0xF8829504, 0x6718F532, 0x98E2F3DC, 0xB366E08E, 0x0471C814, 0x8EBA592E, 0xC28AF910, 0x22794F3E},
22611 {0x6CCADC78, 0x2549A350, 0x65F1AE73, 0x9AFDF208, 0x8B566B8D, 0x48E58C9D, 0xB7B79787, 0x0ADB616C} } ,
22612 { {0x3E40AA1C, 0xF246FDCA, 0xE5E10E5C, 0x5BBEFB87, 0x554D2EFB, 0x399F450B, 0x7A592897, 0x1D0A658C},
22613 {0x8C993FEF, 0x01BF7689, 0xC278942C, 0xE24B26F6, 0xE05FC669, 0x66560C99, 0x37C86D78, 0x199EB93D} } } ,
22614 { { {0x92D64E03, 0x293DCDE7, 0x9F76D577, 0x0DFEE0D6, 0x63828215, 0x218F39DA, 0x118FAD6D, 0x0B64D7C5},
22615 {0xEF12579E, 0x49ACA87F, 0x8A45753C, 0x209FF22A, 0xC8727038, 0x06AFCC42, 0x4898A91F, 0x002CAD94} } ,
22616 { {0x2D07D520, 0x98B5D9B5, 0x8E02CCEF, 0x46EC6502, 0x4529B22E, 0x32ED3AED, 0x35AAC2BF, 0x1816E9EC},
22617 {0xB3659B5D, 0x46D493A3, 0x9EEC7BA0, 0xEFD13512, 0xADF853E6, 0x7236D665, 0x3246143B, 0x0FC17D50} } } ,
22618 { { {0x62B971AF, 0x0A525984, 0x73F19E5B, 0x5A3E4E4F, 0x1C469D5B, 0xE87925D0, 0x6EBA6D7F, 0x23D4A2C7},
22619 {0xA32D2E61, 0x182D2432, 0xBD2D52BD, 0x2158043B, 0xBF290364, 0xE0E3C95B, 0x06B96053, 0x2173D80D} } ,
22620 { {0x57348896, 0x82CBEF65, 0x4E1C5675, 0x7704B305, 0x9C71C1DE, 0x28D84B06, 0x28EDBED1, 0x0ED0D31D},
22621 {0xBC0CC539, 0xA86EEDF7, 0x9D621B12, 0x41207AE3, 0x92EAA380, 0x73D1458D, 0x231CE6D1, 0x0ECEF38E} } } } ;
22622 static const bigint_t var_b = {0xFAAE21D5, 0x8F9F9FF4, 0x3A999083, 0x78EA8DF0, 0x764743E2, 0xBC1088F4, 0xFE98FE4B, 0xB8FCD782};
22623 static const fp12_t var_expected = { { { {0x1F8ED122, 0x3825FFA5, 0x2A83DFC4, 0x4D0514FF, 0x82857062, 0xE0F6B064, 0xF5F96996, 0x0A7C21EA},
22624 {0x22F158B8, 0xE889C541, 0x6E569479, 0xDE75F031, 0x3E8F95EB, 0xB94CACE9, 0x18DC8400, 0x200FBD13} } ,
22625 { {0xDBA20588, 0x46804328, 0xD56C9DAD, 0x4551BF7C, 0x3F28F231, 0xC1E59AC9, 0xEE4A50FD, 0x09D8C340},
22626 {0x92C5FC3A, 0xFDBB5F40, 0x23E5F299, 0xE5519577, 0x609D2454, 0x0648523D, 0x295116DC, 0x10C06EDA} } } ,
22627 { { {0x442E1672, 0x57E3ECB3, 0x00349781, 0x1F5CDF79, 0xA18928EF, 0x44081790, 0xFDD6B9F5, 0x1FDFCC06},
22628 {0xAB581A33, 0x92CAB7BC, 0xBB2F7E61, 0xA41465C2, 0x587018DD, 0xC48EA63F, 0xD7F0AA7E, 0x0F0CA1B8} } ,
22629 { {0x393EFE7B, 0x8ED308CE, 0xD28143E9, 0x6EA11FDB, 0x7BA471CD, 0x96FF382A, 0x968ACE18, 0x1CB3B76E},
22630 {0xC598C477, 0x3C0139E5, 0xF38FDD0C, 0x1D28E8A2, 0x1D59FB23, 0x3799926B, 0x02E5C498, 0x1E69EAEE} } } ,
22631 { { {0xB5A819D0, 0x4258936A, 0x4CECC3B1, 0xB7B20CCD, 0xA3E5B4EF, 0x70A3DCA3, 0x64D87462, 0x16CA1BC8},
22632 {0xB2020531, 0xBE68B2EA, 0x63E08B4F, 0x264D72CF, 0xA36FA2CA, 0x4DEFB5C0, 0xD5F87CD2, 0x1D03DB95} } ,
22633 { {0xCD27A56A, 0x48B5925F, 0xEBD141EB, 0xEF60CC0E, 0x9B2F3014, 0xF4D720BD, 0xAAEE758B, 0x1DE0989B},
22634 {0xDCBDB366, 0x424B49B2, 0xD09C516B, 0x8E515A2D, 0x316E5B26, 0x8C647AA1, 0xFDDBD65C, 0x12C828E3} } } } ;
22636 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3497 a000");
22637 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3498 a001");
22638 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3499 a010");
22639 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3500 a011");
22640 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3501 a100");
22641 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3502 a101");
22642 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3503 a110");
22643 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3504 a111");
22644 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3505 a200");
22645 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3506 a201");
22646 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3507 a210");
22647 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3508 a211");
22650 static const fp12_t var_a = { { { {0x2DF184A0, 0x8F636F50, 0x9C1BAAED, 0x5FF8FC64, 0x5C6F0E61, 0x01129E55, 0x5718C87E, 0x1C3F3DF8},
22651 {0xC4605856, 0x8EE679FA, 0xE0032704, 0x6CDA559A, 0xC1BE3D82, 0xA7876105, 0x1677AC01, 0x03474D9A} } ,
22652 { {0xA54F3F1F, 0xC428E121, 0x89DF9D53, 0xED20F347, 0x96035877, 0xD3930198, 0x1C41FFE3, 0x0FFF89FF},
22653 {0xF114D054, 0x8908D561, 0x1B9173E5, 0x0DEACE9D, 0x8FD460C4, 0x88C8F5A3, 0x4EC651AB, 0x00A91697} } } ,
22654 { { {0xC8AB8E40, 0x1E9BC38B, 0x8B49AEE2, 0xE7DAF0CE, 0x89333328, 0x252E43FD, 0xC57B00DB, 0x18B6AF77},
22655 {0x3F38750C, 0xEC281A57, 0x54DA0AA0, 0x2A8D28E6, 0x70AA184D, 0xA7DDDFB8, 0xEA0034C2, 0x0A0EF447} } ,
22656 { {0x2BD96ADB, 0x068E6E5E, 0xB276FA48, 0x8E76CDF6, 0xDF675EB0, 0xF944560C, 0x1FD65E1E, 0x192280C2},
22657 {0x04944D48, 0x44CD5C8B, 0xBF07E02D, 0x54B4219C, 0x33871CB4, 0x34CEFF35, 0xB572C791, 0x071DDC2F} } } ,
22658 { { {0xB751B9AD, 0xE471EE16, 0xC5E011C7, 0x85686A23, 0x0FDDEEC1, 0x52C64F62, 0xA12FEEC4, 0x1FE09B78},
22659 {0x2FD429F4, 0x4C1EFDF2, 0x4139E80B, 0x47BC7F21, 0xE43CE381, 0x008885DA, 0x4D3411CA, 0x196A9C7F} } ,
22660 { {0x6AE7DAD5, 0xA263F12C, 0x4CC14905, 0x8C3F1184, 0x6DE1DD63, 0xEA0AD81C, 0xD8269575, 0x07156108},
22661 {0xBCBF77CE, 0x61D98D55, 0xE7547070, 0x3D73CB05, 0x379A94CF, 0x2C8EAF8B, 0xCE0FB092, 0x1A00DF6B} } } } ;
22662 static const bigint_t var_b = {0x474828E8, 0xD8F106D4, 0xDC4095A9, 0x519AD532, 0x14F87ABB, 0x58386386, 0xFCAF8F4B, 0x2E4F842E};
22663 static const fp12_t var_expected = { { { {0x5114CF37, 0x2B480E9D, 0x50258D1A, 0x17022552, 0x765DB7C7, 0x4B238514, 0x1656AAF9, 0x0554DFF1},
22664 {0xC8E17FA8, 0xBE1CE58E, 0xE6526699, 0x3C4D6596, 0x3349B9D4, 0xE750BF0F, 0xA5154818, 0x1AE1369E} } ,
22665 { {0xAB6C0482, 0x4B66271F, 0x95E2CEFF, 0x11FBC491, 0xE0E673E4, 0xF6BD0B4B, 0xEDB3C000, 0x200F18C3},
22666 {0x863E4026, 0x43D8A758, 0x4EB9195F, 0x50288928, 0x084D5178, 0x2F232AFF, 0x79722F8B, 0x14CEBE4E} } } ,
22667 { { {0x99A86E54, 0x31E3DBDA, 0x17739FF2, 0x39C5560F, 0x825BADA0, 0x9E3B9BC5, 0xF5758691, 0x113EB0C6},
22668 {0x6BBD3AA8, 0xD5392B7B, 0x8FC65B63, 0x44F38279, 0xF035CE7D, 0xEAFBCB3F, 0xE4E8E937, 0x02C0B70F} } ,
22669 { {0x1B4037A1, 0xCF44DDAF, 0x5944013B, 0x4D0C40E3, 0xE44A0ADD, 0x181903AD, 0x88981026, 0x06972D11},
22670 {0x7455840D, 0x43AEE2DD, 0x6E3F9354, 0x9EA8BE98, 0x83336E34, 0x942BEED9, 0x88C09ABE, 0x191E99B9} } } ,
22671 { { {0x496408C4, 0x9AE2665D, 0x4B40491F, 0x712BF959, 0x84D61732, 0x3755194E, 0x4832C9CC, 0x2257D876},
22672 {0x3CB90E82, 0xD03F16C7, 0x1F5DD00A, 0x5374C6F4, 0xF60AE32B, 0x1933D760, 0x1B707752, 0x1037C301} } ,
22673 { {0x05C9ECE4, 0x9B2A5F0F, 0xB201C438, 0xEAD24801, 0x08ABCC67, 0x44FBEEB0, 0xEE09C721, 0x13C95362},
22674 {0x6D30F503, 0x5EBC8F31, 0xECB52FF8, 0x979F4296, 0xAB7053AA, 0x5A9595F7, 0xC42B96FF, 0x160BB2DB} } } } ;
22676 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3509 a000");
22677 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3510 a001");
22678 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3511 a010");
22679 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3512 a011");
22680 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3513 a100");
22681 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3514 a101");
22682 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3515 a110");
22683 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3516 a111");
22684 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3517 a200");
22685 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3518 a201");
22686 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3519 a210");
22687 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3520 a211");
22690 static const fp12_t var_a = { { { {0x27BAC974, 0xBA39FCEA, 0xD0D109A7, 0x5E7D50E4, 0xD944EA60, 0x03DE8146, 0xF2F06D9D, 0x16C94454},
22691 {0xA699F078, 0xBE8A2C1C, 0x8B8267E1, 0x3156D922, 0x73662A9D, 0x522A62FD, 0xF4A79A40, 0x0CD32E2E} } ,
22692 { {0x24317A8A, 0xA875970B, 0xC5A6D707, 0xCFEB8598, 0x60518B18, 0xE58B5334, 0xBB532301, 0x070F6F25},
22693 {0xBF7546F6, 0x28E50717, 0x2E744203, 0xBBDD906F, 0xA2D0D2D3, 0x6A9F92B0, 0x193DA527, 0x12C5FEEF} } } ,
22694 { { {0x8F7BAC12, 0xA80B9B66, 0x8CFA7A15, 0x283B6FF3, 0xBF4F1328, 0x4BA640C7, 0x2EA5AC06, 0x18E9134C},
22695 {0x6D74BF8F, 0x43597DB6, 0xF3A6C591, 0xB1A0BA0A, 0x222C938D, 0xE371F17D, 0xE40FB386, 0x067F1F1B} } ,
22696 { {0x4B8B4C68, 0xE620FA77, 0xE75357B4, 0x90120D1A, 0xA2291F80, 0x9704BFD0, 0xF9C3A08C, 0x029DFB09},
22697 {0xD49C6064, 0xFC7D6031, 0xC7808412, 0x624C9728, 0x44A37C72, 0xA1177BB2, 0xB802A6E3, 0x0CD1C93A} } } ,
22698 { { {0x6928BAD2, 0x873C70E5, 0xD37F45C8, 0x18F6F3C0, 0xB820293C, 0xAEF007A6, 0x7F025918, 0x11804A2D},
22699 {0xA6F6C962, 0x07AC0037, 0xBFF81B7C, 0x5BDEFACF, 0x1D72E9B3, 0x0C237F4E, 0x5E39632A, 0x0878747B} } ,
22700 { {0x98FC8831, 0xBE32065B, 0x5CDB66CC, 0x2A163560, 0x8C9807DC, 0xB1CC8D15, 0x941C5ADC, 0x057747B7},
22701 {0x7051D112, 0x8A2104FA, 0x01D8F1BE, 0x508D2C5B, 0x5116146B, 0x2AD2777E, 0x830B5F17, 0x1E420903} } } } ;
22702 static const bigint_t var_b = {0x3BC7B1E7, 0xB11D1AC5, 0xE63842B4, 0xE228DA17, 0xAB047325, 0x1EFE6234, 0x233ED12E, 0xD4BA2B4B};
22703 static const fp12_t var_expected = { { { {0xBB967AE1, 0x4BE6739B, 0xF0262E08, 0xC61553BA, 0x35F13DD4, 0x8A399A79, 0x1F576F42, 0x01F6C87D},
22704 {0x00AA6157, 0x9B008EB5, 0xBDF44B16, 0x1FCC5877, 0x35325B16, 0x01777392, 0x9B2AEDF0, 0x08CEF8BB} } ,
22705 { {0x5BF1DFCE, 0x82E5668C, 0x21698E90, 0x5148AF66, 0xBA0C07D3, 0x16A84485, 0x1A89977E, 0x1E5980C5},
22706 {0x6193F7F0, 0xB22288EE, 0x39B67F62, 0xE0F553C3, 0xAD4CA60B, 0x8E3E80E8, 0x5DA73300, 0x20980BBE} } } ,
22707 { { {0x85CE2EEC, 0x8D5B59EB, 0x1CDC4946, 0x77B412BD, 0xC139B833, 0xF3F0601D, 0x4FE41C80, 0x1B6F01E3},
22708 {0x099D82C6, 0x4F35DB6E, 0xCF84DCCF, 0x2DC0A97A, 0xB2CAE6F9, 0x27CCE1D3, 0x4F326F93, 0x1E60771A} } ,
22709 { {0x560A0908, 0xD65FA5CB, 0xE62284B1, 0x91D4A8BB, 0xC1F2422B, 0x0B26596D, 0x36CCF123, 0x150E4022},
22710 {0x5B0ED941, 0x1C30A945, 0x5AE2CDD9, 0xD619222B, 0x5D6E38D2, 0x8A1787CF, 0x7F853E25, 0x0274EB9B} } } ,
22711 { { {0x5E416315, 0x1E34432C, 0x7B9B9615, 0x07F33C31, 0x4E8789CC, 0xC1EC7171, 0x4054F049, 0x1340DE13},
22712 {0x8687BC45, 0x90279AF7, 0x81253574, 0x4B9DBD82, 0x8785E020, 0x45092864, 0xD122C340, 0x1C7E9D2F} } ,
22713 { {0x2EA4D1A4, 0x0FBCE15C, 0x68A044FD, 0xC776FD34, 0x80B9603D, 0x22A43CD1, 0xFB2820C8, 0x091F975E},
22714 {0xFC90642C, 0x57A76A53, 0xB8642B20, 0x05587E4F, 0x6FA21513, 0xE63210B7, 0xA7BEABAB, 0x245E8014} } } } ;
22716 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3521 a000");
22717 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3522 a001");
22718 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3523 a010");
22719 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3524 a011");
22720 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3525 a100");
22721 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3526 a101");
22722 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3527 a110");
22723 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3528 a111");
22724 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3529 a200");
22725 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3530 a201");
22726 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3531 a210");
22727 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3532 a211");
22730 static const fp12_t var_a = { { { {0x7819FE38, 0xB23AC06C, 0x02EBE453, 0xAD6F900B, 0xA8F735D5, 0x0DBCE91A, 0xD114B061, 0x14124FF5},
22731 {0xB156126B, 0x3233B55A, 0xBBD61170, 0x7001FCA9, 0xF21634D9, 0xF9860605, 0x0AACEBEB, 0x0A5E6AB7} } ,
22732 { {0x7E67E167, 0xF7A2BBED, 0xEC98298E, 0x1534FBA8, 0x15D5828F, 0x46EEF902, 0x13F4815C, 0x0CA13E05},
22733 {0xF68A0489, 0xAA7F2743, 0x1D523B40, 0xD9D44543, 0xDD0D1A51, 0xACFF8806, 0xFF582CB5, 0x23728FDB} } } ,
22734 { { {0xEBE5DF12, 0x07F61419, 0xE016920D, 0x8F02D9F7, 0xC5C63190, 0xB13891D2, 0xC5527D06, 0x1CA8AFCD},
22735 {0x69A09A4E, 0xF2E20728, 0xC9D7307D, 0x653114C0, 0xBA89F2AF, 0xC7FA21E4, 0x2EC57F3E, 0x090CD79C} } ,
22736 { {0x2D784AF4, 0xA8ADC8A2, 0x152FF5F3, 0x4ACB09CA, 0xE246BFD5, 0xBB003E01, 0x50F167B5, 0x1882A7D1},
22737 {0x6930DFF0, 0x5C2348B2, 0xBD5FE43E, 0xFBDE6E6C, 0xD5BDAB24, 0x030D62A3, 0xCA38BD1F, 0x0170686F} } } ,
22738 { { {0xCDD92052, 0x13703685, 0x9BD30603, 0x00FCE4F3, 0xD17520BB, 0xFE3FFCB1, 0xF026FBF3, 0x02209856},
22739 {0x3E55211D, 0xD47D14BC, 0x68D60E7F, 0x120D44B6, 0xF28FA92F, 0xD4395C4A, 0x38F342D3, 0x17A52B15} } ,
22740 { {0x37FB900B, 0xA82F6FC4, 0x8DDAF597, 0x285A94B5, 0xCDA9E890, 0x0179147B, 0xAD429454, 0x1354EC9B},
22741 {0x84CA498D, 0x23300032, 0x4D3A7A80, 0x6467AC20, 0x78EA3117, 0x296D15F6, 0x8B6366EF, 0x20046207} } } } ;
22742 static const bigint_t var_b = {0xEB278E76, 0x6D75F27E, 0x06D77FB0, 0xA0C3DF27, 0x4D1E2D86, 0x94F61538, 0x71BAAAE1, 0xE95A0D6E};
22743 static const fp12_t var_expected = { { { {0x059F5020, 0x7F34C563, 0xA60174A4, 0x39DD015E, 0x6DD9FD32, 0xA5D3CD86, 0x3B93D131, 0x0091F66D},
22744 {0x717BBE7E, 0x56E7B8BB, 0xB79DD94D, 0x89FB7568, 0x793852E0, 0x9AB95E36, 0xD6548FBE, 0x18E7D971} } ,
22745 { {0xD33DB45F, 0x10493936, 0xA02ED429, 0xEF91E44D, 0xE9D573FF, 0xD74A2079, 0xBCF6447C, 0x20119748},
22746 {0x5D588B90, 0x88584945, 0x1039EDF4, 0xAE9D8746, 0x3CC5A84F, 0x9C641AA3, 0x8C6AFF3D, 0x167A83CF} } } ,
22747 { { {0x7EBF2515, 0x30F44056, 0x0C934FC9, 0xFE24423C, 0x8DE4C8F8, 0x10B9CF9C, 0xF1186404, 0x20E99EA6},
22748 {0xA7046134, 0xB0232F3F, 0x2F2ACA71, 0xBC7F1D9C, 0xE2A30F92, 0xC1837C56, 0x9A3AE0F4, 0x0B2EEC85} } ,
22749 { {0x25176F87, 0x25213F69, 0xEC090A23, 0xDEA8A6D4, 0xF4DCFC78, 0x607A6AB4, 0x9D7457BF, 0x011249D9},
22750 {0xF5BD08B8, 0x2533908B, 0x663C1131, 0x4404E399, 0xB5545560, 0x13ADE34F, 0x28802DC1, 0x25232D12} } } ,
22751 { { {0x37627BD4, 0x0047AAEF, 0x5448A3AB, 0x069281CA, 0x44B756FC, 0x7D760263, 0x4E7E0509, 0x167DFB3D},
22752 {0x2CE26F34, 0x40EFDD56, 0x18052C9A, 0xF7475B47, 0x072AC800, 0xE129C45A, 0xD430E319, 0x06B63CA8} } ,
22753 { {0x1096CF0F, 0x01D4AAB9, 0x8CF4D7AD, 0x6E1DD419, 0x2AF2CF74, 0x32BF18BA, 0x13BC6FBB, 0x0346EB3A},
22754 {0x4B992CB8, 0x6DE2C71C, 0x2B6C6F32, 0x757CD85D, 0x1BF2573A, 0xE881A41B, 0x030D9756, 0x17A100EB} } } } ;
22756 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3533 a000");
22757 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3534 a001");
22758 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3535 a010");
22759 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3536 a011");
22760 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3537 a100");
22761 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3538 a101");
22762 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3539 a110");
22763 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3540 a111");
22764 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3541 a200");
22765 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3542 a201");
22766 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3543 a210");
22767 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3544 a211");
22770 static const fp12_t var_a = { { { {0xEEEB4B6E, 0x8ED0CDF1, 0x37A5B0AE, 0x3C062951, 0xF6219EF6, 0x44DC694A, 0xD87DCA21, 0x04A9C30A},
22771 {0x550225BA, 0xE40B5120, 0x76051840, 0xF0EB0187, 0x1B07A74D, 0x063511BC, 0x5854391B, 0x16ADE0B6} } ,
22772 { {0xB4F81EC0, 0x045B0FE6, 0x1AB58682, 0xCFA33B0B, 0xF7BC7843, 0xF49CCF6F, 0xCE6CCDDD, 0x1FEB1F3D},
22773 {0x0A8EDBA8, 0x63B4E2FC, 0xD0F8DDB0, 0x5CB3C452, 0x97026A95, 0xC4D0D1AA, 0x9E388938, 0x21B1F12B} } } ,
22774 { { {0x2F78BC40, 0x8791B9D9, 0x0ECE45FD, 0x0A2394F9, 0x0D16EAFF, 0x3108892F, 0x96367D3B, 0x1D9CFE97},
22775 {0x32C74DE7, 0xC536E314, 0x41A82D4E, 0xAD31F2F3, 0xC6C2585D, 0xC04B811C, 0xFE6EC0B7, 0x0BEAD004} } ,
22776 { {0x3FA997BB, 0x21521225, 0x8D23162C, 0x914F5AB9, 0x685F8AF6, 0x638410E2, 0x81B49B41, 0x1C224561},
22777 {0x3D32B4AB, 0x2D740081, 0x81D3429F, 0x6C4373B8, 0x80B20CEC, 0x778C03C2, 0x3DFFA4DA, 0x0B0FADF5} } } ,
22778 { { {0x9723A020, 0xD4137CAC, 0x15D63D64, 0x32E12065, 0xF1EB6C34, 0xD781917C, 0xB3C71AE6, 0x0C0B39CE},
22779 {0x6BA1EC57, 0xFC1381DE, 0x70CE3EEB, 0x084CE6F5, 0x7A77A09E, 0x333F75A9, 0x72157A42, 0x1565FAB7} } ,
22780 { {0x24BD52B0, 0xFFEB2562, 0xC77A92C3, 0x2DC6BBDD, 0x045AA11E, 0xABF34C8D, 0x1E510D61, 0x0C698BE2},
22781 {0xE51EC43D, 0x02347274, 0xFC5BA5E9, 0xA5E36043, 0xA65D68DF, 0x54A59503, 0xAED8EA82, 0x0D59C91F} } } } ;
22782 static const bigint_t var_b = {0x7F5C3401, 0x40DDA7E9, 0xE0EB45A0, 0x4836E2FB, 0xDF72C728, 0xE5B1A7A4, 0x970FACA8, 0xAE4C3063};
22783 static const fp12_t var_expected = { { { {0xCE649966, 0x1D6E69B6, 0x80F1E2F1, 0xA4A4F49B, 0x98835D9E, 0x3241D5B8, 0xF7CE89B5, 0x17DCFAD2},
22784 {0x2E47D618, 0xFE0A3D69, 0xD272D35C, 0x503E1C64, 0xB29855C3, 0xE40534BD, 0x10D8E185, 0x0700058F} } ,
22785 { {0xD9876CAC, 0x8FCF1B54, 0xB666F063, 0xBB9CD044, 0xB67FE426, 0x018BE094, 0x3B1FC291, 0x0CBB84AA},
22786 {0x2CE1B00E, 0xB80A0F11, 0x9F22CAAD, 0xB91FF265, 0x9000E9CE, 0xE6E474AB, 0x7DAA055C, 0x03F79023} } } ,
22787 { { {0x33FEC4CA, 0x2B1B30CC, 0xB9B683F9, 0x60773F5C, 0x03210914, 0x8FFA8FB1, 0xD2DC7FC8, 0x225B7A7D},
22788 {0xB920772F, 0xDF020293, 0x903B2263, 0xA4C9314C, 0x0DB4E607, 0xFF8632AB, 0x0D66DCDF, 0x0808DE5F} } ,
22789 { {0xF1A564DE, 0x72107D4A, 0xC55EA465, 0x428F77B7, 0xF7508EE1, 0x58DD49B7, 0x98756370, 0x1B8C0C67},
22790 {0xDCBFE67F, 0xE634D48C, 0x116DCFF9, 0x32582788, 0xDC9190B7, 0x59428396, 0x57DEA74F, 0x055D235C} } } ,
22791 { { {0xE3A13AAE, 0x84BB1398, 0xE81A41C4, 0xFA77CE4B, 0x08F10EEE, 0x59320BE0, 0x3853311A, 0x140C06EF},
22792 {0x7371CE53, 0x855ABDC8, 0x2B96A931, 0x0793C69E, 0xF9C91445, 0xD20B01FA, 0x594B1516, 0x1EE9F393} } ,
22793 { {0xFBFCDF3D, 0x6EBB1DB8, 0x57184041, 0x03EFC0AC, 0xE112FD9F, 0x82421DE4, 0xAD4674BA, 0x05B4BCD4},
22794 {0x4A99D562, 0x1DBABD8D, 0xA643E786, 0xF24DCF8D, 0x70FBA6B1, 0x1517E30C, 0x2E0D4ECA, 0x14B23407} } } } ;
22796 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3545 a000");
22797 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3546 a001");
22798 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3547 a010");
22799 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3548 a011");
22800 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3549 a100");
22801 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3550 a101");
22802 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3551 a110");
22803 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3552 a111");
22804 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3553 a200");
22805 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3554 a201");
22806 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3555 a210");
22807 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3556 a211");
22810 static const fp12_t var_a = { { { {0xA793BEE1, 0x89C86779, 0xBE1E72A2, 0x10AB7399, 0xEF7E7C39, 0x22B5D56A, 0xF38A5051, 0x170C9523},
22811 {0x0ECC366B, 0xF3663488, 0x3917454B, 0x7331D75E, 0xD17F817A, 0x2103C3FB, 0xCA481A48, 0x04B5C125} } ,
22812 { {0x161042E6, 0x237F9AA1, 0x01F84B2B, 0x70F3E300, 0xF38E2E6E, 0x46BFAFB1, 0x81EEB276, 0x1054A109},
22813 {0xD9C53E18, 0x581B1E4D, 0xA4ED7919, 0x18260D05, 0x08520605, 0x596F70D8, 0xA7819D05, 0x186A553A} } } ,
22814 { { {0xE2E17660, 0x38FE76D5, 0x41D2C35E, 0xA34E324A, 0x1DB601A3, 0x00757DBD, 0x177761A9, 0x21880D80},
22815 {0xE89729D8, 0x7A04D661, 0x5DDDFADD, 0xAE0F59B8, 0x1F3E8E84, 0xECC709EC, 0x74FDC9DD, 0x05DC8AA4} } ,
22816 { {0x4E9A7E67, 0xE1DBE6DA, 0x94401871, 0x5D9F55D8, 0xC897425F, 0x5468C839, 0x03CCA725, 0x050C27CC},
22817 {0xB242F2AC, 0x7FF77AA6, 0x8CEA6764, 0x2A5D4080, 0x8BD0A6BA, 0x532705D8, 0x01E51B2F, 0x0B713815} } } ,
22818 { { {0xF5A1EBF9, 0xB32EEEE1, 0x0494A10A, 0xBCFF5AA3, 0xFBC6A662, 0x3E944895, 0x52A5C92C, 0x056B0BEA},
22819 {0x7CA9F958, 0x7AF0AE12, 0xB06455CE, 0x0A36AE74, 0x0EE08B64, 0xE49B4446, 0xB1CFAE39, 0x2011D853} } ,
22820 { {0x1BC7D7C3, 0x1F0439E7, 0x40A96C18, 0x0A6D0C2E, 0xFAF58610, 0xE4939FD9, 0x734C54E6, 0x23FE227D},
22821 {0xA1E8716D, 0xFBF070CD, 0xF1826885, 0xD0E47F78, 0xA641F029, 0xA3EC37BA, 0xB6C81CD6, 0x0B27A0DC} } } } ;
22822 static const bigint_t var_b = {0xB3099028, 0xC3A9F97F, 0x8B0B3F7A, 0x5A05E234, 0x9DA15F0B, 0x5FB210DB, 0x795CC57E, 0xE921ACEF};
22823 static const fp12_t var_expected = { { { {0x07415362, 0x40A3B1BA, 0xE7FC1EAE, 0xAE054107, 0xFBCD5383, 0x881519FE, 0x28F2C935, 0x1D6D867C},
22824 {0x10D3E0FD, 0xD3777436, 0x1DBFDB99, 0x997C918C, 0xE2FC276C, 0xF21A74DE, 0x972ECA51, 0x201C257A} } ,
22825 { {0xE7EC71D9, 0x4E607EF0, 0x3DF62D5B, 0x5091B132, 0xD5B24059, 0x9697CBCB, 0xB4F80446, 0x13F2059F},
22826 {0x219B579C, 0xEE48B624, 0xAAC70E68, 0x4DEAA8B4, 0x87C6A05F, 0x84769738, 0x66790B14, 0x1DD87F6E} } } ,
22827 { { {0xBB51E43B, 0xDF395406, 0x1161658E, 0xA7948C8D, 0x873C2B5A, 0x2E7DD5C9, 0x2E56B7B1, 0x0C7A4A53},
22828 {0x3EFB80C6, 0x552C0F26, 0xF29EFD50, 0x535FB79D, 0x687BFDE0, 0xEE3668EF, 0xBC7FC7C5, 0x1A4A531C} } ,
22829 { {0xBFB2B2A2, 0x0A70F3C4, 0xCD7A9DBF, 0x0296E7B6, 0x0BFC46B1, 0xBCDB5831, 0x51310C67, 0x0848621D},
22830 {0xC696420F, 0xD8D2A8B9, 0xE673EC26, 0x739AAA70, 0x67A68849, 0x03582767, 0xAC8B54C3, 0x02A95337} } } ,
22831 { { {0xB2FE8F28, 0x80984E31, 0x68A4991C, 0xACF5DD0B, 0xE2CB0379, 0x130B8BBC, 0xC7DDB095, 0x0E0C31F8},
22832 {0x24D9D08C, 0xC5161EDD, 0xCD7D686B, 0xDC95AF79, 0x076AA70C, 0x42B3078E, 0x0A75A286, 0x0F25B1C1} } ,
22833 { {0x56AB9DB7, 0x29C19180, 0xAC9FE5AE, 0x8D771894, 0xF4C23621, 0x1AF52639, 0x20D9DF64, 0x1897EA54},
22834 {0xF03D5784, 0xE8C853E9, 0xDED622A0, 0x3E4CCB4A, 0xD4B00A7A, 0xB488D7B9, 0xAA1BBDC7, 0x146A35BD} } } } ;
22836 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3557 a000");
22837 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3558 a001");
22838 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3559 a010");
22839 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3560 a011");
22840 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3561 a100");
22841 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3562 a101");
22842 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3563 a110");
22843 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3564 a111");
22844 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3565 a200");
22845 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3566 a201");
22846 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3567 a210");
22847 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3568 a211");
22850 static const fp12_t var_a = { { { {0x16F808F1, 0x1857A4DD, 0x81378EE9, 0xD38E1162, 0xAAE0FB70, 0x5ABE5BE3, 0xFB441EE2, 0x06D0ED2D},
22851 {0x740F7E9A, 0x031E0D9C, 0x4C2ED170, 0xF7CA663B, 0xFEC46AC7, 0x29CDCDFC, 0xA9F9D61A, 0x11209B1D} } ,
22852 { {0xE269CBD1, 0xDCDC7AE6, 0x0795916A, 0x86DACDDB, 0xB6024CF1, 0x8F6B5FCF, 0x245D9708, 0x153994A6},
22853 {0x649CF557, 0xED7AFCB2, 0x2469272A, 0xDE18D5FD, 0xAC9F676D, 0x3A25F17F, 0xAD6843B2, 0x12138DC6} } } ,
22854 { { {0x3152D57E, 0x58CA5B29, 0x3ADD9330, 0xB756CB41, 0xD4472648, 0xEE9D6BD7, 0x45C5F6C3, 0x1F4110BE},
22855 {0xCA13C3BB, 0x1B6C9A54, 0x94D33BE6, 0x40FA966C, 0xEE233AC7, 0x6BFDE4DB, 0xE8C09943, 0x2147DDCE} } ,
22856 { {0x2518842A, 0xE5EEFFF1, 0x1442C4D5, 0x3AE83CB8, 0xD43EA8BA, 0x9246B2AA, 0x9D0B0A43, 0x0FDE7FD8},
22857 {0x41B3B577, 0xCD0E3B18, 0x3C807944, 0x9E5014A6, 0x23A1369E, 0x6334E5F5, 0x6FA66EB9, 0x0F08E4AC} } } ,
22858 { { {0x7A8727BE, 0xA00CAD36, 0x62F0C44B, 0x24C9580B, 0x6375570C, 0xE1CAADEB, 0x4EBEA69D, 0x01F15780},
22859 {0xD14972DA, 0xEA97A743, 0x177EEEE5, 0x1B1C1B1E, 0x12702E2C, 0x045A307A, 0x23D075B1, 0x1D2BBA50} } ,
22860 { {0x52A6624F, 0x2500E0F3, 0x83B9EFF6, 0x371CDF2F, 0x8A64B673, 0xB6487072, 0x73ECA580, 0x250332DB},
22861 {0xE04233A1, 0x3D0EA7F7, 0x2C8DEFD2, 0xDCCD4088, 0x4EBC4FDE, 0x495805B0, 0x018334D1, 0x199E415B} } } } ;
22862 static const bigint_t var_b = {0x57131B29, 0x718E50CB, 0x1226BFDA, 0x99180008, 0x947F24E7, 0xF5722E5C, 0xB004BD68, 0x63E3F617};
22863 static const fp12_t var_expected = { { { {0x8834148F, 0x21303448, 0x4CF8F719, 0x93F929DD, 0xD8201E36, 0x18986606, 0x09E8D1FB, 0x223CC2E4},
22864 {0x9CF8983A, 0x0006FA59, 0x85F03639, 0x6DC2287C, 0x3C98A256, 0x6E4FCF6D, 0x8528B1A2, 0x20286ACB} } ,
22865 { {0x5EA3C3F5, 0x4556F995, 0x6959CE63, 0xC43F51A0, 0x961ABA68, 0x44C1F2EC, 0xCFCCDAED, 0x13A55CFE},
22866 {0x9D906C71, 0x53DDBEC6, 0xEC9D9662, 0xD5BD0763, 0xBD7C652B, 0xB6BCFBE2, 0x42A93A66, 0x089F5EC6} } } ,
22867 { { {0xD94F711F, 0x2EE94D5C, 0x20C653B7, 0xAD95AF32, 0x76779859, 0xDB78F5E9, 0x2C050F66, 0x061AD596},
22868 {0x33724D5C, 0x8AA2160F, 0x2D52D504, 0x8A99C11B, 0xF7A83026, 0x9B07F6D8, 0x73527ABE, 0x212DC3D7} } ,
22869 { {0xDE020B3F, 0x759B6244, 0x08477F17, 0xC415D163, 0xC05C1B5D, 0xE403E791, 0xF09661C4, 0x13ABE569},
22870 {0xC2B58593, 0xF724DADC, 0x76811C0F, 0xDE532D9D, 0x42B189EF, 0x9B623896, 0xB0A62DE9, 0x03BF3928} } } ,
22871 { { {0x76C19147, 0xA5935200, 0xF5CA207A, 0x28C116F1, 0x4B3202B6, 0x2860E96E, 0x7A0BE85D, 0x17A3BC7D},
22872 {0x000FC1E0, 0x0D3599BE, 0xEDCFD4CA, 0xDCDF0B71, 0xA8FF211C, 0x437CAD84, 0xEE11ED28, 0x17863519} } ,
22873 { {0x0C010EF3, 0x78E6AAC2, 0x87FE4EA4, 0x0B9D2523, 0xBEAA0BB5, 0x424999A7, 0xAA80AE76, 0x007C178A},
22874 {0x00A1B163, 0x72040879, 0xE073BC00, 0x41431AC6, 0x56732D03, 0x5E0FD95B, 0x2739FCA7, 0x00E13C24} } } } ;
22876 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3569 a000");
22877 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3570 a001");
22878 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3571 a010");
22879 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3572 a011");
22880 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3573 a100");
22881 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3574 a101");
22882 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3575 a110");
22883 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3576 a111");
22884 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3577 a200");
22885 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3578 a201");
22886 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3579 a210");
22887 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3580 a211");
22890 static const fp12_t var_a = { { { {0x4978D475, 0x11E33C3B, 0xC97CEEE1, 0xEEDAA16C, 0xE4D8F75C, 0x33537A1F, 0x3A324CD4, 0x15CAAB61},
22891 {0x15234561, 0xFE91D7A5, 0x40ED22D1, 0x4BEBC2B9, 0x21F2F7A2, 0x66A7355D, 0xCABEBC24, 0x13A19EBA} } ,
22892 { {0xBBD57A2A, 0xB53437E3, 0x98BDF92E, 0x6CA41CE1, 0x87EF56F9, 0xF2FDEDB7, 0x63F334D2, 0x0161D86A},
22893 {0xFF4F7885, 0x92D59301, 0x86185D44, 0xF556C4C6, 0xEC99B7C8, 0x85871AE1, 0xF4224D1F, 0x00097DC8} } } ,
22894 { { {0xC3BA8918, 0x780CF458, 0xEF86E701, 0x62822EC4, 0xC2127316, 0x5C89589E, 0xFE1253C2, 0x112C0026},
22895 {0xCB6977D0, 0xF8100C36, 0x65EB3CDD, 0x6FE6D96D, 0xD572CCEC, 0x10FBCC88, 0x82FE24D8, 0x2185234F} } ,
22896 { {0x620276EF, 0x847C8467, 0x475A19F6, 0x78521C2D, 0x67D401A2, 0xC8C54010, 0x02602CB3, 0x0E4DC450},
22897 {0x91411FD3, 0x74E5B22C, 0xAD982B27, 0x7E62B91E, 0x857859F4, 0x5BCDE13A, 0xD1B1C532, 0x22E8B91F} } } ,
22898 { { {0x7D1A783C, 0x5735B1CB, 0x8F95F353, 0x83894463, 0x2050BB32, 0x2F4FE361, 0x1D67D02E, 0x0860D6E9},
22899 {0x73C6A5C0, 0x0E2F213D, 0xA58E2669, 0xB6D09D91, 0xB3F1AA60, 0xE606FC95, 0x3D50AF6F, 0x08E399F6} } ,
22900 { {0x20CFF526, 0x51CCC4B0, 0x2DB8DC4D, 0x74E5D036, 0x9914522F, 0x2D8AFA64, 0x083D9DD6, 0x1A157D50},
22901 {0x281742B8, 0x555BDDB6, 0x6A476719, 0xC23D0092, 0x414E3A04, 0x3ACCE2E3, 0x3381871D, 0x1754B567} } } } ;
22902 static const bigint_t var_b = {0xCFF86447, 0x2C9C831A, 0xF46FDF0D, 0x8CF5412B, 0x26AC980D, 0xBE7D8D46, 0x0B11166D, 0x6AA3720C};
22903 static const fp12_t var_expected = { { { {0x9031AECA, 0xF39E0F65, 0x029E4CFB, 0xBEE63511, 0x70FF1900, 0xC145557A, 0x8CDD606D, 0x08A3925D},
22904 {0x21D25ABF, 0x24FE3196, 0x460DEC10, 0x928B3C36, 0x2FDB898A, 0xC3548DDE, 0x21F65E55, 0x0D05FA59} } ,
22905 { {0x66D85ED9, 0xDFE904B7, 0x92A42178, 0xB1B9971A, 0xE3558D87, 0x4FEA1F2A, 0xF9446C24, 0x0FF9FD73},
22906 {0x93FFB8E7, 0xAC11F980, 0x8C593DD2, 0x92CC0A6B, 0x03476CB1, 0xC53DDA7E, 0xAF427B8F, 0x2284AD0D} } } ,
22907 { { {0x1BD58C6C, 0x00AFD428, 0xA15D1354, 0x8E4D47EC, 0x2F3E7243, 0x972D48E7, 0x206605A3, 0x1C7E8659},
22908 {0x2296E0FD, 0x42DDC7ED, 0xF7117A0D, 0x363CB449, 0xEEC5DE51, 0xFBFE37DA, 0xCEB1BB34, 0x078CAFE2} } ,
22909 { {0x2E55293B, 0x62B43784, 0x5AE8212E, 0xBA9A2177, 0x3724597A, 0x96FD14FF, 0xA07E0E1A, 0x122060D6},
22910 {0xF494006B, 0xD1109E48, 0x9D069BC0, 0x6851A025, 0xD7730D25, 0xAC285255, 0xF8139DA2, 0x0C9F983C} } } ,
22911 { { {0x254E80E2, 0x3E9CFC77, 0xDA2C8E8B, 0x06F91A3E, 0xC05FEC29, 0xD50B6AD6, 0xAE8EF53F, 0x14AF014F},
22912 {0xFEACB07C, 0x41B198B8, 0xD394AA8A, 0x995E288A, 0xEA0F9620, 0xB303A939, 0xD0EAAE2B, 0x0CC6D84D} } ,
22913 { {0xD7054A6E, 0x4D6BE998, 0xD88556C0, 0xD09FF99D, 0x97982A8D, 0x36635B74, 0xAC2D49B7, 0x21138DB9},
22914 {0xF9C67DDA, 0xE6D857F3, 0xB1C8CA2D, 0xE88BFB1D, 0x594E4049, 0x2995D1ED, 0x6C35A681, 0x1EFCD4A9} } } } ;
22916 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3581 a000");
22917 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3582 a001");
22918 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3583 a010");
22919 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3584 a011");
22920 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3585 a100");
22921 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3586 a101");
22922 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3587 a110");
22923 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3588 a111");
22924 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3589 a200");
22925 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3590 a201");
22926 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3591 a210");
22927 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3592 a211");
22930 static const fp12_t var_a = { { { {0xFF25AB5E, 0xDF601711, 0x6E2C5603, 0xD74EEE4E, 0xAA198D6C, 0xBF3DF042, 0x450715F4, 0x13DF5FB0},
22931 {0xFE552899, 0x8355FB57, 0xDB2C828F, 0x319B7858, 0x5CF50870, 0xCAA29ED5, 0x140A1475, 0x0323C493} } ,
22932 { {0x09344D61, 0x68252838, 0x552310B2, 0xD06C9B04, 0x5EE870E0, 0x3F6A4B68, 0x21B9B5F5, 0x030FFAA0},
22933 {0x65C4AB89, 0xFC26C843, 0x0E050B47, 0x082CFC25, 0x572B15EC, 0x3C2C91A4, 0xE1D689A8, 0x16B0ED68} } } ,
22934 { { {0xE19A646A, 0x4DA48899, 0x24DFF627, 0x84E8EBA7, 0x0BF67BC8, 0x3BBE6BC0, 0x98C1A541, 0x1106F44B},
22935 {0x4D8A1426, 0x36C8F0DB, 0x7AAD42B4, 0xFDF57850, 0x820C3981, 0x53719A99, 0x6FC0AFB5, 0x0DFE7C68} } ,
22936 { {0x29355CE2, 0x540B1240, 0xEDC8B19A, 0xA25FDF3E, 0xFDF7EB54, 0xBF62601A, 0x06D1B829, 0x131F6CBB},
22937 {0xF0DA0AE4, 0x970EAE55, 0x6D095B92, 0xC5A51873, 0xDDA30AEB, 0xB76DE8CA, 0x6AAB611A, 0x1C12B509} } } ,
22938 { { {0x9CDC26C6, 0xE7284CD6, 0xCC8EC236, 0xD408514B, 0x2F0023A5, 0x3F2F7407, 0xAEBF7624, 0x07D2EB23},
22939 {0xB95B5C8B, 0xD87F007B, 0x938C6AE7, 0xC1B2B910, 0x75E1F86A, 0xB58AFB4D, 0x96040ED6, 0x1776812D} } ,
22940 { {0xA8A5D405, 0x10D62372, 0x720D0DF2, 0x84129AC2, 0xCDE8056F, 0x25D08AB4, 0xF592FC9F, 0x14BC32A1},
22941 {0xE2C693F7, 0xEC8B0A7C, 0xC8197723, 0xD6E35FAE, 0xFF92776F, 0x16EF74DB, 0xEF4342E3, 0x1752DEE0} } } } ;
22942 static const bigint_t var_b = {0x94016A18, 0xB94F0A4E, 0xA49AD155, 0xFF89180F, 0x8AF5472F, 0x7492EF63, 0x09E058E6, 0x50A0B47A};
22943 static const fp12_t var_expected = { { { {0xFEA9EC39, 0x1893C62E, 0xE50918C8, 0x31346AA1, 0xA5FFC618, 0x54BCF547, 0xFC846C72, 0x073D9AA3},
22944 {0x0C78CAAC, 0x507B4E80, 0x0D1404B8, 0xBDF819C9, 0xEC108C31, 0xF2A01690, 0x9F98C268, 0x14A879E6} } ,
22945 { {0x1A30150F, 0xEA9E31B3, 0x9F1B6B47, 0x3A4693E6, 0x6B40D1FC, 0xAE18C9D4, 0xCF8FF4E8, 0x138B774F},
22946 {0x7C3A8F51, 0xF28CF24D, 0x2E9D1284, 0x97EF2D08, 0xB1C77DBD, 0x62DD80C6, 0xF35E36CD, 0x0343D978} } } ,
22947 { { {0xB2DD9DF6, 0x8D6D4745, 0xF41A729C, 0x8CE10BB4, 0x00191C2F, 0x36B38454, 0x3D0C3FC3, 0x22049299},
22948 {0xE4FC05D4, 0x57996446, 0x293EB8F3, 0xFA0DF4D6, 0x7C02D09E, 0x0C29621B, 0xC49D2670, 0x1AC00685} } ,
22949 { {0x785060DB, 0xDFB0892B, 0x2531984B, 0xDEDD16F8, 0x4E13B13E, 0x99A92FFF, 0xA9C9BADB, 0x2112FA3A},
22950 {0x1DA4E4F8, 0x20FBEF26, 0x2FBCA928, 0x3E062459, 0x696A9563, 0xED7A699E, 0x0C1F7FED, 0x04F7B9F8} } } ,
22951 { { {0x1C3313B3, 0xDA534FAD, 0x88FD5F09, 0xC598944E, 0xF9FF91F3, 0x96ED012E, 0x59FEE81D, 0x1516BBC6},
22952 {0x8E00A440, 0xA4886CE4, 0xB9274425, 0x2EBC8AEB, 0xE669E175, 0x7EA2945D, 0x80B57885, 0x0E1FC8A2} } ,
22953 { {0xD5B91DD7, 0xD724C424, 0xAC596C88, 0x5ABC6C59, 0xDFF2B212, 0x13B5D6AB, 0x9A0668E3, 0x092FADEF},
22954 {0x8A8A36F0, 0x5CDDD308, 0x91F0E5AB, 0x7A105178, 0x7AF6F43A, 0x96FE274C, 0x64AC9EB8, 0x195DCA89} } } } ;
22956 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3593 a000");
22957 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3594 a001");
22958 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3595 a010");
22959 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3596 a011");
22960 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3597 a100");
22961 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3598 a101");
22962 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3599 a110");
22963 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3600 a111");
22964 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3601 a200");
22965 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3602 a201");
22966 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3603 a210");
22967 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3604 a211");
22970 static const fp12_t var_a = { { { {0xFC036042, 0xC7C233DD, 0x686B2984, 0xDAB2E0A3, 0xC8B2AC1E, 0x0278E4F4, 0x299733DA, 0x1B195DA7},
22971 {0xA50E8360, 0xA85DDCBB, 0x312A84FA, 0x8B1131AE, 0xBCE12292, 0xDAA33263, 0x3AD06B79, 0x159A289D} } ,
22972 { {0x97407E3D, 0xCF2B7B44, 0x4B242FF4, 0x70308FEB, 0xD53EE6D9, 0xE38C8973, 0x70BF44B2, 0x18A94A06},
22973 {0x41BFD218, 0xE7362BAA, 0x9613DF8A, 0x3E7C494E, 0xD263C1E2, 0xD6C80A5F, 0x6C67F9E9, 0x0B1EBE50} } } ,
22974 { { {0xBE88D297, 0x13AFFC5B, 0x4EE66219, 0xF250EECF, 0x46CD5472, 0x870579FF, 0xA25CE093, 0x0C920B36},
22975 {0xFEE829EA, 0x0DDECF27, 0xE01AFDC9, 0x502AC6E3, 0xA98DE5C7, 0xE77B7252, 0x301739B3, 0x119B9820} } ,
22976 { {0xFF231452, 0x08F7193D, 0x9012E0ED, 0x39D75551, 0x252489C2, 0x7F3315DC, 0x5518F880, 0x0E3D6031},
22977 {0x98BC26BD, 0x254CF668, 0x8AFDE232, 0xB8F80846, 0x84A6180F, 0xCE29EA95, 0xDD0217F6, 0x1F1C3A54} } } ,
22978 { { {0x61C29600, 0x2ABAC58C, 0x350F9639, 0xB371D556, 0x0CE2312E, 0x915F2B22, 0x8F78DF5D, 0x00F0C76F},
22979 {0xBD55AD3E, 0x633C6F1E, 0xCC263678, 0x87421C26, 0xFE21600D, 0xA5DB833C, 0x19AFD9FD, 0x2052B438} } ,
22980 { {0xB761725C, 0x1F040BC3, 0x55C422CB, 0x73717ECB, 0x98990841, 0x6194EF32, 0xBF5E75D0, 0x0C1EF74D},
22981 {0xEC318584, 0x49F71C3A, 0x0F942111, 0xE9286EF1, 0x805A97EA, 0xCB40BD9E, 0x83632DBE, 0x21030F42} } } } ;
22982 static const bigint_t var_b = {0xB0395C91, 0x40B085B6, 0x0A5DBC93, 0x82860399, 0x498D7161, 0xF7DCD728, 0x6126F074, 0xEAF63F46};
22983 static const fp12_t var_expected = { { { {0xEA73C8A0, 0x7B0586C4, 0xB752CDA6, 0x760BB3AF, 0xC3D37EC6, 0xEDE6D88A, 0x628594A3, 0x133E9A1C},
22984 {0x5AEAAD34, 0x13F81EBB, 0xC30B8490, 0x99930C05, 0xD5F88762, 0xB9517D81, 0x6A41E17D, 0x16C65EEC} } ,
22985 { {0xD22FD31A, 0xE74D6FC8, 0x3C55FFAD, 0xDE44CF95, 0x1C6B52B3, 0x8AB41234, 0xC8DBFB26, 0x13BE51D9},
22986 {0xE93CD818, 0x8A94C8DC, 0x2E2420F3, 0x30C5411E, 0x76C71A4F, 0x73182C27, 0x25014F3A, 0x2211A2B1} } } ,
22987 { { {0x6DD6A0A9, 0x257B73D7, 0x52D7AF9A, 0x27D9CBEF, 0x7EAD2661, 0x71758C6A, 0x05C80B11, 0x10E81178},
22988 {0x0AC1537E, 0xFE78DEA9, 0x725DDCDB, 0x002C5EE3, 0x3A06ED9F, 0xC6FF8560, 0x726411D5, 0x1CCEF40C} } ,
22989 { {0xDBD9F50E, 0x2E8D02D5, 0x282D3C1A, 0xB0D57D14, 0x55CAA35F, 0xAAEFB9B6, 0x1E01AF36, 0x1278F0AF},
22990 {0x36E54362, 0x4D39C17C, 0x80A20AD1, 0x805F60E6, 0xE65CBA97, 0x063177BC, 0x998DE530, 0x018D6727} } } ,
22991 { { {0x840F1FBB, 0xF7E58D55, 0xD3258832, 0x5A86F368, 0x8EB4B75F, 0xD584028D, 0x5A9F28B0, 0x19E08C47},
22992 {0x1541609E, 0x72ECFDFE, 0xB316030E, 0xFFFBB8BF, 0x632DCC83, 0xA5316912, 0x5EC5B38B, 0x13235D1C} } ,
22993 { {0x8A75168C, 0xE1DE5E73, 0xD48F1556, 0x754A28FC, 0xBEBF8BE7, 0xD29E8FC8, 0x665E3767, 0x0E995842},
22994 {0x9DEAE97D, 0x20A944DA, 0x99A54F83, 0xEEE79831, 0x22D49859, 0x37FD464A, 0xCDDF9298, 0x1FEB2FAF} } } } ;
22996 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3605 a000");
22997 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3606 a001");
22998 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3607 a010");
22999 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3608 a011");
23000 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3609 a100");
23001 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3610 a101");
23002 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3611 a110");
23003 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3612 a111");
23004 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3613 a200");
23005 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3614 a201");
23006 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3615 a210");
23007 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3616 a211");
23010 static const fp12_t var_a = { { { {0xED178EF7, 0x943BB69E, 0x15F5982C, 0x945CFF2C, 0xD01CE51F, 0x14460EB4, 0x9C8BA83E, 0x2002E03E},
23011 {0x8AD0572E, 0xCAD36479, 0xB32A5DBD, 0x95BA9E73, 0x388F7D86, 0xCC1EB7D2, 0xC987F95F, 0x140BA614} } ,
23012 { {0x4B55D0D7, 0xA0ACC092, 0x5E908233, 0xAF3E5BB8, 0x8EBCA246, 0x78C46488, 0x839CAE7E, 0x1072C253},
23013 {0x10103F33, 0x17DC6E03, 0x43B53324, 0xCB41866E, 0x02F6D82F, 0xE372D11F, 0xB0CD68CB, 0x195E7E30} } } ,
23014 { { {0xB808EEB4, 0x77B65FEB, 0x9A065E39, 0x72A4FE54, 0x5594AFD4, 0x07BCD1A8, 0x945868F4, 0x021E8CD4},
23015 {0x2EB87C05, 0xD1D3BA2D, 0x7AF76E9A, 0x952FBF4D, 0x8F9F54A0, 0x93E1A733, 0xEB9363AA, 0x0B2FD684} } ,
23016 { {0x0D3B40DE, 0x445B4C1D, 0x8A3423CF, 0xCD7E534B, 0x30CA6897, 0xBF372F57, 0x28EC5A90, 0x14C02332},
23017 {0x5FA95722, 0x09405E90, 0x97D67914, 0x9ED0DBFB, 0xC40C4BAD, 0x88E2595F, 0xC95BEA19, 0x21E27A3E} } } ,
23018 { { {0x83883368, 0x203DEBE5, 0x104C2707, 0x52AED0CB, 0xC553F09B, 0x9F8250C2, 0x8DCD7389, 0x2454E446},
23019 {0xF95B4BAB, 0x106B252E, 0x6EEA3EA6, 0x06E818C3, 0xC1B3055A, 0xE0DA9FC1, 0x11ADAE81, 0x11201EA4} } ,
23020 { {0x7ED50EDF, 0xA4E83FDB, 0x1A304483, 0x1ABD13B8, 0x6EF20D26, 0xD73559F7, 0xAA752D43, 0x055CF19B},
23021 {0x8033A03A, 0x226703F7, 0xB7DC7A59, 0x70CAD597, 0xF1AFB8D5, 0x2E243AA5, 0x84B65F2A, 0x19693236} } } } ;
23022 static const bigint_t var_b = {0x463EC027, 0xCD7DCA8C, 0x004CB3C4, 0xE948EB03, 0xC20C69C1, 0xC73BA76E, 0x7A3F0CED, 0x13E5AD97};
23023 static const fp12_t var_expected = { { { {0x4307C0E4, 0xD288B4D0, 0x6D8D824E, 0x9228F204, 0x33BDB9FD, 0xE6CB689A, 0x2258480A, 0x219F7950},
23024 {0xA8B2579C, 0x2335760E, 0xA38ADCC3, 0x91543718, 0x2B10DC39, 0xD34498A0, 0x36495D50, 0x23084448} } ,
23025 { {0xA6C7F037, 0x190CD8DD, 0x40E877F0, 0x37D0719A, 0xB37A4FAE, 0x76FAE8AA, 0x37C8AABC, 0x1D2C4C11},
23026 {0xC33D7FC4, 0x12C0C1A8, 0x53D3610A, 0x0153DD77, 0x6C014EE7, 0x970A6919, 0xAFA9F648, 0x01EE69E7} } } ,
23027 { { {0xB0F1D1F2, 0x75BB5075, 0x5F6DF8DE, 0x21683D23, 0xCDD91E33, 0xE4FEE7F8, 0x52F9328C, 0x12C87A23},
23028 {0x2C2706A7, 0xCE6F6AD8, 0x8B005A89, 0x49188679, 0x268A7E5F, 0x603680BC, 0xB171B0BD, 0x1E2D9374} } ,
23029 { {0x2F20A1B8, 0x4FBD2971, 0xCE4A2201, 0x4FD265C8, 0xF1067EA4, 0x87E191C5, 0x40BC65BF, 0x0D877988},
23030 {0x5495CBFC, 0x13B02F4E, 0x3C790F49, 0xB5349633, 0xF3A6128B, 0xEAC56B98, 0xDD5D725F, 0x09D3889C} } } ,
23031 { { {0xDECB3C81, 0x10E80B76, 0xD03B7DC6, 0xE26E6492, 0xEE0761C9, 0xAF670E16, 0xCEE16D89, 0x009FDE9F},
23032 {0x39386179, 0x13D080CA, 0x18947F0E, 0x7E071E6C, 0xAB1D6B78, 0x919A0EBF, 0x68AD924F, 0x0C4B22F4} } ,
23033 { {0x855B50B3, 0xD1184D76, 0x05BAC858, 0x946DBA2D, 0x7C5FB7FC, 0xD80DD4C4, 0x41CC8E48, 0x10F3A72F},
23034 {0xBF1FCF09, 0xB6AAFAD4, 0x2A0615DF, 0x31796DE2, 0xBAAA107C, 0x16DDCD55, 0x62240FF5, 0x2215A148} } } } ;
23036 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3617 a000");
23037 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3618 a001");
23038 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3619 a010");
23039 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3620 a011");
23040 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3621 a100");
23041 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3622 a101");
23042 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3623 a110");
23043 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3624 a111");
23044 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3625 a200");
23045 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3626 a201");
23046 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3627 a210");
23047 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3628 a211");
23050 static const fp12_t var_a = { { { {0x10242F28, 0x5CB90872, 0x3C91ABDE, 0xAA131645, 0x0A3FBA91, 0x6F468E01, 0xBEFF9C1E, 0x1242AD3B},
23051 {0x0DBF3F20, 0xB29FDF6D, 0x05A87D28, 0x399FCFD5, 0x610D100A, 0x97B22257, 0x08F88F7D, 0x02829ABD} } ,
23052 { {0x0EA4661B, 0x22581784, 0xD448BE02, 0xEB884C26, 0x842399E0, 0x73B17756, 0xDE7A059B, 0x042CDB9D},
23053 {0x1DA11599, 0x77434DB6, 0xC8923192, 0x0FA7AE01, 0x4F12AC6C, 0xFAE5016A, 0x9E94FD88, 0x18B7E24B} } } ,
23054 { { {0xA876254F, 0x8A4A6F5B, 0x333A0713, 0xD0CA7EAC, 0xA3DCFFCB, 0x8CDC3029, 0xFA15B4F8, 0x00DAE89E},
23055 {0x0E676574, 0x2F2DD211, 0x3A3DAAB3, 0x9022E42F, 0xBE2A2BE2, 0xAEBD0EAC, 0xBA61F418, 0x06A9E7B4} } ,
23056 { {0x99EB287F, 0x8BFB0628, 0xDE80C448, 0xC938D3EA, 0x231263C3, 0x022EDC90, 0x6DD22C53, 0x030AFABB},
23057 {0xA1F12E47, 0x77DB190A, 0xA14CCC1C, 0xDA77CC0F, 0xC8ED6790, 0xB487993F, 0xCE2E2F17, 0x1F4D3046} } } ,
23058 { { {0x823340F8, 0x590FDFAD, 0xF8D66C8A, 0x484E0CBE, 0x2FA79CC3, 0x2685E54A, 0x6C02F285, 0x0241C670},
23059 {0x93408A7B, 0xC5C5D9DE, 0x9FA2833C, 0x5320422C, 0xBEAB1801, 0xD3E619F3, 0xA48D18D4, 0x0B28DAB4} } ,
23060 { {0x89E1CBEA, 0x3710CC00, 0x45D5226A, 0x0738C209, 0x25BC45BF, 0xFC3AE9B6, 0x6ADA38AB, 0x11B31E2F},
23061 {0x2226C0CB, 0x6D08FB6F, 0x62D767EF, 0x6049F676, 0xDDA22B2E, 0x5979105B, 0x2A140711, 0x0538096B} } } } ;
23062 static const bigint_t var_b = {0x08DAFFEF, 0xD26FD67C, 0xD6029C17, 0xCA560B23, 0xA749B0E5, 0x8D9612FF, 0xF3CD3E3C, 0x269C7DC5};
23063 static const fp12_t var_expected = { { { {0xFA0660E6, 0xFFD9EDCE, 0xA12E7250, 0x39907C12, 0xE4ED61F0, 0xE552B001, 0x226E04B0, 0x02D9C827},
23064 {0x9694EE48, 0x40524A93, 0xFB2E3B16, 0x7CC16C13, 0xBF50F61C, 0x211EA954, 0x0ABE310E, 0x19B9F401} } ,
23065 { {0x96A65EE5, 0x66E51121, 0x38577BEC, 0xEF2AFEC8, 0x494E8590, 0x375A05AA, 0x49126A68, 0x0A063D0A},
23066 {0x58A72F8B, 0x7D2EE9FB, 0x23B8FAC4, 0xDCFA1FB6, 0x1A2A7991, 0x5578610C, 0x1D0B2B7D, 0x1805E535} } } ,
23067 { { {0x77F24449, 0x22C42B25, 0x0DB00C3E, 0xC0D83CCE, 0x2C9CCAE7, 0xF30854DD, 0x2A4E4AC3, 0x1C6B051F},
23068 {0xC8A9392C, 0x014FCA09, 0x16D06C37, 0xDAA2F3E8, 0x1FA57F7B, 0x9C35A787, 0xC6C9A350, 0x1D65B2AD} } ,
23069 { {0x67D25D14, 0x5FEFD5A5, 0x39E990EF, 0x19E77433, 0xAF9B38D8, 0xCCF58F67, 0x6EAF476D, 0x1B84CA99},
23070 {0x5989C75D, 0xBC9910E9, 0x31D83790, 0x6FB17B62, 0x8957C163, 0xA6F3225E, 0xA4DAA10E, 0x113449A3} } } ,
23071 { { {0xC64458F7, 0x06C702E0, 0x72D0F609, 0xEA74577F, 0x625827EA, 0xE1E46A48, 0x5807AF92, 0x24CB6E36},
23072 {0x2409B708, 0xF229B576, 0x7A60B319, 0xBFFF1456, 0x0658B6A7, 0x18BFC9EE, 0xCAB4955E, 0x018BD0FE} } ,
23073 { {0x29AAB2C4, 0x02A4108D, 0x00A999B3, 0x24640F73, 0x9F4056C6, 0x565DA8F5, 0x7CA71BD9, 0x2124290B},
23074 {0x21C1523C, 0xF6FCF67C, 0x28055BCF, 0xA2FD6822, 0x54CCEE9A, 0x63EA0081, 0x7FF39C0D, 0x1A396B19} } } } ;
23076 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3629 a000");
23077 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3630 a001");
23078 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3631 a010");
23079 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3632 a011");
23080 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3633 a100");
23081 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3634 a101");
23082 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3635 a110");
23083 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3636 a111");
23084 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3637 a200");
23085 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3638 a201");
23086 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3639 a210");
23087 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3640 a211");
23090 static const fp12_t var_a = { { { {0xAD101449, 0x07C4CBD9, 0xF47402ED, 0x61FFB473, 0x70B215FD, 0xC8E0D923, 0x68F46D78, 0x13246E0F},
23091 {0x247EEE10, 0xE799C14C, 0x497500F5, 0xCC3C2ECA, 0x77D1B82A, 0xC8BBEAD1, 0xFD3E3DA5, 0x0533502D} } ,
23092 { {0xAEDA443D, 0x37A7D397, 0xC0594374, 0xD6930A2C, 0x91CCFF66, 0x2E2CD081, 0x6B2DF80E, 0x0E454C64},
23093 {0x332BCBA8, 0x933FA21B, 0xAF33CBEC, 0xFD82AB68, 0x86C0EB44, 0xDD71E60B, 0xC371A839, 0x0AE71DFA} } } ,
23094 { { {0xBA1E1486, 0xAE6CB758, 0xACF9AEC6, 0x8A301374, 0x23D97C42, 0x8365E566, 0x7DAFB762, 0x22456D80},
23095 {0x7429FE71, 0x16941C48, 0x6BD164F7, 0x914AB099, 0xE0345F3C, 0x93D2998B, 0xC78C340C, 0x19FF700A} } ,
23096 { {0xFD5AAAA2, 0xE9DD6ED2, 0x3DB0E0EA, 0xED651AF5, 0x299C4F7E, 0xAE3BF389, 0x851C5998, 0x07BB862F},
23097 {0x5E157BF4, 0xD3DBFC94, 0x67747A95, 0x86DEC540, 0x80F20D12, 0x28F648E8, 0xC7FFD649, 0x0C155E95} } } ,
23098 { { {0x7CB3ED87, 0x987CAC43, 0xDA366B8E, 0x1130645A, 0xE42393D7, 0xA85CF68B, 0x315FC8CC, 0x0AEFFFE5},
23099 {0xAF2EE69C, 0xC5CB4563, 0x0BE1DCFD, 0x4BAA8B69, 0x15ABE706, 0xC1E8B43A, 0x5ED82D2B, 0x07D72E95} } ,
23100 { {0x9CCD281B, 0x9D30F4C3, 0xF1D10584, 0x0118778E, 0xBFDCE5F6, 0x3A7A016F, 0x2A6BA644, 0x04917ABB},
23101 {0x3085979C, 0x4EBFFBA0, 0xF2285C33, 0x815E76F6, 0xC3322C13, 0x01D29E44, 0xBC36D4F8, 0x1F8B8551} } } } ;
23102 static const bigint_t var_b = {0xBF71D495, 0xA2835A17, 0xCF9B12BC, 0x03688704, 0x7EFA0BE6, 0x9344FD3D, 0x1DACC069, 0x87A305D6};
23103 static const fp12_t var_expected = { { { {0xB1BB6E85, 0x96A0A46E, 0xB4CA484A, 0x27609AC5, 0x526983A4, 0x5AB11F67, 0xFFAFA063, 0x1065D28A},
23104 {0x96D760F3, 0x7AA2F0DB, 0x3AA5F905, 0xE2773909, 0xD90A235A, 0xB594FC2F, 0x6F1CF63B, 0x043B7BE9} } ,
23105 { {0xA9748A4F, 0x52D48DE6, 0x4B8A35B6, 0x8FB4288F, 0x1F40EC7E, 0x40BDBFF4, 0x57E8F146, 0x1975C8E8},
23106 {0x74B4893C, 0xE9A9A921, 0x941469D7, 0x13EBAC71, 0xE715C3BD, 0x586381BB, 0x6168A589, 0x15B6870E} } } ,
23107 { { {0x29D5710A, 0x1DFFCA77, 0xFB831B9C, 0x51D6C94D, 0xFBFCA56F, 0xBA4C291B, 0xBC5590F8, 0x16CBD6F8},
23108 {0x8C180FDE, 0xD8FF965C, 0xBAE2E86C, 0x776F5631, 0x946707E8, 0x544452C9, 0x8A87F409, 0x0AD70230} } ,
23109 { {0x6651E993, 0xCD252836, 0xAC33C0A7, 0x8DE0DE5A, 0xA07D11F4, 0x71B30499, 0x875B4E96, 0x18C0AD05},
23110 {0x40C0F027, 0xD2FD9757, 0x439FA8F8, 0x8C50B920, 0xCE3EF82D, 0x1EEA7B83, 0x91AE0782, 0x04EE6DD1} } } ,
23111 { { {0x690C793F, 0x81D876EE, 0xD2A2EDBA, 0xCEBFDE4E, 0x18ED4181, 0xAAB70945, 0x62A7041A, 0x06C6308B},
23112 {0x66702566, 0xC776949D, 0x7B77E686, 0x6D8B09AB, 0xA8AF9E70, 0x3D8718DC, 0x20BAB755, 0x2480CC28} } ,
23113 { {0xA89B5A7B, 0xA1A94B49, 0x1A7FDB29, 0x617D0E5C, 0x1EF1B32B, 0x28F1AF62, 0x5CF53F6A, 0x1285DA2A},
23114 {0x69BDC923, 0xB47655CE, 0x3276934B, 0xFF46BE3A, 0x0723F6E7, 0xA17697AC, 0x48AE96ED, 0x0352D2D8} } } } ;
23116 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3641 a000");
23117 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3642 a001");
23118 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3643 a010");
23119 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3644 a011");
23120 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3645 a100");
23121 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3646 a101");
23122 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3647 a110");
23123 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3648 a111");
23124 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3649 a200");
23125 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3650 a201");
23126 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3651 a210");
23127 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3652 a211");
23130 static const fp12_t var_a = { { { {0x583BA089, 0x07E507E4, 0x467C3B17, 0xBDE914CC, 0x139075EB, 0x662C8FD6, 0x3A295CE9, 0x0EC92709},
23131 {0xAD3A0B76, 0x8429547F, 0x4DDD4623, 0x98A7C0E2, 0x5AEA4ADB, 0x28C1D83B, 0x19F7E883, 0x0BC55119} } ,
23132 { {0x220F6D3F, 0xEE7985CF, 0x7600BE77, 0xAD62B545, 0xBC8F11F8, 0x22F7D3BC, 0xA20AFA0A, 0x0C418BE0},
23133 {0xEE44D6A9, 0x01258765, 0x088B9D90, 0x0334C3A7, 0x388E4373, 0xA0405539, 0x73A795A3, 0x16F14EBD} } } ,
23134 { { {0x9E9BE914, 0x19FF5D92, 0x7DC8B206, 0x5459A223, 0xDE59EF96, 0x8CC47EEE, 0x9A7B5B47, 0x09741317},
23135 {0x909C2798, 0x3D30A68B, 0x04BD6E6E, 0x3EE7106F, 0x55FB58A7, 0x08A97EE1, 0xDE8C63AC, 0x1251F572} } ,
23136 { {0x7981A632, 0xB1B1BC40, 0xFF0719B6, 0x563C38FB, 0x568ED2FE, 0x77914618, 0x37EE1FDA, 0x19D5EFB5},
23137 {0xE06A7052, 0xFA4A7654, 0x86968C65, 0xFE46E4E6, 0x2E10822E, 0xCC3926FB, 0x5150CB3F, 0x10321E10} } } ,
23138 { { {0xA0E6013D, 0xCA1F8689, 0xE325E815, 0xB3894DE7, 0x407ED281, 0x6BF3EEE6, 0xCE562E2D, 0x0C222497},
23139 {0x6AC6A290, 0x6CD2F5D1, 0x1496DBA7, 0x6301A454, 0x8144CDFA, 0x92A146BF, 0xC1C4C5D3, 0x009D2D93} } ,
23140 { {0x40469309, 0xCB37511C, 0x4D0C836E, 0x68819E57, 0xFAFB99CC, 0xD506B42F, 0x73759336, 0x0AC46A82},
23141 {0xFB82473E, 0x748E67EB, 0x73E5E415, 0x263291CD, 0x4A79BE43, 0x2D6D0BC5, 0xA12D24F7, 0x0A74CA84} } } } ;
23142 static const fp12_t var_expected = { { { {0xA7C45F8A, 0x9F1AF81B, 0xB983C4FC, 0xA337EB33, 0xEC6F8A1C, 0x5407BDA9, 0x05D6A318, 0x165A3D79},
23143 {0x52C5F49D, 0x22D6AB80, 0xB222B9F0, 0xC8793F1D, 0xA515B52C, 0x91727544, 0x2608177E, 0x195E1369} } ,
23144 { {0xDDF092D4, 0xB8867A30, 0x89FF419B, 0xB3BE4ABA, 0x4370EE0F, 0x973C79C3, 0x9DF505F7, 0x18E1D8A1},
23145 {0x11BB296A, 0xA5DA789A, 0xF7746283, 0x5DEC3C58, 0xC771BC95, 0x19F3F846, 0xCC586A5E, 0x0E3215C4} } } ,
23146 { { {0x616416FF, 0x8D00A26D, 0x82374E0D, 0x0CC75DDC, 0x21A61072, 0x2D6FCE91, 0xA584A4BA, 0x1BAF516A},
23147 {0x6F63D87B, 0x69CF5974, 0xFB4291A5, 0x2239EF90, 0xAA04A761, 0xB18ACE9E, 0x61739C55, 0x12D16F0F} } ,
23148 { {0x867E59E1, 0xF54E43BF, 0x00F8E65C, 0x0AE4C704, 0xA9712D0A, 0x42A30767, 0x0811E027, 0x0B4D74CD},
23149 {0x1F958FC1, 0xACB589AB, 0x796973AD, 0x62DA1B19, 0xD1EF7DD9, 0xEDFB2684, 0xEEAF34C1, 0x14F14671} } } ,
23150 { { {0x5F19FED6, 0xDCE07976, 0x1CDA17FD, 0xAD97B218, 0xBF812D86, 0x4E405E99, 0x71A9D1D4, 0x19013FEA},
23151 {0x95395D83, 0x3A2D0A2E, 0xEB69246C, 0xFE1F5BAB, 0x7EBB320D, 0x279306C0, 0x7E3B3A2E, 0x248636EE} } ,
23152 { {0xBFB96D0A, 0xDBC8AEE3, 0xB2F37CA4, 0xF89F61A8, 0x0504663B, 0xE52D9950, 0xCC8A6CCA, 0x1A5EF9FF},
23153 {0x047DB8D5, 0x32719814, 0x8C1A1BFE, 0x3AEE6E32, 0xB58641C5, 0x8CC741BA, 0x9ED2DB0A, 0x1AAE99FD} } } } ;
23155 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3653 a000");
23156 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3654 a001");
23157 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3655 a010");
23158 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3656 a011");
23159 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3657 a100");
23160 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3658 a101");
23161 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3659 a110");
23162 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3660 a111");
23163 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3661 a200");
23164 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3662 a201");
23165 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3663 a210");
23166 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3664 a211");
23169 static const fp12_t var_a = { { { {0xC7402B3F, 0xF75AC4BF, 0xA1789FED, 0x320105D9, 0x212B1525, 0x4783015D, 0x7C2C9483, 0x1BCB403E},
23170 {0xA201A855, 0xABBF415C, 0xA7A94D08, 0x7588B63C, 0xC6C87124, 0x6674034A, 0x289C9BFF, 0x2490793A} } ,
23171 { {0xE06B6768, 0xBC6F56F9, 0x864BA13A, 0x9C5C6C8F, 0x92506358, 0x3986E84D, 0x3DCBF3FB, 0x078D5BD3},
23172 {0xAA000CA6, 0xAC30018D, 0xF552565A, 0x9277280F, 0x7356A6D6, 0x619E5FBD, 0x49368A47, 0x1F356C76} } } ,
23173 { { {0x7A22D9C1, 0x91EA7367, 0xDFD868F3, 0x23108B5A, 0x6AA2224A, 0x4A30BECB, 0x0D626E9E, 0x08A86BFC},
23174 {0xA06B0B71, 0x2E48E086, 0xE3EC3E60, 0xAFA27D9F, 0x0D1F8E81, 0x5170AA38, 0xBB8861AF, 0x0734C585} } ,
23175 { {0xC054C5DD, 0x1FE6072F, 0xD3379ACB, 0xA6C064DE, 0x06180F83, 0x8838996E, 0x3F0F6787, 0x05EC1627},
23176 {0x522BF4A0, 0xA2157283, 0x356EA4D7, 0x2EEC8EB9, 0x92C8778D, 0x1F9CF7E5, 0xB3D7D8D0, 0x08360B49} } } ,
23177 { { {0x21586F14, 0xC12C691D, 0xC5924F79, 0x9E8786E8, 0x023AF4EA, 0x2AF67F6E, 0xA851CABE, 0x23814956},
23178 {0xCDF543AE, 0x346321D9, 0xF108D78D, 0xE40C7ECF, 0x3D724B56, 0xAE5EA678, 0x246EC4F3, 0x1A1DF4AB} } ,
23179 { {0x49B7FCD0, 0x5F4AAB5F, 0x5B77446B, 0x85A513EB, 0x3DF2F850, 0x1C4B83BC, 0xDF562464, 0x0FBE77A8},
23180 {0x5D1E3616, 0xEDC59345, 0x5B7A15D6, 0x6AEE00B9, 0x8D84DBAE, 0x076CE62E, 0x45F1A672, 0x0E89D118} } } } ;
23181 static const fp12_t var_expected = { { { {0x38BFD4D4, 0xAFA53B40, 0x5E876025, 0x2F1FFA26, 0xDED4EAE3, 0x72B14C22, 0xC3D36B7E, 0x09582443},
23182 {0x5DFE57BE, 0xFB40BEA3, 0x5856B30A, 0xEB9849C3, 0x39378EE3, 0x53C04A35, 0x17636402, 0x0092EB48} } ,
23183 { {0x1F9498AB, 0xEA90A906, 0x79B45ED8, 0xC4C49370, 0x6DAF9CAF, 0x80AD6532, 0x02340C06, 0x1D9608AF},
23184 {0x55FFF36D, 0xFACFFE72, 0x0AADA9B8, 0xCEA9D7F0, 0x8CA95931, 0x5895EDC2, 0xF6C975BA, 0x05EDF80B} } } ,
23185 { { {0x85DD2652, 0x15158C98, 0x20279720, 0x3E1074A5, 0x955DDDBE, 0x70038EB4, 0x329D9163, 0x1C7AF886},
23186 {0x5F94F4A2, 0x78B71F79, 0x1C13C1B3, 0xB17E8260, 0xF2E07186, 0x68C3A347, 0x84779E52, 0x1DEE9EFC} } ,
23187 { {0x3FAB3A36, 0x8719F8D0, 0x2CC86548, 0xBA609B21, 0xF9E7F084, 0x31FBB411, 0x00F0987A, 0x1F374E5B},
23188 {0xADD40B73, 0x04EA8D7C, 0xCA915B3C, 0x32347146, 0x6D37887B, 0x9A97559A, 0x8C282731, 0x1CED5938} } } ,
23189 { { {0xDEA790FF, 0xE5D396E2, 0x3A6DB099, 0xC2997917, 0xFDC50B1D, 0x8F3DCE11, 0x97AE3543, 0x01A21B2B},
23190 {0x320ABC65, 0x729CDE26, 0x0EF72886, 0x7D148130, 0xC28DB4B1, 0x0BD5A707, 0x1B913B0E, 0x0B056FD7} } ,
23191 { {0xB6480343, 0x47B554A0, 0xA488BBA8, 0xDB7BEC14, 0xC20D07B7, 0x9DE8C9C3, 0x60A9DB9D, 0x1564ECD9},
23192 {0xA2E1C9FD, 0xB93A6CBA, 0xA485EA3C, 0xF632FF46, 0x727B2459, 0xB2C76751, 0xFA0E598F, 0x16999369} } } } ;
23194 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3665 a000");
23195 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3666 a001");
23196 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3667 a010");
23197 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3668 a011");
23198 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3669 a100");
23199 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3670 a101");
23200 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3671 a110");
23201 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3672 a111");
23202 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3673 a200");
23203 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3674 a201");
23204 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3675 a210");
23205 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3676 a211");
23208 static const fp12_t var_a = { { { {0x2402F1BC, 0xF39F53F0, 0x7B267A2E, 0xE86B8E86, 0xD25B308D, 0x88045AFC, 0xF748EBA9, 0x1FE3CE24},
23209 {0x8F656588, 0x2AAAF0D6, 0xF95ACFC7, 0x55F9E315, 0x3F810905, 0x1AF6AD0A, 0x0AAAF579, 0x11FC7982} } ,
23210 { {0xE19D3A23, 0x146E721C, 0x48E4460B, 0xEE05665B, 0x1F93920F, 0xD8ACFE9A, 0xC6A6FD07, 0x1A47DFE9},
23211 {0x32C981F3, 0xA16B0CF5, 0x8F6ED27A, 0xEA94E6AC, 0x4FD3BE3C, 0x716E4336, 0xE8D9101B, 0x0BA3409E} } } ,
23212 { { {0xEC94C91C, 0x8AEA1FC1, 0x2848DE00, 0x66A6489C, 0xC0853A83, 0x2F08C326, 0x60895404, 0x200B7952},
23213 {0x51541A1F, 0x015B774B, 0x23F462C3, 0x11EDC95F, 0xFA9EB936, 0x7C60E3C3, 0x9409F0DA, 0x12A4331D} } ,
23214 { {0xF266CD3C, 0xE34A5D22, 0xC08C4C43, 0x2DF2381A, 0x94C2FD6E, 0x30446034, 0x9BFBE909, 0x02D834C5},
23215 {0x39EF7A91, 0x8DD87095, 0xF9F55A6A, 0x6E57A68D, 0xBD912D1C, 0x155DACB4, 0x435882E6, 0x2009D591} } } ,
23216 { { {0xE1D8779F, 0x3ED5597C, 0xF6DFE4BD, 0x20866DC3, 0xB6495769, 0x346492DB, 0x0C48D348, 0x2253A8C8},
23217 {0x782F9DB3, 0xE359BE8C, 0x96992E7C, 0x777F92FC, 0x56B2383D, 0xCF16D4FF, 0x2BCEC20E, 0x1999C567} } ,
23218 { {0xE4C45967, 0x65F81BB0, 0xEDB229B5, 0xB563E9CD, 0x855CA68C, 0xC07A9F9F, 0xC8468FCF, 0x166EB0CE},
23219 {0xDB273338, 0xD180667C, 0xC06FEADE, 0x2FE975A3, 0xC1302C0B, 0xD7786209, 0x40AA800D, 0x087E88F2} } } } ;
23220 static const fp12_t var_expected = { { { {0xDBFD0E57, 0xB360AC0F, 0x84D985E4, 0x78B57179, 0x2DA4CF7A, 0x322FF283, 0x48B71458, 0x053F965D},
23221 {0x709A9A8B, 0x7C550F29, 0x06A5304C, 0x0B271CEA, 0xC07EF703, 0x9F3DA075, 0x35550A88, 0x1326EB00} } ,
23222 { {0x1E62C5F0, 0x92918DE3, 0xB71BBA08, 0x731B99A4, 0xE06C6DF8, 0xE1874EE5, 0x795902F9, 0x0ADB8498},
23223 {0xCD367E20, 0x0594F30A, 0x70912D99, 0x768C1953, 0xB02C41CB, 0x48C60A49, 0x5726EFE6, 0x198023E3} } } ,
23224 { { {0x136B36F7, 0x1C15E03E, 0xD7B72213, 0xFA7AB763, 0x3F7AC584, 0x8B2B8A59, 0xDF76ABFD, 0x0517EB2F},
23225 {0xAEABE5F4, 0xA5A488B4, 0xDC0B9D50, 0x4F3336A0, 0x056146D2, 0x3DD369BC, 0xABF60F27, 0x127F3164} } ,
23226 { {0x0D9932D7, 0xC3B5A2DD, 0x3F73B3CF, 0x332EC7E5, 0x6B3D029A, 0x89EFED4B, 0xA40416F8, 0x224B2FBC},
23227 {0xC6108582, 0x19278F6A, 0x060AA5A9, 0xF2C95972, 0x426ED2EB, 0xA4D6A0CB, 0xFCA77D1B, 0x05198EF0} } } ,
23228 { { {0x1E278874, 0x682AA683, 0x09201B56, 0x409A923C, 0x49B6A89F, 0x85CFBAA4, 0x33B72CB9, 0x02CFBBBA},
23229 {0x87D06260, 0xC3A64173, 0x6966D196, 0xE9A16D03, 0xA94DC7CA, 0xEB1D7880, 0x14313DF2, 0x0B899F1B} } ,
23230 { {0x1B3BA6AC, 0x4107E44F, 0x124DD65E, 0xABBD1632, 0x7AA3597B, 0xF9B9ADE0, 0x77B97031, 0x0EB4B3B3},
23231 {0x24D8CCDB, 0xD57F9983, 0x3F901534, 0x31378A5C, 0x3ECFD3FD, 0xE2BBEB76, 0xFF557FF3, 0x1CA4DB8F} } } } ;
23233 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3677 a000");
23234 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3678 a001");
23235 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3679 a010");
23236 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3680 a011");
23237 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3681 a100");
23238 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3682 a101");
23239 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3683 a110");
23240 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3684 a111");
23241 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3685 a200");
23242 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3686 a201");
23243 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3687 a210");
23244 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3688 a211");
23247 static const fp12_t var_a = { { { {0x69EA529F, 0xB34E8EAC, 0x0B0A1A9F, 0x61A3E506, 0x9C4DC19B, 0x099469DB, 0xA3AF882A, 0x02335547},
23248 {0x6E38B71E, 0x05295038, 0x7BC4245E, 0x7AE039ED, 0x3B36A996, 0x9C0C8332, 0x37B0DB2F, 0x03ED93CE} } ,
23249 { {0x1DBE1586, 0x05B8F074, 0xF5CC06F3, 0xC56CEDFF, 0xD850DCF2, 0x2A5ED779, 0xF369CCE9, 0x05C4CFE9},
23250 {0x7FDEA381, 0xC17BC57A, 0x0DEFE191, 0x001C284E, 0x42B590FA, 0xF99B327C, 0x457F746D, 0x0341BBCE} } } ,
23251 { { {0xEE393F6C, 0xF265ADE5, 0x9016CD2E, 0xF294D412, 0x584BC430, 0x352AEE0D, 0xCDDCF39B, 0x08D40F8E},
23252 {0x9A84B0E0, 0xDDF6DAE8, 0xFAA171FB, 0x3CF1A344, 0x9239CDC6, 0x52F0766A, 0x9FDA5027, 0x17F0FFD5} } ,
23253 { {0x07AD0215, 0x3BEC9198, 0x00858A07, 0x803F5D75, 0x78A36DA4, 0xDD42721C, 0x053D438D, 0x166EE428},
23254 {0x8D522878, 0xCB85BA3E, 0x083B36F4, 0xDBEE081E, 0x28B8E0FB, 0xD6331B9B, 0xBBFD73A6, 0x18E58FFA} } } ,
23255 { { {0xD78B6983, 0x7C506C89, 0xAC89C48C, 0xCE2CAFD5, 0xD410D7A5, 0xFA8F37A7, 0xB1E1FB31, 0x0B439CD7},
23256 {0x65FD5317, 0xD88DD264, 0x3B136B25, 0xFFFBF018, 0x425F604F, 0x946B8C39, 0x0DEB2ABC, 0x0827DB1D} } ,
23257 { {0x0A402731, 0x941B0C5C, 0x38B9033B, 0x78C48D38, 0x4A6C405E, 0xA6D8FDCF, 0x268DE2BA, 0x03A3676D},
23258 {0x6E97F790, 0x70FEE86E, 0xD9CED41E, 0xC0A4A2BD, 0x5C6626D9, 0xAF25644C, 0xCABC0C69, 0x1EB885D0} } } } ;
23259 static const fp12_t var_expected = { { { {0x9615AD74, 0xF3B17153, 0xF4F5E573, 0xFF7D1AF9, 0x63B23E6C, 0xB09FE3A4, 0x9C5077D7, 0x22F00F3A},
23260 {0x91C748F5, 0xA1D6AFC7, 0x843BDBB5, 0xE640C612, 0xC4C95671, 0x1E27CA4D, 0x084F24D2, 0x2135D0B4} } ,
23261 { {0xE241EA8D, 0xA1470F8B, 0x0A33F920, 0x9BB41200, 0x27AF2315, 0x8FD57606, 0x4C963318, 0x1F5E9498},
23262 {0x80215C92, 0xE5843A85, 0xF2101E81, 0x6104D7B1, 0xBD4A6F0E, 0xC0991B03, 0xFA808B93, 0x21E1A8B3} } } ,
23263 { { {0x11C6C0A7, 0xB49A521A, 0x6FE932E4, 0x6E8C2BED, 0xA7B43BD7, 0x85095F72, 0x72230C66, 0x1C4F54F3},
23264 {0x657B4F33, 0xC9092517, 0x055E8E17, 0x242F5CBB, 0x6DC63242, 0x6743D715, 0xA025AFDA, 0x0D3264AC} } ,
23265 { {0xF852FDFE, 0x6B136E67, 0xFF7A760C, 0xE0E1A28A, 0x875C9263, 0xDCF1DB63, 0x3AC2BC73, 0x0EB4805A},
23266 {0x72ADD79B, 0xDB7A45C1, 0xF7C4C91E, 0x8532F7E1, 0xD7471F0C, 0xE40131E4, 0x84028C5A, 0x0C3DD487} } } ,
23267 { { {0x28749690, 0x2AAF9376, 0x53763B87, 0x92F4502A, 0x2BEF2862, 0xBFA515D8, 0x8E1E04CF, 0x19DFC7AA},
23268 {0x9A02ACFC, 0xCE722D9B, 0xC4EC94ED, 0x61250FE7, 0xBDA09FB8, 0x25C8C146, 0x3214D545, 0x1CFB8965} } ,
23269 { {0xF5BFD8E2, 0x12E4F3A3, 0xC746FCD8, 0xE85C72C7, 0xB593BFA9, 0x135B4FB0, 0x19721D47, 0x217FFD15},
23270 {0x91680883, 0x36011791, 0x26312BF5, 0xA07C5D42, 0xA399D92E, 0x0B0EE933, 0x7543F398, 0x066ADEB1} } } } ;
23272 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3689 a000");
23273 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3690 a001");
23274 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3691 a010");
23275 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3692 a011");
23276 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3693 a100");
23277 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3694 a101");
23278 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3695 a110");
23279 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3696 a111");
23280 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3697 a200");
23281 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3698 a201");
23282 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3699 a210");
23283 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3700 a211");
23286 static const fp12_t var_a = { { { {0x8DF7FFFE, 0x2E68A764, 0x891BE342, 0x4B964C12, 0xF77FB4E4, 0x9A8EC593, 0xF9C4F991, 0x0CDE769B},
23287 {0x3660E481, 0x8E6012C6, 0x66AD7026, 0x34B6D085, 0x33DE70F9, 0xFECEF084, 0xE7F4AEE7, 0x205EC2DA} } ,
23288 { {0x8C79C943, 0x88F2A3D3, 0xC37B9391, 0xCF3598D3, 0x38D7EC6E, 0xF83D9D8B, 0x3E19700D, 0x117E11BA},
23289 {0x89949E4E, 0xFCE98CFE, 0xA8D90DE9, 0x5C759A2C, 0xC580CA4B, 0xAFC9FB01, 0x5AC90D3C, 0x15E3689C} } } ,
23290 { { {0x76ECEFD8, 0xC229C4A5, 0x4DB8D1FD, 0x70B4F362, 0xAA8E7A9F, 0x27FDD7A7, 0xCB7EC2B3, 0x0D549916},
23291 {0x753E1755, 0xFD867F1A, 0xA3B9DF03, 0xC559D13F, 0x4E81BE84, 0x46FE10BE, 0x967CA8FB, 0x19986417} } ,
23292 { {0xF7AFA86C, 0xBA3DB839, 0xCB125770, 0xCFBCFA3B, 0x29245766, 0x43B14AC1, 0xF5941288, 0x1CE543A2},
23293 {0x46057A50, 0x3FF09C3A, 0x9C3E0378, 0x6CF17FCB, 0x4B5C7351, 0x8D36F215, 0x12A451EC, 0x1D820F36} } } ,
23294 { { {0xFC279B57, 0xF13413AC, 0x2180ADB7, 0x43EB732D, 0xD446BA6B, 0xBA93EE21, 0x50FCB04E, 0x099AF51A},
23295 {0x8AFD0EAC, 0xF4B8AAFD, 0x1935F89C, 0x72B5B438, 0x7AA70A60, 0x26FEFA8C, 0xC27FB33B, 0x0F14F900} } ,
23296 { {0xB38D37AC, 0xCFF2A35A, 0x76F89112, 0xC7081AEF, 0x06A749D3, 0xF857432C, 0xF2A6DB27, 0x02063406},
23297 {0x0E792F96, 0xDC5DEC0F, 0xDE940E5A, 0x403698B8, 0xD7E1DA37, 0xB8591959, 0x9C438803, 0x1222D7C5} } } } ;
23298 static const fp12_t var_expected = { { { {0x72080015, 0x7897589B, 0x76E41CD1, 0x158AB3ED, 0x08804B24, 0x1FA587EC, 0x463B0670, 0x1844EDE6},
23299 {0xC99F1B92, 0x189FED39, 0x99528FED, 0x2C6A2F7A, 0xCC218F0F, 0xBB655CFB, 0x580B5119, 0x04C4A1A7} } ,
23300 { {0x738636D0, 0x1E0D5C2C, 0x3C846C82, 0x91EB672C, 0xC7281399, 0xC1F6AFF4, 0x01E68FF3, 0x13A552C8},
23301 {0x766B61C5, 0xAA167301, 0x5726F229, 0x04AB65D3, 0x3A7F35BD, 0x0A6A527E, 0xE536F2C5, 0x0F3FFBE5} } } ,
23302 { { {0x8913103B, 0xE4D63B5A, 0xB2472E15, 0xF06C0C9D, 0x55718568, 0x923675D8, 0x74813D4E, 0x17CECB6B},
23303 {0x8AC1E8BE, 0xA97980E5, 0x5C46210F, 0x9BC72EC0, 0xB17E4183, 0x73363CC1, 0xA9835706, 0x0B8B006A} } ,
23304 { {0x085057A7, 0xECC247C6, 0x34EDA8A2, 0x916405C4, 0xD6DBA8A1, 0x768302BE, 0x4A6BED79, 0x083E20DF},
23305 {0xB9FA85C3, 0x670F63C5, 0x63C1FC9B, 0xF42F8034, 0xB4A38CB6, 0x2CFD5B6A, 0x2D5BAE15, 0x07A1554C} } } ,
23306 { { {0x03D864BC, 0xB5CBEC53, 0xDE7F525B, 0x1D358CD2, 0x2BB9459D, 0xFFA05F5E, 0xEF034FB2, 0x1B886F67},
23307 {0x7502F167, 0xB2475502, 0xE6CA0776, 0xEE6B4BC7, 0x8558F5A7, 0x933552F3, 0x7D804CC6, 0x160E6B81} } ,
23308 { {0x4C72C867, 0xD70D5CA5, 0x89076F00, 0x9A18E510, 0xF958B634, 0xC1DD0A53, 0x4D5924D9, 0x231D307B},
23309 {0xF186D07D, 0xCAA213F0, 0x216BF1B8, 0x20EA6747, 0x281E25D1, 0x01DB3426, 0xA3BC77FE, 0x13008CBC} } } } ;
23311 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3701 a000");
23312 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3702 a001");
23313 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3703 a010");
23314 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3704 a011");
23315 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3705 a100");
23316 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3706 a101");
23317 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3707 a110");
23318 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3708 a111");
23319 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3709 a200");
23320 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3710 a201");
23321 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3711 a210");
23322 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3712 a211");
23325 static const fp12_t var_a = { { { {0x87BF9141, 0x764F3230, 0x2DC7ABE9, 0xC9263208, 0x5DC69AF1, 0x62EE0DED, 0xB020B078, 0x00E96628},
23326 {0xDED65446, 0x2E5572AB, 0xF1D0C751, 0x4165BED4, 0x9F437C4F, 0xAF750D54, 0x936B8690, 0x02AD1FF8} } ,
23327 { {0x2611D5AD, 0xAD26A099, 0xEDDAD6E4, 0x2CF7E0BF, 0xB6C70EA3, 0x6F89502C, 0x5EEA5100, 0x01CF41E9},
23328 {0x48532BEF, 0xC5224D0A, 0x96272BF2, 0xE2A9BDFD, 0x4F8EA8EC, 0x17E7F841, 0x1E0D013A, 0x1A5D6D8A} } } ,
23329 { { {0x7E1B511D, 0x42636E45, 0x9915C8FC, 0x0EDA4110, 0x2D3FF382, 0x052B6C37, 0x12C1441C, 0x17D8C27D},
23330 {0xD8D7D2B2, 0x2D5FA40B, 0x53F21353, 0xE6F70A31, 0xA5DCF48F, 0xDF7C2C2C, 0xF1223C9B, 0x1D139A8A} } ,
23331 { {0xBA8C0B56, 0xC015A60E, 0x579C35F7, 0xFF2F49D5, 0x21020B09, 0x03450429, 0xA1F1FACA, 0x23097775},
23332 {0x5CCB159C, 0x0FD2B18C, 0xECF5644B, 0xFB89200F, 0x9E725046, 0x042C7C3D, 0x81DF7483, 0x0E4B2B53} } } ,
23333 { { {0x49F8F8EF, 0xD87D25B4, 0x8D276E61, 0x13F169B0, 0x2DF75B28, 0xE5116CBD, 0xA0A79784, 0x240C6335},
23334 {0xE0E1CCEA, 0x3C7BA036, 0x67B24378, 0x58FEDBFA, 0x758D6B61, 0x243C5A3F, 0x03FC9D53, 0x0A716BEC} } ,
23335 { {0xD6A6C07A, 0x521D513D, 0xDE526091, 0x3213F359, 0x2FE6565B, 0x23DB4082, 0xE33EE542, 0x149D7923},
23336 {0xB2EC4CD2, 0x88A44FC2, 0x08B3380D, 0x4977281B, 0xA933E331, 0x33CA2DC1, 0x6D0AD072, 0x0E1C5C5C} } } } ;
23337 static const fp12_t var_expected = { { { {0x78406ED2, 0x30B0CDCF, 0xD238542A, 0x97FACDF7, 0xA2396516, 0x57463F92, 0x8FDF4F89, 0x2439FE59},
23338 {0x2129ABCD, 0x78AA8D54, 0x0E2F38C2, 0x1FBB412B, 0x60BC83B9, 0x0ABF402B, 0xAC947971, 0x22764489} } ,
23339 { {0xD9EE2A66, 0xF9D95F66, 0x1225292E, 0x34291F40, 0x4938F165, 0x4AAAFD53, 0xE115AF01, 0x23542298},
23340 {0xB7ACD424, 0xE1DDB2F5, 0x69D8D420, 0x7E774202, 0xB071571B, 0xA24C553E, 0x21F2FEC7, 0x0AC5F6F8} } } ,
23341 { { {0x81E4AEF6, 0x649C91BA, 0x66EA3717, 0x5246BEEF, 0xD2C00C86, 0xB508E148, 0x2D3EBBE5, 0x0D4AA205},
23342 {0x27282D61, 0x79A05BF4, 0xAC0DECC0, 0x7A29F5CE, 0x5A230B78, 0xDAB82153, 0x4EDDC365, 0x080FC9F7} } ,
23343 { {0x4573F4BD, 0xE6EA59F1, 0xA863CA1B, 0x61F1B62A, 0xDEFDF4FE, 0xB6EF4956, 0x9E0E0537, 0x0219ED0C},
23344 {0xA334EA77, 0x972D4E73, 0x130A9BC8, 0x6597DFF0, 0x618DAFC1, 0xB607D142, 0xBE208B7E, 0x16D8392E} } } ,
23345 { { {0xB6070724, 0xCE82DA4B, 0x72D891B1, 0x4D2F964F, 0xD208A4E0, 0xD522E0C2, 0x9F58687C, 0x0117014C},
23346 {0x1F1E3329, 0x6A845FC9, 0x984DBC9B, 0x08222405, 0x8A7294A7, 0x95F7F340, 0x3C0362AE, 0x1AB1F896} } ,
23347 { {0x29593F99, 0x54E2AEC2, 0x21AD9F82, 0x2F0D0CA6, 0xD019A9AD, 0x96590CFD, 0x5CC11ABF, 0x1085EB5E},
23348 {0x4D13B341, 0x1E5BB03D, 0xF74CC806, 0x17A9D7E4, 0x56CC1CD7, 0x866A1FBE, 0xD2F52F8F, 0x17070825} } } } ;
23350 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3713 a000");
23351 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3714 a001");
23352 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3715 a010");
23353 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3716 a011");
23354 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3717 a100");
23355 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3718 a101");
23356 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3719 a110");
23357 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3720 a111");
23358 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3721 a200");
23359 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3722 a201");
23360 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3723 a210");
23361 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3724 a211");
23364 static const fp12_t var_a = { { { {0x50660AE9, 0x6DCD282D, 0x30ED1EF5, 0xCC8E4459, 0x444852D3, 0x8B8D16F9, 0xC0917F2B, 0x06579F58},
23365 {0x5FAADF8D, 0x16F3F9F2, 0x54DE4931, 0x5617EE57, 0xF604470A, 0x4F396891, 0xB2C26DDC, 0x1E1C8981} } ,
23366 { {0xE359797E, 0xE8C3C0E4, 0xA848D52C, 0x7B8BB55C, 0xC91759AD, 0xCDD49701, 0x0C493277, 0x0008B125},
23367 {0xB396638E, 0x7B76C0C8, 0x11C60705, 0x77C03EAB, 0x5A0AF259, 0xD272A6EE, 0xC954FC56, 0x1A910290} } } ,
23368 { { {0xFCC91C4F, 0x77A91ED6, 0xAB8A25A4, 0x56064BAA, 0x5BA04DA1, 0x67C58B04, 0x5B308B3D, 0x024F69A2},
23369 {0xBCBAF0A6, 0x04B619AC, 0x44F78DDD, 0xD2DDCB5F, 0x1186B740, 0xCF60DDB2, 0x26B4AF4A, 0x03C56F96} } ,
23370 { {0x48F48E28, 0x50AC7A68, 0xDEFB0DAB, 0x9A4B2E62, 0xD64E606F, 0xB8564859, 0xC37DA0D6, 0x041E5173},
23371 {0xC67C96CB, 0x8DC72493, 0x314A7D35, 0xD5989F15, 0x98C3632A, 0x4F075C64, 0x3FF3AA59, 0x1108084B} } } ,
23372 { { {0xB4DB97F0, 0x418AE4AE, 0x26583305, 0x61BDE68B, 0x5981DA71, 0xA439584B, 0x59290B74, 0x19790F3E},
23373 {0x5F703200, 0xA056E061, 0x5D32DB48, 0x3F2919A6, 0xADE70FEB, 0x4224D8D5, 0xC785F4C3, 0x08596E53} } ,
23374 { {0x6D186A84, 0xD5A44C52, 0xA81EA4E6, 0x3C3B5727, 0x3F573D1A, 0x0D12522F, 0xF13A15DE, 0x21C61FB5},
23375 {0x54264CBE, 0x1EBC4506, 0x8E0EF925, 0xC8912F40, 0x4CC04F24, 0x79C65FC8, 0x35951E4A, 0x12F45F5A} } } } ;
23376 static const fp12_t var_expected = { { { {0xAF99F52A, 0x3932D7D2, 0xCF12E11E, 0x9492BBA6, 0xBBB7AD34, 0x2EA73686, 0x7F6E80D6, 0x1ECBC529},
23377 {0xA0552086, 0x900C060D, 0xAB21B6E2, 0x0B0911A8, 0x09FBB8FE, 0x6AFAE4EE, 0x8D3D9225, 0x0706DB00} } ,
23378 { {0x1CA68695, 0xBE3C3F1B, 0x57B72AE6, 0xE5954AA3, 0x36E8A65A, 0xEC5FB67E, 0x33B6CD89, 0x251AB35D},
23379 {0x4C699C85, 0x2B893F37, 0xEE39F90E, 0xE960C154, 0xA5F50DAE, 0xE7C1A691, 0x76AB03AA, 0x0A9261F1} } } ,
23380 { { {0x0336E3C4, 0x2F56E129, 0x5475DA6F, 0x0B1AB455, 0xA45FB267, 0x526EC27B, 0xE4CF74C4, 0x22D3FADF},
23381 {0x43450F6D, 0xA249E653, 0xBB087236, 0x8E4334A0, 0xEE7948C7, 0xEAD36FCD, 0x194B50B6, 0x215DF4EC} } ,
23382 { {0xB70B71EB, 0x56538597, 0x2104F268, 0xC6D5D19D, 0x29B19F98, 0x01DE0526, 0x7C825F2B, 0x2105130E},
23383 {0x39836948, 0x1938DB6C, 0xCEB582DE, 0x8B8860EA, 0x673C9CDD, 0x6B2CF11B, 0x000C55A8, 0x141B5C37} } } ,
23384 { { {0x4B246823, 0x65751B51, 0xD9A7CD0E, 0xFF631974, 0xA67E2596, 0x15FAF534, 0xE6D6F48D, 0x0BAA5543},
23385 {0xA08FCE13, 0x06A91F9E, 0xA2CD24CB, 0x21F7E659, 0x5218F01D, 0x780F74AA, 0x787A0B3E, 0x1CC9F62E} } ,
23386 { {0x92E7958F, 0xD15BB3AD, 0x57E15B2C, 0x24E5A8D8, 0xC0A8C2EE, 0xAD21FB50, 0x4EC5EA23, 0x035D44CC},
23387 {0xABD9B355, 0x8843BAF9, 0x71F106EE, 0x988FD0BF, 0xB33FB0E3, 0x406DEDB7, 0x0A6AE1B7, 0x122F0528} } } } ;
23389 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3725 a000");
23390 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3726 a001");
23391 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3727 a010");
23392 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3728 a011");
23393 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3729 a100");
23394 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3730 a101");
23395 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3731 a110");
23396 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3732 a111");
23397 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3733 a200");
23398 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3734 a201");
23399 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3735 a210");
23400 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3736 a211");
23403 static const fp12_t var_a = { { { {0xE0A7723E, 0x4E0CF14F, 0xC9E114A6, 0xE8AD84BA, 0x2681B43B, 0x853A928D, 0xE2161CD0, 0x20898AE9},
23404 {0xB1FC1828, 0x8D094811, 0xC8783FD4, 0xE672F055, 0xB2942411, 0x1CBD13D2, 0x3D59A3F4, 0x071EDE74} } ,
23405 { {0xBABCBCBD, 0xE4992E6D, 0x2E978171, 0xA49D1615, 0xEA10DCE8, 0x6CC28A2D, 0x3FD326F9, 0x0DEA4650},
23406 {0xC3EE846B, 0xE91BB7CD, 0x5196F9CE, 0x56204E34, 0x5DF5D7E5, 0x6420A461, 0xD45CF5B8, 0x206A44E8} } } ,
23407 { { {0xE88EE98B, 0x7AF2B581, 0xBCE755E0, 0x442AA642, 0xAA49E08C, 0x4B7B4621, 0x9D86B093, 0x1E85FC87},
23408 {0x196554E4, 0x9CA80616, 0xAD67044D, 0x87A9295E, 0x088C9B26, 0x114CB417, 0x2FCE4313, 0x1E76CF8C} } ,
23409 { {0x982BBC3A, 0x84A024F9, 0x977EFFC8, 0x9CBACEE4, 0xC16FE20C, 0x5DDB4B16, 0x5291A6A7, 0x0F48E05B},
23410 {0x7E055F39, 0x0152F969, 0xA21886B3, 0x239CA203, 0xB3EB0208, 0x68B0F472, 0x04DAF2A9, 0x0F1CF7A1} } } ,
23411 { { {0x35453943, 0xED1F022D, 0x265EF0AE, 0xCE57F86D, 0xCE98C4FA, 0xF34BB7FF, 0xF3F999FB, 0x0ACDC560},
23412 {0xFF82CF0E, 0x5AB32F05, 0x34508A81, 0xB716B02E, 0x986050C6, 0xF10FDAF4, 0xC6F1C70A, 0x0C02FDCA} } ,
23413 { {0x6E035B69, 0xEBEE2078, 0x0D261F7D, 0x17CCF5F5, 0xAC7B407B, 0x6AF35AED, 0x95AF2A23, 0x076A2A3B},
23414 {0xEA6D8B02, 0x57709BF7, 0xA88098B8, 0x3F8BF37D, 0x36C095C2, 0x6D5403AB, 0xEC19CA85, 0x07C34F94} } } } ;
23415 static const fp12_t var_expected = { { { {0x1F588DD5, 0x58F30EB0, 0x361EEB6D, 0x78737B45, 0xD97E4BCC, 0x34F9BAF2, 0x5DE9E331, 0x0499D998},
23416 {0x4E03E7EB, 0x19F6B7EE, 0x3787C03F, 0x7AAE0FAA, 0x4D6BDBF6, 0x9D7739AD, 0x02A65C0D, 0x1E04860E} } ,
23417 { {0x45434356, 0xC266D192, 0xD1687EA1, 0xBC83E9EA, 0x15EF231F, 0x4D71C352, 0x002CD908, 0x17391E32},
23418 {0x3C117BA8, 0xBDE44832, 0xAE690644, 0x0B00B1CB, 0xA20A2823, 0x5613A91E, 0x6BA30A49, 0x04B91F99} } } ,
23419 { { {0x17711688, 0x2C0D4A7E, 0x4318AA33, 0x1CF659BD, 0x55B61F7C, 0x6EB9075E, 0xA2794F6E, 0x069D67FA},
23420 {0xE69AAB2F, 0x0A57F9E9, 0x5298FBC6, 0xD977D6A1, 0xF77364E1, 0xA8E79968, 0x1031BCEE, 0x06AC94F6} } ,
23421 { {0x67D443D9, 0x225FDB06, 0x6881004B, 0xC466311B, 0x3E901DFB, 0x5C590269, 0xED6E595A, 0x15DA8426},
23422 {0x81FAA0DA, 0xA5AD0696, 0x5DE77960, 0x3D845DFC, 0x4C14FE00, 0x5183590D, 0x3B250D58, 0x16066CE1} } } ,
23423 { { {0xCABAC6D0, 0xB9E0FDD2, 0xD9A10F64, 0x92C90792, 0x31673B0D, 0xC6E89580, 0x4C066605, 0x1A559F21},
23424 {0x007D3105, 0x4C4CD0FA, 0xCBAF7592, 0xAA0A4FD1, 0x679FAF41, 0xC924728B, 0x790E38F6, 0x192066B7} } ,
23425 { {0x91FCA4AA, 0xBB11DF87, 0xF2D9E095, 0x49540A0A, 0x5384BF8D, 0x4F40F292, 0xAA50D5DE, 0x1DB93A46},
23426 {0x15927511, 0x4F8F6408, 0x577F675B, 0x21950C82, 0xC93F6A46, 0x4CE049D4, 0x53E6357C, 0x1D6014ED} } } } ;
23428 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3737 a000");
23429 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3738 a001");
23430 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3739 a010");
23431 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3740 a011");
23432 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3741 a100");
23433 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3742 a101");
23434 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3743 a110");
23435 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3744 a111");
23436 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3745 a200");
23437 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3746 a201");
23438 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3747 a210");
23439 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3748 a211");
23442 static const fp12_t var_a = { { { {0x2FD358E1, 0x2B9E6324, 0x306DF1AE, 0x41B05CA1, 0x79404987, 0x795AAA1E, 0xCDE59762, 0x11124B02},
23443 {0xCB03A01F, 0xAE49D680, 0x84373D92, 0xEDEAD886, 0x4939A8D8, 0x12BB745F, 0x2A44D6A5, 0x0DD784FB} } ,
23444 { {0xA43683ED, 0x58E0E593, 0xB60CA5D7, 0x2C34A3D4, 0x9150D4A8, 0x2F3375A1, 0xEF5C98CC, 0x107E6EEB},
23445 {0x71FFC7E8, 0x15295D2F, 0x8D6D86E7, 0x0785F537, 0xCF23EE6E, 0x6C36284E, 0xF696E788, 0x03C50B29} } } ,
23446 { { {0x3C95B3C9, 0x259A8946, 0x037122FB, 0xF05803AC, 0x9326E769, 0x081BE210, 0x90B556FF, 0x031E8A2C},
23447 {0xE66809FD, 0xCD33AF84, 0xC6D678EE, 0x1D97ADD4, 0x04D1F0D6, 0x00828C1B, 0xC3BF132F, 0x04435365} } ,
23448 { {0xA30B500A, 0x6EF3E79C, 0xBBE94D1D, 0x294C2271, 0x5A1EFFC3, 0x1F8AADC0, 0x07BDADAD, 0x079D1FA4},
23449 {0x7A655E60, 0x16D6501F, 0x773270BA, 0xD1DE1D63, 0x655BDC68, 0xAA32447C, 0xC8423BB9, 0x08359E4B} } } ,
23450 { { {0xC63BE349, 0xCB65A679, 0xC4F9BBAF, 0xE9EE7907, 0x0545CC71, 0x8599736C, 0x67C48832, 0x0732D50E},
23451 {0xB807776E, 0x17DAB2AB, 0x239B7804, 0xAF0343A5, 0xAF76B4FF, 0x868BA041, 0xF9CC6CFF, 0x14AED0ED} } ,
23452 { {0xD21C4816, 0x20CC2F22, 0x44A7F3F4, 0x1A368688, 0xEF28403B, 0x1D370EB5, 0x06E98B9E, 0x1367A11A},
23453 {0x6D1F94B6, 0x8472FD1C, 0x8FD69FF6, 0xFC3874F6, 0xE03F7D68, 0x213C1227, 0xCB80020D, 0x10046A2A} } } } ;
23454 static const fp12_t var_expected = { { { {0xD02CA732, 0x7B619CDB, 0xCF920E65, 0x1F70A35E, 0x86BFB681, 0x40D9A361, 0x721A689F, 0x1411197F},
23455 {0x34FC5FF4, 0xF8B6297F, 0x7BC8C280, 0x73362779, 0xB6C6572F, 0xA778D920, 0x15BB295C, 0x174BDF87} } ,
23456 { {0x5BC97C26, 0x4E1F1A6C, 0x49F35A3C, 0x34EC5C2B, 0x6EAF2B60, 0x8B00D7DE, 0x50A36735, 0x14A4F596},
23457 {0x8E00382B, 0x91D6A2D0, 0x7292792C, 0x599B0AC8, 0x30DC119A, 0x4DFE2531, 0x49691879, 0x215E5958} } } ,
23458 { { {0xC36A4C4A, 0x816576B9, 0xFC8EDD18, 0x70C8FC53, 0x6CD9189E, 0xB2186B6F, 0xAF4AA902, 0x2204DA55},
23459 {0x1997F616, 0xD9CC507B, 0x39298724, 0x4389522B, 0xFB2E0F32, 0xB9B1C164, 0x7C40ECD2, 0x20E0111C} } ,
23460 { {0x5CF4B009, 0x380C1863, 0x4416B2F6, 0x37D4DD8E, 0xA5E10045, 0x9AA99FBF, 0x38425254, 0x1D8644DE},
23461 {0x859AA1B3, 0x9029AFE0, 0x88CD8F59, 0x8F42E29C, 0x9AA4239F, 0x10020903, 0x77BDC448, 0x1CEDC636} } } ,
23462 { { {0x39C41CCA, 0xDB9A5986, 0x3B064463, 0x773286F8, 0xFABA3396, 0x349ADA13, 0xD83B77CF, 0x1DF08F73},
23463 {0x47F888A5, 0x8F254D54, 0xDC64880F, 0xB21DBC5A, 0x50894B08, 0x33A8AD3E, 0x46339302, 0x10749394} } ,
23464 { {0x2DE3B7FD, 0x8633D0DD, 0xBB580C1F, 0x46EA7977, 0x10D7BFCD, 0x9CFD3ECA, 0x39167463, 0x11BBC368},
23465 {0x92E06B5D, 0x228D02E3, 0x7029601D, 0x64E88B09, 0x1FC0829F, 0x98F83B58, 0x747FFDF4, 0x151EFA57} } } } ;
23467 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3749 a000");
23468 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3750 a001");
23469 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3751 a010");
23470 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3752 a011");
23471 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3753 a100");
23472 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3754 a101");
23473 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3755 a110");
23474 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3756 a111");
23475 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3757 a200");
23476 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3758 a201");
23477 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3759 a210");
23478 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3760 a211");
23481 static const fp12_t var_a = { { { {0x34CB6950, 0xFC74D1FF, 0x9ECB0630, 0x8358BB88, 0xB5A9F0A6, 0x33FDDD00, 0xF966E1A2, 0x22A9163D},
23482 {0xA7096D91, 0xA04BBFEE, 0xC0A5373B, 0x46D90CA6, 0x340D1947, 0xFEF7223E, 0xB349643D, 0x16000196} } ,
23483 { {0x99589701, 0xEF303C22, 0x7863B816, 0xFE8339BE, 0x36C8CE19, 0x6E12E28F, 0x14EB3FFB, 0x078CA6DA},
23484 {0xB3802E14, 0xAA9D8070, 0xFD140264, 0x330569A8, 0x293E14CA, 0xFD88BBAF, 0xE72A9238, 0x1BD52AE9} } } ,
23485 { { {0xEF9B6B32, 0xA76169A4, 0xB8DE06A0, 0x12464602, 0x8E763168, 0x3C63B650, 0xADE02908, 0x25190A74},
23486 {0x1D6C8C53, 0xB23A3A5C, 0xC8CB6433, 0x91CD26B7, 0x7B0B34F8, 0x93EC0A35, 0xDB8B530A, 0x07FBA508} } ,
23487 { {0x610149BC, 0x5F0CE454, 0x81703035, 0x8B4390E6, 0x1968348B, 0x0B914CD1, 0x19C351C1, 0x112FF2C4},
23488 {0xB3B0E789, 0x9A9CB038, 0xE85C81A2, 0x1CB79F39, 0x2757E5E9, 0x971136A6, 0x048C20D6, 0x03F30693} } } ,
23489 { { {0x5D5A68B8, 0x18E77542, 0x395F2A1E, 0x43C02C57, 0x75E169F7, 0xCB5259D2, 0x6C6C46D2, 0x136B2E65},
23490 {0x81008824, 0x1EFBB248, 0x62964762, 0x4EEEB28E, 0x6A7C6F8A, 0xFE4CF2C5, 0x1756BE6B, 0x0D6022D9} } ,
23491 { {0x91AD8172, 0xF16D380E, 0x85548CBD, 0xBE135E02, 0x7F88E66C, 0x395517CC, 0x3C6544A9, 0x0286C0ED},
23492 {0xD5AAE954, 0x5C573E08, 0x7AD17A89, 0x7F24C690, 0xC21F0F1B, 0x77C99845, 0xC9678FE3, 0x11D8938D} } } } ;
23493 static const fp12_t var_expected = { { { {0xCB3496C3, 0xAA8B2E00, 0x6134F9E2, 0xDDC84477, 0x4A560F61, 0x8636707F, 0x46991E5F, 0x027A4E44},
23494 {0x58F69282, 0x06B44011, 0x3F5AC8D8, 0x1A47F359, 0xCBF2E6C1, 0xBB3D2B41, 0x8CB69BC3, 0x0F2362EB} } ,
23495 { {0x66A76912, 0xB7CFC3DD, 0x879C47FC, 0x629DC641, 0xC93731EE, 0x4C216AF0, 0x2B14C006, 0x1D96BDA8},
23496 {0x4C7FD1FF, 0xFC627F8F, 0x02EBFDAE, 0x2E1B9657, 0xD6C1EB3E, 0xBCAB91D0, 0x58D56DC8, 0x094E3998} } } ,
23497 { { {0x106494E1, 0xFF9E965B, 0x4721F972, 0x4EDAB9FD, 0x7189CEA0, 0x7DD0972F, 0x921FD6F9, 0x000A5A0D},
23498 {0xE29373C0, 0xF4C5C5A3, 0x37349BDF, 0xCF53D948, 0x84F4CB0F, 0x2648434A, 0x6474ACF7, 0x1D27BF79} } ,
23499 { {0x9EFEB657, 0x47F31BAB, 0x7E8FCFDE, 0xD5DD6F19, 0xE697CB7C, 0xAEA300AE, 0x263CAE40, 0x13F371BE},
23500 {0x4C4F188A, 0x0C634FC7, 0x17A37E71, 0x446960C6, 0xD8A81A1F, 0x232316D9, 0x3B73DF2B, 0x21305DEF} } } ,
23501 { { {0xA2A5975B, 0x8E188ABD, 0xC6A0D5F5, 0x1D60D3A8, 0x8A1E9611, 0xEEE1F3AD, 0xD393B92E, 0x11B8361C},
23502 {0x7EFF77EF, 0x88044DB7, 0x9D69B8B1, 0x12324D71, 0x9583907E, 0xBBE75ABA, 0x28A94195, 0x17C341A9} } ,
23503 { {0x6E527EA1, 0xB592C7F1, 0x7AAB7355, 0xA30DA1FD, 0x8077199B, 0x80DF35B3, 0x039ABB58, 0x229CA395},
23504 {0x2A5516BF, 0x4AA8C1F7, 0x852E858A, 0xE1FC396F, 0x3DE0F0EC, 0x426AB53A, 0x7698701E, 0x134AD0F4} } } } ;
23506 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3761 a000");
23507 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3762 a001");
23508 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3763 a010");
23509 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3764 a011");
23510 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3765 a100");
23511 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3766 a101");
23512 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3767 a110");
23513 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3768 a111");
23514 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3769 a200");
23515 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3770 a201");
23516 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3771 a210");
23517 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3772 a211");
23520 static const fp12_t var_a = { { { {0xE806FA37, 0x40E90924, 0x4AADEF06, 0x2775237F, 0x543492B8, 0xC660D185, 0x5E37412F, 0x0FEF80D5},
23521 {0x3B6C1F17, 0x878A8478, 0xB542AB67, 0xCBD81E6D, 0xEBFED5AE, 0xABD63840, 0x10E697EE, 0x00569832} } ,
23522 { {0x9147B937, 0x0788663A, 0xADC9C274, 0xFD39826B, 0x51BDE0D0, 0xC5BE297D, 0xE7B929D9, 0x004BC14B},
23523 {0x813E48AA, 0x9559D7BB, 0xD949233C, 0xA8AB6527, 0xE3C0642F, 0x0FE1677D, 0xE0F035E4, 0x2151ED48} } } ,
23524 { { {0xF8F58476, 0xDA6AA5BA, 0x135D9052, 0xC18D9BFB, 0x12CDCF6D, 0x3F6C6441, 0xAB625460, 0x1C1EDD2D},
23525 {0xB4281969, 0x4F8377C2, 0xEAC1C7FC, 0x6E868262, 0xE5C57733, 0x6C9F48C7, 0x2EE98DEF, 0x041A53A4} } ,
23526 { {0xCA0DF5C2, 0x7DB399F2, 0x21BEBA45, 0x9E317FB2, 0x76AE3E54, 0xF1B47A7C, 0xC09A27F1, 0x0D491ECE},
23527 {0x200F7ADE, 0xC7D24709, 0x2E51F1C5, 0x94DFB347, 0x71F746DC, 0xA10C28BD, 0x6FCEAA0E, 0x06FF50F5} } } ,
23528 { { {0xF4CFFB9B, 0x67959730, 0xBC36AB2E, 0x0FAFCB3D, 0x981D99D1, 0x7A91C9D7, 0x7B04F3FA, 0x0B98F684},
23529 {0x53833B9F, 0x2F2A64AB, 0x29B92FA2, 0x3CD7E8A4, 0x4198BF42, 0x52F16550, 0x98835271, 0x168B9E9B} } ,
23530 { {0xA3920179, 0xEA69DD2A, 0x09547581, 0x575D07AD, 0xD617D662, 0xA24F70ED, 0x70D702D0, 0x22ACD8A3},
23531 {0x1994D6F9, 0x1B979C47, 0xA1260C80, 0x5C73649B, 0x541482E2, 0xE148E55B, 0x9F208E88, 0x1196C500} } } } ;
23532 static const fp12_t var_expected = { { { {0x17F905DC, 0x6616F6DB, 0xB552110D, 0x39ABDC80, 0xABCB6D50, 0xF3D37BFA, 0xE1C8BED1, 0x1533E3AC},
23533 {0xC493E0FC, 0x1F757B87, 0x4ABD54AC, 0x9548E192, 0x14012A59, 0x0E5E153F, 0x2F196813, 0x24CCCC50} } ,
23534 { {0x6EB846DC, 0x9F7799C5, 0x52363D9F, 0x63E77D94, 0xAE421F37, 0xF4762402, 0x5846D627, 0x24D7A336},
23535 {0x7EC1B769, 0x11A62844, 0x26B6DCD7, 0xB8759AD8, 0x1C3F9BD8, 0xAA52E602, 0x5F0FCA1D, 0x03D17739} } } ,
23536 { { {0x070A7B9D, 0xCC955A45, 0xECA26FC0, 0x9F936404, 0xED32309A, 0x7AC7E93E, 0x949DABA1, 0x09048754},
23537 {0x4BD7E6AA, 0x577C883D, 0x153E3817, 0xF29A7D9D, 0x1A3A88D4, 0x4D9504B8, 0x11167212, 0x210910DE} } ,
23538 { {0x35F20A51, 0x294C660D, 0xDE4145CE, 0xC2EF804D, 0x8951C1B3, 0xC87FD303, 0x7F65D80F, 0x17DA45B3},
23539 {0xDFF08535, 0xDF2DB8F6, 0xD1AE0E4D, 0xCC414CB8, 0x8E08B92B, 0x192824C2, 0xD03155F3, 0x1E24138C} } } ,
23540 { { {0x0B300478, 0x3F6A68CF, 0x43C954E5, 0x517134C2, 0x67E26637, 0x3FA283A8, 0xC4FB0C07, 0x198A6DFD},
23541 {0xAC7CC474, 0x77D59B54, 0xD646D071, 0x2449175B, 0xBE6740C6, 0x6742E82F, 0xA77CAD90, 0x0E97C5E6} } ,
23542 { {0x5C6DFE9A, 0xBC9622D5, 0xF6AB8A91, 0x09C3F852, 0x29E829A6, 0x17E4DC92, 0xCF28FD31, 0x02768BDE},
23543 {0xE66B291A, 0x8B6863B8, 0x5ED9F393, 0x04AD9B64, 0xABEB7D26, 0xD8EB6824, 0xA0DF7178, 0x138C9F81} } } } ;
23545 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3773 a000");
23546 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3774 a001");
23547 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3775 a010");
23548 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3776 a011");
23549 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3777 a100");
23550 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3778 a101");
23551 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3779 a110");
23552 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3780 a111");
23553 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3781 a200");
23554 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3782 a201");
23555 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3783 a210");
23556 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3784 a211");
23559 static const fp12_t var_a = { { { {0x44919457, 0x6BB66053, 0x6C36EE20, 0xC9FCC67D, 0xCDABCAC6, 0x7285DC7B, 0xB526D8A4, 0x077273CF},
23560 {0x809D4AE4, 0x5D63D47A, 0x9A81B4E7, 0x2B5BA377, 0xE6D0CD36, 0xE8235E90, 0xB849E6F7, 0x18166C85} } ,
23561 { {0x84BCABBB, 0x8449FFF8, 0x8CE136D1, 0x1E1C9135, 0x59C9D070, 0x600A467F, 0x5F35A996, 0x1FA5CC00},
23562 {0xD5180AB0, 0x142045F0, 0x5ABDAAD9, 0xFC037F8B, 0x74FC21E6, 0x1415A223, 0x98755338, 0x1840E590} } } ,
23563 { { {0x508A834A, 0x9F3E1457, 0x4D8CC078, 0xF3298E82, 0x9911C268, 0x3AD051F4, 0x82C70627, 0x0FF0F3D4},
23564 {0xA46CFD7D, 0x18BAA548, 0x652854CD, 0x514DA023, 0xBC5ED25E, 0xCA9B45DB, 0x7446E271, 0x23543DDF} } ,
23565 { {0xD5C5FED0, 0x041671F4, 0xD4F0B4BD, 0xF5A7EE1B, 0xE8A64664, 0x3FA2AE6D, 0xB46CBB09, 0x01DC72B2},
23566 {0xBBBC9411, 0xFC883559, 0x80BC8C4F, 0x201F2CF1, 0xBA28510E, 0x64632F19, 0x41D30BD7, 0x19FBF383} } } ,
23567 { { {0x815FB4C1, 0x2DC3BAF2, 0x859CEC63, 0xEA8923DB, 0xE4FC771F, 0xD16F6C98, 0x4AD6DD1A, 0x1DA224F0},
23568 {0x26BAF787, 0x945CAB83, 0xB16E22E9, 0xA143B980, 0xACC465FA, 0x8177B05C, 0x35FAC1A6, 0x1A3BBA2C} } ,
23569 { {0xFF3C7904, 0x73B82A2F, 0x07403ACD, 0xA7FBD3C6, 0x6AA8D7B0, 0xC61D2614, 0x192617E8, 0x107F3656},
23570 {0x33733F7B, 0x8E900828, 0x3C7F55AC, 0xD0738997, 0x0DA62D14, 0xE51784DB, 0xC4B12FD2, 0x1693D725} } } } ;
23571 static const fp12_t var_expected = { { { {0xBB6E6BBC, 0x3B499FAC, 0x93C911F3, 0x97243982, 0x32543541, 0x47AE7104, 0x8AD9275D, 0x1DB0F0B2},
23572 {0x7F62B52F, 0x499C2B85, 0x657E4B2C, 0x35C55C88, 0x192F32D2, 0xD210EEEF, 0x87B61909, 0x0D0CF7FC} } ,
23573 { {0x7B435458, 0x22B60007, 0x731EC942, 0x43046ECA, 0xA6362F98, 0x5A2A0700, 0xE0CA566B, 0x057D9881},
23574 {0x2AE7F563, 0x92DFBA0F, 0xA542553A, 0x651D8074, 0x8B03DE21, 0xA61EAB5C, 0xA78AACC9, 0x0CE27EF1} } } ,
23575 { { {0xAF757CC9, 0x07C1EBA8, 0xB2733F9B, 0x6DF7717D, 0x66EE3D9F, 0x7F63FB8B, 0xBD38F9DA, 0x153270AD},
23576 {0x5B930296, 0x8E455AB7, 0x9AD7AB46, 0x0FD35FDC, 0x43A12DAA, 0xEF9907A4, 0xCBB91D8F, 0x01CF26A2} } ,
23577 { {0x2A3A0143, 0xA2E98E0B, 0x2B0F4B56, 0x6B7911E4, 0x1759B9A3, 0x7A919F12, 0x8B9344F8, 0x2346F1CF},
23578 {0x44436C02, 0xAA77CAA6, 0x7F4373C3, 0x4101D30E, 0x45D7AEFA, 0x55D11E66, 0xFE2CF42A, 0x0B2770FE} } } ,
23579 { { {0x7EA04B52, 0x793C450D, 0x7A6313B0, 0x7697DC24, 0x1B0388E8, 0xE8C4E0E7, 0xF52922E6, 0x07813F91},
23580 {0xD945088C, 0x12A3547C, 0x4E91DD2A, 0xBFDD467F, 0x533B9A0D, 0x38BC9D23, 0x0A053E5B, 0x0AE7AA56} } ,
23581 { {0x00C3870F, 0x3347D5D0, 0xF8BFC546, 0xB9252C39, 0x95572857, 0xF417276B, 0x26D9E818, 0x14A42E2C},
23582 {0xCC8CC098, 0x186FF7D7, 0xC380AA67, 0x90AD7668, 0xF259D2F3, 0xD51CC8A4, 0x7B4ED02E, 0x0E8F8D5C} } } } ;
23584 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3785 a000");
23585 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3786 a001");
23586 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3787 a010");
23587 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3788 a011");
23588 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3789 a100");
23589 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3790 a101");
23590 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3791 a110");
23591 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3792 a111");
23592 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3793 a200");
23593 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3794 a201");
23594 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3795 a210");
23595 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3796 a211");
23598 static const fp12_t var_a = { { { {0x3E09893D, 0x4AFDB355, 0x3DFF4917, 0xA6879608, 0x972F9A74, 0xBE596D0D, 0x753B1D90, 0x11225352},
23599 {0x6E23C905, 0x331B5071, 0xA7C933DE, 0x844D0590, 0x9C19E8EE, 0xDBC4B4C4, 0x63562D7F, 0x1DDDFC19} } ,
23600 { {0x69044763, 0xCD398C47, 0x4EC1D570, 0x1FFE7206, 0xC8D9453F, 0xAD00FC05, 0xF4036132, 0x03704776},
23601 {0xA5039BF1, 0x849C21FE, 0xB71400FE, 0x0FB17C0E, 0x5615A948, 0xA97CE12F, 0x47FD6800, 0x09989CEA} } } ,
23602 { { {0xEFD388F8, 0xC5C91876, 0x9D806703, 0xE19F1F19, 0x997FA54F, 0xB58AFFD5, 0xABCEF07A, 0x08AB0622},
23603 {0xE519E384, 0x766D3826, 0x6F6283B0, 0xF8572AA7, 0x7708D10C, 0x1B1E595A, 0x25C1427D, 0x02CDEBFE} } ,
23604 { {0x7C52800E, 0xF9C93F13, 0xD09A7EA5, 0xD4E60A98, 0xE85A0F8C, 0x4D400DA9, 0x6E988ED6, 0x1B7639BC},
23605 {0x7A097B54, 0xCFB3CEDD, 0x174049A5, 0xF095814E, 0x7CAB5E07, 0x97E73639, 0xF3175D85, 0x1D79406A} } } ,
23606 { { {0xFC5F2918, 0xEA281D38, 0xCD203519, 0x4E7D2634, 0xD2D6FF9E, 0xE4892FA6, 0xD35EFA7B, 0x0789858B},
23607 {0xF2E29378, 0xF76CE477, 0x3116E323, 0x697FB3AC, 0x22D012D4, 0xDEFBF2F6, 0xE517E1C7, 0x17C2A50A} } ,
23608 { {0x9EB15F3E, 0x15BA1B63, 0xB72649B7, 0x037076DA, 0xB45F084B, 0x8B080B67, 0x6F6C70E4, 0x18EB47C2},
23609 {0x19F46677, 0xF1826AC8, 0x84781063, 0x6BCF83AD, 0x67316E24, 0xF1C3E65F, 0xF0D37636, 0x232FFC5C} } } } ;
23610 static const fp12_t var_expected = { { { {0xC1F676D6, 0x5C024CAA, 0xC200B6FC, 0xBA9969F7, 0x68D06593, 0xFBDAE072, 0xCAC4E270, 0x1401112F},
23611 {0x91DC370E, 0x73E4AF8E, 0x5836CC35, 0xDCD3FA6F, 0x63E61719, 0xDE6F98BB, 0xDCA9D281, 0x07456868} } ,
23612 { {0x96FBB8B0, 0xD9C673B8, 0xB13E2AA2, 0x41228DF9, 0x3726BAC9, 0x0D33517A, 0x4BFC9ECF, 0x21B31D0B},
23613 {0x5AFC6422, 0x2263DE01, 0x48EBFF15, 0x516F83F1, 0xA9EA56C0, 0x10B76C50, 0xF8029801, 0x1B8AC797} } } ,
23614 { { {0x102C771B, 0xE136E789, 0x627F990F, 0x7F81E0E6, 0x66805AB8, 0x04A94DAA, 0x94310F87, 0x1C785E5F},
23615 {0x1AE61C8F, 0x3092C7D9, 0x909D7C63, 0x68C9D558, 0x88F72EFB, 0x9F15F425, 0x1A3EBD84, 0x22557884} } ,
23616 { {0x83AD8005, 0xAD36C0EC, 0x2F65816D, 0x8C3AF567, 0x17A5F07B, 0x6CF43FD6, 0xD167712B, 0x09AD2AC5},
23617 {0x85F684BF, 0xD74C3122, 0xE8BFB66D, 0x708B7EB1, 0x8354A200, 0x224D1746, 0x4CE8A27C, 0x07AA2417} } } ,
23618 { { {0x03A0D6FB, 0xBCD7E2C7, 0x32DFCAF9, 0x12A3D9CB, 0x2D29006A, 0xD5AB1DD9, 0x6CA10585, 0x1D99DEF6},
23619 {0x0D1D6C9B, 0xAF931B88, 0xCEE91CEF, 0xF7A14C53, 0xDD2FED33, 0xDB385A89, 0x5AE81E39, 0x0D60BF77} } ,
23620 { {0x614EA0D5, 0x9145E49C, 0x48D9B65C, 0x5DB08925, 0x4BA0F7BD, 0x2F2C4218, 0xD0938F1D, 0x0C381CBF},
23621 {0xE60B999C, 0xB57D9537, 0x7B87EFAF, 0xF5517C52, 0x98CE91E3, 0xC8706720, 0x4F2C89CA, 0x01F36825} } } } ;
23623 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3797 a000");
23624 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3798 a001");
23625 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3799 a010");
23626 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3800 a011");
23627 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3801 a100");
23628 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3802 a101");
23629 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3803 a110");
23630 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3804 a111");
23631 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3805 a200");
23632 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3806 a201");
23633 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3807 a210");
23634 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3808 a211");
23637 static const fp12_t var_a = { { { {0xCEA178E6, 0x724072EE, 0xF413AE2B, 0xEF6B6097, 0x2B3312D7, 0x5E4E9F86, 0x17AC5B93, 0x0955F3C6},
23638 {0xFD96FF9E, 0xB2D75167, 0x1576E134, 0xC5675CE5, 0x874373CE, 0xDE66496A, 0x09A5F1D7, 0x10A77221} } ,
23639 { {0x39007DB2, 0xF2830460, 0x29F38258, 0x69A0C433, 0x1430F578, 0x1D4B46DC, 0x9FFA3B9D, 0x17F3CDAC},
23640 {0xEB061E99, 0xC8597E15, 0x28E9CB2B, 0xD9ECA7A4, 0xFF0356BE, 0xF8694E4C, 0xE57CB08A, 0x2189E2CD} } } ,
23641 { { {0xCDE1E671, 0x185AA8B3, 0x3BC28204, 0xCA37D884, 0x8BA66278, 0x35BDE5B3, 0x9D6EC0C7, 0x0CEBF6B4},
23642 {0x6F261EF4, 0x090F9E84, 0x42C7B46E, 0x732C68D2, 0x8DC9E16B, 0xE6FC20C8, 0xFA2EB2AD, 0x119AF64A} } ,
23643 { {0xB570073C, 0x4ABFCE00, 0x4FC2E755, 0x0CC6C4A7, 0xEE2724A1, 0x171AD913, 0x25B2151D, 0x17CDE21B},
23644 {0x56590C1D, 0x7A2CE402, 0x2971ED3C, 0x98C321E7, 0x2D14CD7D, 0xA941B929, 0x3CCC5DB4, 0x132DAD7A} } } ,
23645 { { {0x5FBCF111, 0x26E1901C, 0xCAC7C296, 0x8E1A06A2, 0xDA56AE1B, 0x9705EE55, 0x4E4D682D, 0x156673E6},
23646 {0xAF4FB071, 0xB61BA8CB, 0xE2022534, 0x76D4F4A0, 0x1C5DD10B, 0x0C8A9A20, 0xE0EAFDFE, 0x1A5F8F3C} } ,
23647 { {0x7889FF32, 0x672F2119, 0x518AC641, 0x9C9E991F, 0x2CB706F1, 0xA3DEB4C8, 0xEBF79A64, 0x19F53380},
23648 {0xC4D6C561, 0x6B92E8FD, 0xB0A34CB8, 0x0D3C094A, 0xD8E69C84, 0xD2C22FF0, 0x5BF5F55E, 0x19A2D073} } } } ;
23649 static const fp12_t var_expected = { { { {0x315E872D, 0x34BF8D11, 0x0BEC51E8, 0x71B59F68, 0xD4CCED30, 0x5BE5ADF9, 0x2853A46E, 0x1BCD70BC},
23650 {0x02690075, 0xF428AE98, 0xEA891EDE, 0x9BB9A31A, 0x78BC8C39, 0xDBCE0415, 0x365A0E29, 0x147BF261} } ,
23651 { {0xC6FF8261, 0xB47CFB9F, 0xD60C7DBA, 0xF7803BCC, 0xEBCF0A8F, 0x9CE906A3, 0xA005C464, 0x0D2F96D5},
23652 {0x14F9E17A, 0xDEA681EA, 0xD71634E7, 0x8734585B, 0x00FCA949, 0xC1CAFF33, 0x5A834F76, 0x039981B4} } } ,
23653 { { {0x321E19A2, 0x8EA5574C, 0xC43D7E0F, 0x96E9277B, 0x74599D8F, 0x847667CC, 0xA2913F3A, 0x18376DCD},
23654 {0x90D9E11F, 0x9DF0617B, 0xBD384BA5, 0xEDF4972D, 0x72361E9C, 0xD3382CB7, 0x45D14D53, 0x13886E37} } ,
23655 { {0x4A8FF8D7, 0x5C4031FF, 0xB03D18BE, 0x545A3B58, 0x11D8DB67, 0xA319746C, 0x1A4DEAE4, 0x0D558267},
23656 {0xA9A6F3F6, 0x2CD31BFD, 0xD68E12D7, 0xC85DDE18, 0xD2EB328A, 0x10F29456, 0x0333A24D, 0x11F5B708} } } ,
23657 { { {0xA0430F02, 0x801E6FE3, 0x35383D7D, 0xD306F95D, 0x25A951EC, 0x232E5F2A, 0xF1B297D4, 0x0FBCF09B},
23658 {0x50B04FA2, 0xF0E45734, 0x1DFDDADE, 0xEA4C0B5F, 0xE3A22EFC, 0xADA9B35F, 0x5F150203, 0x0AC3D545} } ,
23659 { {0x877600E1, 0x3FD0DEE6, 0xAE7539D2, 0xC48266E0, 0xD348F916, 0x165598B7, 0x5408659D, 0x0B2E3101},
23660 {0x3B293AB2, 0x3B6D1702, 0x4F5CB35B, 0x53E4F6B5, 0x27196384, 0xE7721D8F, 0xE40A0AA2, 0x0B80940E} } } } ;
23662 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3809 a000");
23663 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3810 a001");
23664 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3811 a010");
23665 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3812 a011");
23666 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3813 a100");
23667 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3814 a101");
23668 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3815 a110");
23669 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3816 a111");
23670 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3817 a200");
23671 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3818 a201");
23672 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3819 a210");
23673 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3820 a211");
23676 static const fp12_t var_a = { { { {0xEE21E93C, 0xC669A0C3, 0xC9F4859E, 0x9903DE47, 0x017E03B2, 0x7D62DF72, 0x91E73079, 0x1A2E3D3E},
23677 {0x25A93987, 0xCBA3B279, 0x1BD67518, 0x784243AA, 0x1D8D97C3, 0xA70DBF1A, 0xA3829CCB, 0x00578B5B} } ,
23678 { {0xEC247173, 0x04B35681, 0x57752BF3, 0x1C7E4EE2, 0xB561D035, 0xD66C22BE, 0x17236C59, 0x1C2EF3F6},
23679 {0x9D3E8001, 0xCDC96C25, 0xE5C795CC, 0x2BCC28FD, 0xE8947B99, 0xFB33B1F9, 0xAB9CDDF1, 0x16DCC360} } } ,
23680 { { {0xE156A46A, 0xD4A4502D, 0x604D9BBD, 0x3F19E643, 0xE769DB2D, 0x2C3BF6B6, 0x10CE9F47, 0x20DFC36F},
23681 {0x399CFFF6, 0xE1F7055C, 0x16A250B6, 0xE3AB1885, 0x777CC299, 0x56F14E03, 0xAA1582F3, 0x110AA6D1} } ,
23682 { {0x7971AD0E, 0xDA5460D7, 0x89E10DDE, 0x934366BE, 0x72BF0646, 0xC484A98B, 0xD27FB66A, 0x1C860E60},
23683 {0x47248D2B, 0xCCAF0885, 0xF0D8A922, 0x5459CA94, 0x46CBE58F, 0x2030809E, 0x94D830C2, 0x04CF2023} } } ,
23684 { { {0xA1F33C92, 0xD16E8285, 0xB709291D, 0x7E32438A, 0x747C34AD, 0xE35DC97D, 0xF188ECA7, 0x014821B6},
23685 {0x5466FEDF, 0x7C099217, 0xFA7BADEF, 0xB8160228, 0x12E2734B, 0x5D8B1C3A, 0x1E3623F4, 0x226AA652} } ,
23686 { {0x85F183A1, 0x353DA758, 0x0E617567, 0xB0346E64, 0x4A7C24D9, 0x9635EF00, 0x044CBE51, 0x1C4157B4},
23687 {0x2CEFD3B6, 0xC7C92C89, 0xF9851252, 0xEBD59664, 0xD9CAF89B, 0x0F57A399, 0x7E388D51, 0x034C5446} } } } ;
23688 static const fp12_t var_expected = { { { {0x11DE16D7, 0xE0965F3C, 0x360B7A74, 0xC81D21B8, 0xFE81FC55, 0x3CD16E0D, 0xAE18CF88, 0x0AF52743},
23689 {0xDA56C68C, 0xDB5C4D86, 0xE4298AFA, 0xE8DEBC55, 0xE2726844, 0x13268E65, 0x9C7D6336, 0x24CBD926} } ,
23690 { {0x13DB8EA0, 0xA24CA97E, 0xA88AD420, 0x44A2B11D, 0x4A9E2FD3, 0xE3C82AC1, 0x28DC93A7, 0x08F4708C},
23691 {0x62C18012, 0xD93693DA, 0x1A386A46, 0x3554D702, 0x176B846F, 0xBF009B86, 0x9463220F, 0x0E46A121} } } ,
23692 { { {0x1EA95BA9, 0xD25BAFD2, 0x9FB26455, 0x220719BC, 0x189624DB, 0x8DF856C9, 0x2F3160BA, 0x0443A113},
23693 {0xC663001D, 0xC508FAA3, 0xE95DAF5C, 0x7D75E77A, 0x88833D6E, 0x6342FF7C, 0x95EA7D0E, 0x1418BDB0} } ,
23694 { {0x868E5305, 0xCCAB9F28, 0x761EF234, 0xCDDD9941, 0x8D40F9C1, 0xF5AFA3F4, 0x6D804996, 0x089D5621},
23695 {0xB8DB72E8, 0xDA50F77A, 0x0F2756F0, 0x0CC7356B, 0xB9341A79, 0x9A03CCE1, 0xAB27CF3F, 0x2054445E} } } ,
23696 { { {0x5E0CC381, 0xD5917D7A, 0x48F6D6F5, 0xE2EEBC75, 0x8B83CB5A, 0xD6D68402, 0x4E771359, 0x23DB42CB},
23697 {0xAB990134, 0x2AF66DE8, 0x05845224, 0xA90AFDD7, 0xED1D8CBC, 0x5CA93145, 0x21C9DC0D, 0x02B8BE30} } ,
23698 { {0x7A0E7C72, 0x71C258A7, 0xF19E8AAC, 0xB0EC919B, 0xB583DB2E, 0x23FE5E7F, 0x3BB341B0, 0x08E20CCE},
23699 {0xD3102C5D, 0xDF36D376, 0x067AEDC0, 0x754B699B, 0x2635076C, 0xAADCA9E6, 0xC1C772B0, 0x21D7103B} } } } ;
23701 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3821 a000");
23702 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3822 a001");
23703 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3823 a010");
23704 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3824 a011");
23705 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3825 a100");
23706 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3826 a101");
23707 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3827 a110");
23708 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3828 a111");
23709 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3829 a200");
23710 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3830 a201");
23711 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3831 a210");
23712 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3832 a211");
23715 static const fp12_t var_a = { { { {0x94E4C8A2, 0x56C1DFB5, 0xF5956095, 0xC4D9D058, 0x912BABF0, 0x43F549A3, 0x9E8D0A89, 0x02DA6AA6},
23716 {0xDD18E920, 0xCE6E90E9, 0xF12CC2DA, 0xE843B09C, 0xD708BB5B, 0x44E10A0D, 0x67ECB905, 0x12167973} } ,
23717 { {0x7A7B8140, 0xCEBCEE54, 0x10BAA2E0, 0x76349272, 0x25583374, 0x6206360E, 0xD4BD682F, 0x18F3842A},
23718 {0xB4DA4BBF, 0x093F442C, 0x27326714, 0xA0FA59AB, 0x89684C26, 0xF2E54C7D, 0x50BBDB95, 0x16C086F1} } } ,
23719 { { {0x246A147B, 0x78C13D55, 0x43922344, 0xB8D22B4B, 0x250199B9, 0xA803E9A7, 0xFD4CB375, 0x01E3F141},
23720 {0x3D991909, 0x51602661, 0x2132E208, 0x96A243C4, 0xADCFEE5C, 0x7CAEC37E, 0x6DB1901E, 0x24F112DA} } ,
23721 { {0xC0392098, 0x604536BA, 0xB5E6430E, 0xEBAB29B1, 0xEC265D5E, 0x3A6146B7, 0x6CFAC5E1, 0x1071504F},
23722 {0x45F675A4, 0xA7DED65C, 0xA4F4B6FD, 0x1782DD0F, 0x3F0DCD21, 0x25D995E0, 0xF4D51ACC, 0x183ECDF9} } } ,
23723 { { {0xB9185CAB, 0x95B1FEEF, 0xC9D2AE5B, 0xC0A9CBDF, 0x189B2401, 0xDBDB780F, 0x762770E9, 0x1F42FC4A},
23724 {0xDAA09487, 0x00BF0692, 0xB3BC72A6, 0xACF5A1AC, 0x7CA90791, 0xBA1DB66B, 0x98744C5F, 0x1406A2FA} } ,
23725 { {0xBDAA0BAD, 0xA56F9B39, 0x25159075, 0x16854E00, 0x86D08F36, 0x31932B8E, 0xF21F9BD8, 0x00D6FF0E},
23726 {0x4925D706, 0xE914AB1C, 0x9698F78F, 0xFE30B7EE, 0xE2B595E3, 0xD13767AF, 0x507128AA, 0x07BC2BF8} } } } ;
23727 static const fp12_t var_expected = { { { {0x6B1B3771, 0x503E204A, 0x0A6A9F7E, 0x9C472FA7, 0x6ED45417, 0x763F03DC, 0xA172F578, 0x2248F9DB},
23728 {0x22E716F3, 0xD8916F16, 0x0ED33D38, 0x78DD4F63, 0x28F744AC, 0x75534372, 0xD81346FC, 0x130CEB0E} } ,
23729 { {0x85847ED3, 0xD84311AB, 0xEF455D32, 0xEAEC6D8D, 0xDAA7CC93, 0x582E1771, 0x6B4297D2, 0x0C2FE057},
23730 {0x4B25B454, 0x9DC0BBD3, 0xD8CD98FF, 0xC026A654, 0x7697B3E1, 0xC74F0102, 0xEF44246B, 0x0E62DD90} } } ,
23731 { { {0xDB95EB98, 0x2E3EC2AA, 0xBC6DDCCF, 0xA84ED4B4, 0xDAFE664E, 0x123063D8, 0x42B34C8C, 0x233F7340},
23732 {0xC266E70A, 0x559FD99E, 0xDECD1E0B, 0xCA7EBC3B, 0x523011AB, 0x3D858A01, 0xD24E6FE3, 0x003251A7} } ,
23733 { {0x3FC6DF7B, 0x46BAC945, 0x4A19BD05, 0x7575D64E, 0x13D9A2A9, 0x7FD306C8, 0xD3053A20, 0x14B21432},
23734 {0xBA098A6F, 0xFF2129A3, 0x5B0B4915, 0x499E22F0, 0xC0F232E7, 0x945AB79F, 0x4B2AE535, 0x0CE49688} } } ,
23735 { { {0x46E7A368, 0x114E0110, 0x362D51B8, 0xA0773420, 0xE764DC06, 0xDE58D570, 0xC9D88F17, 0x05E06837},
23736 {0x255F6B8C, 0xA640F96D, 0x4C438D6D, 0xB42B5E53, 0x8356F876, 0x00169714, 0xA78BB3A2, 0x111CC187} } ,
23737 { {0x4255F466, 0x019064C6, 0xDAEA6F9E, 0x4A9BB1FF, 0x792F70D2, 0x88A121F1, 0x4DE06429, 0x244C6573},
23738 {0xB6DA290D, 0xBDEB54E3, 0x69670883, 0x62F04811, 0x1D4A6A24, 0xE8FCE5D0, 0xEF8ED756, 0x1D673889} } } } ;
23740 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3833 a000");
23741 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3834 a001");
23742 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3835 a010");
23743 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3836 a011");
23744 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3837 a100");
23745 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3838 a101");
23746 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3839 a110");
23747 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3840 a111");
23748 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3841 a200");
23749 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3842 a201");
23750 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3843 a210");
23751 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3844 a211");
23754 static const fp12_t var_a = { { { {0xBAD806DE, 0xADFB7329, 0xAF5F44B1, 0xC8F110EE, 0x52AB64F8, 0x967FFC15, 0x7372A463, 0x13A57E66},
23755 {0x1EBDFDCE, 0x520A1440, 0xCFB1CF38, 0x49B5C6F6, 0x2D9DF9C0, 0x6FB1852A, 0xD0983689, 0x22C1E671} } ,
23756 { {0xDBA054D9, 0x8EF43B85, 0x8AA77C30, 0x073A6A76, 0xDB501215, 0x2E7060B3, 0x8F3CEC06, 0x109CE70C},
23757 {0x271F724B, 0xA1F6E7D8, 0x269D64DE, 0x131E1DF9, 0x5AF3C9B4, 0xABC218A3, 0x0DEA8B0B, 0x0421FBD7} } } ,
23758 { { {0x8FE65EF5, 0x342B4036, 0x1C75D53E, 0xF075558D, 0xBCF77913, 0x48D1BF22, 0xDA78979E, 0x21978775},
23759 {0x714F96FB, 0xD6690284, 0x9DAA35A1, 0x039014CE, 0xA7450EC2, 0x69CAB97F, 0x3CF286C4, 0x0BADF9CC} } ,
23760 { {0x8142B113, 0x2FB41727, 0x0B34E225, 0x5F9CCF2F, 0xD3B71FBF, 0x89DA7166, 0x2B53862F, 0x194338D0},
23761 {0x486F4161, 0x1A3D377B, 0x7B35F8D8, 0x0519B5A4, 0x8FEA6F53, 0xE3454B67, 0x13114010, 0x0FEBDAFD} } } ,
23762 { { {0xA0D25099, 0xBBF4B82F, 0x3A83AC59, 0xC9B805ED, 0x3D5AA07C, 0xC109B911, 0xD5777EE9, 0x054AD0A6},
23763 {0x398D32BC, 0x94A6F968, 0x45F4B047, 0xA0EFA9F0, 0xD2D13DF2, 0x3224140C, 0x85CFAD66, 0x16B7ECC6} } ,
23764 { {0x180AACDC, 0x41B2F270, 0xCF84A73B, 0x2723444F, 0x57298106, 0x57CDBF99, 0xED5D8974, 0x15B062D7},
23765 {0x1375B14E, 0x6744E7B3, 0xBF48C676, 0x76E868EC, 0x6A5449F8, 0xCC4F9EE4, 0x492B7D9B, 0x043E21D7} } } } ;
23766 static const fp12_t var_expected = { { { {0x75B00DA9, 0xB4F6E653, 0x5EBE894F, 0x30C121DD, 0xA556C9E9, 0x72CBAAAA, 0xA6E548C5, 0x0227984A},
23767 {0x3D7BFB89, 0xFD142880, 0x9F639E5C, 0x324A8DED, 0x5B3BF378, 0x252EBCD4, 0x61306D11, 0x20606861} } ,
23768 { {0xB740A9B2, 0x1DE8770B, 0x154EF861, 0x0E74D4ED, 0xB6A0242A, 0x5CE0C167, 0x1E79D80C, 0x2139CE19},
23769 {0x4E3EE496, 0x43EDCFB0, 0x4D3AC9BD, 0x263C3BF2, 0xB5E79368, 0x57843146, 0x1BD51617, 0x0843F7AE} } } ,
23770 { { {0x1FCCBDD7, 0xC156806D, 0x38EBAA68, 0x7FC9AB1A, 0x79EEF21F, 0xD76F30C5, 0x74F12F3A, 0x1E0BAA69},
23771 {0xE29F2DF6, 0xACD20508, 0x3B546B43, 0x0720299D, 0x4E8A1D84, 0xD39572FF, 0x79E50D88, 0x175BF398} } ,
23772 { {0x02856213, 0xB8682E4F, 0x1669C436, 0x5E189E5E, 0xA76E3F76, 0x5980954D, 0x16A70C5D, 0x0D630D1E},
23773 {0x90DE82C2, 0x347A6EF6, 0xF66BF1B0, 0x0A336B48, 0x1FD4DEA6, 0xC68A96CF, 0x26228021, 0x1FD7B5FA} } } ,
23774 { { {0x41A4A132, 0x77E9705F, 0x750758B3, 0x93700BDA, 0x7AB540F9, 0x82137222, 0xAAEEFDD3, 0x0A95A14D},
23775 {0x731A6565, 0x824DF2D0, 0x8BE9607B, 0xE0BE53E0, 0xA5A27BDC, 0xAA13DA99, 0xCB9F5ACA, 0x084C750A} } ,
23776 { {0x301559A5, 0xDC65E4E0, 0x9F094E62, 0xED25889F, 0xAE530203, 0xF56731B2, 0x9ABB12E6, 0x063D612D},
23777 {0x26EB629C, 0xCE89CF66, 0x7E918CEC, 0xEDD0D1D9, 0xD4A893F0, 0x989F3DC8, 0x9256FB37, 0x087C43AE} } } } ;
23779 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3845 a000");
23780 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3846 a001");
23781 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3847 a010");
23782 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3848 a011");
23783 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3849 a100");
23784 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3850 a101");
23785 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3851 a110");
23786 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3852 a111");
23787 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3853 a200");
23788 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3854 a201");
23789 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3855 a210");
23790 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3856 a211");
23793 static const fp12_t var_a = { { { {0x56811B23, 0xB72949C0, 0x2F2E176B, 0x768FA89D, 0xBEC05224, 0x6ECF86B3, 0x4A9F8660, 0x02D357F0},
23794 {0xE07F3381, 0x0D2E3703, 0xEE8FFD0B, 0x1EF6AE48, 0x96048DCE, 0x08CE161D, 0xD3EC9DE2, 0x192CF6E0} } ,
23795 { {0x06C6EC04, 0x10143705, 0xFF97EB95, 0x0BB297AF, 0x4EDD27DF, 0xC2931893, 0xBF45F26A, 0x0B05DA47},
23796 {0xF0631A56, 0x790A0DFD, 0x187271C7, 0x798134E2, 0xD27DB1FC, 0x50AAC9B5, 0xD9F08240, 0x063F3A7A} } } ,
23797 { { {0x182B1416, 0xE3C3D2A8, 0x244E107B, 0xFAF7F8CA, 0x252D60B8, 0x66B452A8, 0x6217DF4A, 0x183EEFD2},
23798 {0xCE048610, 0x1E15B07F, 0xC1327AE8, 0xD1A0AC96, 0xDC346244, 0x32BE2BE2, 0xCE7C1651, 0x1A2B3529} } ,
23799 { {0xB698632A, 0x6B27D778, 0xC39F2FAB, 0xCB0333C6, 0xA01FC6F2, 0x80B46812, 0x47EC240D, 0x16DDB271},
23800 {0x47433A54, 0x7935A6D6, 0xAF009054, 0x67ECFF91, 0xB0477227, 0x6A7561C4, 0x298D6295, 0x10C7EBA2} } } ,
23801 { { {0x4E5C5B60, 0xCCE1109F, 0x41EFE8BF, 0xEBFEF3E6, 0x5CB506B4, 0x769F3D79, 0x44F9C2BA, 0x0087F6EE},
23802 {0x69CD980D, 0xEF0EB3AC, 0xE645129C, 0x193BD8AC, 0x8B4DDFC8, 0xAA042F10, 0xDE26ED6C, 0x0FAB0368} } ,
23803 { {0x8DF88D36, 0x88582F8E, 0x430281C4, 0x5AC6AD36, 0x36506EBF, 0x1B7E2881, 0xEE247693, 0x19B7A283},
23804 {0x81EEAE44, 0x9D0CBBBB, 0xACF71615, 0x38CB67B5, 0xEB269E56, 0xA1427496, 0xA2A3C81D, 0x0536C77F} } } } ;
23805 static const fp12_t var_expected = { { { {0xAD023646, 0x6E529380, 0x5E5C2ED7, 0xED1F513A, 0x7D80A448, 0xDD9F0D67, 0x953F0CC0, 0x05A6AFE0},
23806 {0xC0FE66EF, 0x735C6E07, 0xDD1FFA02, 0xDCCC5C91, 0x2C091B93, 0x5767DEBB, 0x67D93BC2, 0x0D36893F} } ,
23807 { {0x0D8DD808, 0x20286E0A, 0xFF2FD72A, 0x17652F5F, 0x9DBA4FBE, 0x85263126, 0x7E8BE4D5, 0x160BB48F},
23808 {0xE0C634AC, 0xF2141BFB, 0x30E4E38E, 0xF30269C4, 0xA4FB63F8, 0xA155936B, 0xB3E10480, 0x0C7E74F5} } } ,
23809 { { {0x30562819, 0x2087A550, 0x489C20E4, 0x94CEF194, 0x4A5AC169, 0x133457D0, 0x842FBE93, 0x0B5A7B22},
23810 {0x9C090C0D, 0x952B60FF, 0x8264F5BC, 0x4220592D, 0xB868C481, 0xAB480A45, 0x5CF82CA0, 0x0F3305D1} } ,
23811 { {0x6D30C641, 0x2F4FAEF1, 0x873E5F43, 0x34E5678D, 0x403F8DDD, 0x473482A5, 0x4FD84819, 0x08980060},
23812 {0x8E8674A8, 0xF26B4DAC, 0x5E0120A8, 0xCFD9FF23, 0x608EE44E, 0xD4EAC389, 0x531AC52A, 0x218FD744} } } ,
23813 { { {0x9CB8B6C0, 0x99C2213E, 0x83DFD17F, 0xD7FDE7CC, 0xB96A0D69, 0xED3E7AF2, 0x89F38574, 0x010FEDDC},
23814 {0xD39B301A, 0xDE1D6758, 0xCC8A2539, 0x3277B159, 0x169BBF90, 0x54085E21, 0xBC4DDAD9, 0x1F5606D1} } ,
23815 { {0x1BF11A59, 0x69B05F1D, 0x86050375, 0x546C5A6C, 0x6CA0DD76, 0x7CC80382, 0x9C48ED24, 0x0E4BE085},
23816 {0x03DD5C88, 0x3A197777, 0x59EE2C2B, 0x7196CF6B, 0xD64D3CAC, 0x4284E92D, 0x4547903B, 0x0A6D8EFF} } } } ;
23818 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3857 a000");
23819 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3858 a001");
23820 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3859 a010");
23821 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3860 a011");
23822 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3861 a100");
23823 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3862 a101");
23824 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3863 a110");
23825 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3864 a111");
23826 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3865 a200");
23827 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3866 a201");
23828 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3867 a210");
23829 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3868 a211");
23832 static const fp12_t var_a = { { { {0x60F59754, 0xE9C2F904, 0xAE51F707, 0x6805EC45, 0x4B830D53, 0x0EE1CEFE, 0xDA5183B1, 0x008FE222},
23833 {0x1B5F5763, 0x73768A7B, 0x85E61E8F, 0x02046EBB, 0x8CCD40B7, 0x5424CD70, 0x2A05587F, 0x237E447A} } ,
23834 { {0xF5AFAB3C, 0x903BE888, 0xA659A3D3, 0x189D5B97, 0xF7E222AB, 0x8D0E5B2E, 0x1CB5B5DE, 0x0C92272C},
23835 {0x0515708D, 0xB57C8050, 0x370EC423, 0xAA5394B8, 0x6B246FB4, 0xAC2DB733, 0xEC46C758, 0x000F8C18} } } ,
23836 { { {0xB72AB151, 0xF6CD20F9, 0x92E93620, 0x76969E2B, 0xD8D4DEC8, 0x42B6E70C, 0x4A2291E9, 0x1430D7F6},
23837 {0x4B132427, 0x84491EFB, 0xC6E55A4B, 0x2A0DF92D, 0xC5C733AD, 0xB98B5953, 0x9BA637C7, 0x03DE0F96} } ,
23838 { {0x55DDF975, 0xE387D81A, 0x167439D9, 0x69B4E2E6, 0xCB5F7A2F, 0xA504BD10, 0x395BB8EC, 0x12C9ECF8},
23839 {0x3B3A48CF, 0x7A147A49, 0x78AF8764, 0xC27E0E90, 0x18DD1C84, 0x9EEE1B46, 0x2EFF9F71, 0x016BA602} } } ,
23840 { { {0xBB848840, 0x94891840, 0x165FFC48, 0x63843DC9, 0xEDFBA0DF, 0x837A4BEB, 0x3D61874C, 0x185A0045},
23841 {0x6217D1FE, 0x4D2A964B, 0xD0C8C6D8, 0xA7A5AF99, 0x20E33006, 0x9126046D, 0x590E61CC, 0x02415836} } ,
23842 { {0x15F3EC1A, 0xB617E769, 0xB953F44B, 0x4448C932, 0x9B623486, 0xEB5CC50F, 0xACC6E11F, 0x0EAADBA0},
23843 {0x8CB55333, 0x38089C8B, 0x96FAEDC7, 0x303588DF, 0xDB81B705, 0xA50D23DC, 0x52CA8D72, 0x0A254D18} } } } ;
23844 static const fp12_t var_expected = { { { {0xC1EB2EA8, 0xD385F208, 0x5CA3EE0F, 0xD00BD88B, 0x97061AA6, 0x1DC39DFC, 0xB4A30762, 0x011FC445},
23845 {0x36BEAEB3, 0x3FED14F6, 0x0BCC3D0B, 0xA2E7DD77, 0x199A8165, 0xEE154D61, 0x140AB0FC, 0x21D92472} } ,
23846 { {0xEB5F5678, 0x2077D111, 0x4CB347A7, 0x313AB72F, 0xEFC44556, 0x1A1CB65D, 0x396B6BBD, 0x19244E58},
23847 {0x0A2AE11A, 0x6AF900A0, 0x6E1D8847, 0x54A72970, 0xD648DF69, 0x585B6E66, 0xD88D8EB1, 0x001F1831} } } ,
23848 { { {0x6E55628F, 0x469A41F3, 0x25D26C2E, 0x8C0C3C57, 0xB1A9BD88, 0xCB398099, 0x544523D0, 0x033E4B6A},
23849 {0x9626484E, 0x08923DF6, 0x8DCAB497, 0x541BF25B, 0x8B8E675A, 0x7316B2A7, 0x374C6F8F, 0x07BC1F2D} } ,
23850 { {0xABBBF2D7, 0x200FB034, 0x2CE873A0, 0x7248C5CC, 0x96BEF456, 0x8FD52CA1, 0x32B771D7, 0x0070756E},
23851 {0x7674919E, 0xF428F492, 0xF15F0EC8, 0x84FC1D20, 0x31BA3909, 0x3DDC368C, 0x5DFF3EE3, 0x02D74C04} } } ,
23852 { { {0x7709106D, 0x82123081, 0x2CBFF87D, 0x65E77B92, 0xDBF741B6, 0x4CC04A57, 0x3AC30E97, 0x0B909C08},
23853 {0xC42FA3FC, 0x9A552C96, 0xA1918DB0, 0x4F4B5F33, 0x41C6600D, 0x224C08DA, 0xB21CC399, 0x0482B06C} } ,
23854 { {0x2BE7D834, 0x6C2FCED2, 0x72A7E897, 0x88919265, 0x36C4690C, 0xD6B98A1F, 0x598DC23F, 0x1D55B741},
23855 {0x196AA666, 0x70113917, 0x2DF5DB8E, 0x606B11BF, 0xB7036E0A, 0x4A1A47B9, 0xA5951AE5, 0x144A9A30} } } } ;
23857 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3869 a000");
23858 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3870 a001");
23859 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3871 a010");
23860 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3872 a011");
23861 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3873 a100");
23862 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3874 a101");
23863 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3875 a110");
23864 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3876 a111");
23865 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3877 a200");
23866 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3878 a201");
23867 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3879 a210");
23868 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3880 a211");
23871 static const fp12_t var_a = { { { {0xD2DFB384, 0x11A4D486, 0x628E9A42, 0xDC4989AC, 0x725E55F0, 0xFB9E6597, 0x9BF834AC, 0x1166822D},
23872 {0xC76C9F5D, 0xF75FFB0A, 0xCDC897EF, 0xD928B93C, 0x855AD69B, 0xD595DB9B, 0xCCB2E700, 0x15AE4AC0} } ,
23873 { {0x9EB76AC8, 0xDAE9ECAE, 0xB82EB32A, 0x66A60DEF, 0x4E9BD406, 0x151205DD, 0x1F99AEE5, 0x1B225A25},
23874 {0x5FB26FE5, 0x39306D05, 0xBAC28CF3, 0x9E64BBF1, 0x9BD7019B, 0xE874BD51, 0x3E198F98, 0x19D66EF5} } } ,
23875 { { {0x666C3722, 0xAAEF0B7E, 0x9E870CC8, 0xF74CDF1F, 0x4D76E877, 0x4A612C4C, 0x4CC5A62B, 0x172A38CC},
23876 {0xE2E82E87, 0xB6D2DABA, 0xE3D21C68, 0xB1898F8E, 0xDBFC4134, 0x10F14798, 0x5C7D6775, 0x21B95C6F} } ,
23877 { {0x5745049F, 0x622297ED, 0x3B6FB725, 0x7646B17E, 0xCCCD3CA7, 0x7D0A26CF, 0x786B3EC0, 0x14142A05},
23878 {0x1C30C33B, 0x000929C1, 0x0C8F68C8, 0x0B0B2F01, 0x40374BA0, 0xAB68C3DF, 0x1BD02F40, 0x08CB7C8A} } } ,
23879 { { {0xDEAE3F46, 0x25609A4E, 0xF28EA4D3, 0x51BD4DFB, 0x68D1559C, 0x10A669D4, 0x7799316E, 0x0E5675F0},
23880 {0x1B358269, 0x2211E79E, 0x3B88A875, 0xE9464161, 0x0A2D6B30, 0x27325A8E, 0xB1CE4ED2, 0x19FB11F9} } ,
23881 { {0xA80A300B, 0x3F084945, 0x69B3C99E, 0x804B506D, 0xFED146AC, 0x07E5EBCA, 0xE0CADDBF, 0x1FE470EF},
23882 {0x2C02299B, 0x94B2E1AF, 0xB49A5DF9, 0x3E7A1252, 0xB38D48F9, 0x76968861, 0x9148534C, 0x1D75F6DA} } } } ;
23883 static const fp12_t var_expected = { { { {0xA5BF6708, 0x2349A90D, 0xC51D3484, 0xB8931358, 0xE4BCABE1, 0xF73CCB2E, 0x37F06959, 0x22CD045B},
23884 {0x8ED93EA7, 0x47BFF615, 0x9B912FCC, 0x51307279, 0x0AB5AD2F, 0xF0F769B7, 0x5965CDFF, 0x063930FF} } ,
23885 { {0x3D6ED57D, 0x0ED3D95D, 0x705D6642, 0x6C2B1BDF, 0x9D37A804, 0x6FEFBE3A, 0xFF335DC8, 0x11214FC7},
23886 {0xBF64DFB7, 0xCB60DA0A, 0x758519D2, 0xDBA877E3, 0x37AE032E, 0x16B52D23, 0x3C331F30, 0x0E897968} } } ,
23887 { { {0xCCD86E31, 0xAEDE16FC, 0x3D0E197D, 0x8D78BE3F, 0x9AEDD0E7, 0xDA8E0B18, 0x598B4C54, 0x09310D16},
23888 {0xC5D05CFB, 0xC6A5B575, 0xC7A438BD, 0x01F21F1D, 0xB7F88261, 0x67AE41B1, 0x78FACEE8, 0x1E4F545C} } ,
23889 { {0xAE8A092B, 0x1D452FDA, 0x76DF6E37, 0x8B6C62FC, 0x999A7946, 0x3FE0001F, 0xB0D67D7F, 0x0304EF88},
23890 {0x38618676, 0x00125382, 0x191ED190, 0x16165E02, 0x806E9740, 0x56D187BE, 0x37A05E81, 0x1196F914} } } ,
23891 { { {0xBD5C7E8C, 0x4AC1349D, 0xE51D49A6, 0xA37A9BF7, 0xD1A2AB38, 0x214CD3A8, 0xEF3262DC, 0x1CACEBE0},
23892 {0x366B04BF, 0x9D23CF3C, 0x771150D6, 0x716B82C2, 0x145AD659, 0x9430679C, 0x239C9DA2, 0x0ED2BF71} } ,
23893 { {0x50146003, 0xD710928B, 0xD3679328, 0x9F75A0DA, 0xFDA28D50, 0x55978A15, 0x8195BB7C, 0x1AA57D5D},
23894 {0x58045323, 0x8265C35E, 0x6934BBDF, 0x1BD324A5, 0x671A91EA, 0x32F8C343, 0xE290A697, 0x15C88932} } } } ;
23896 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3881 a000");
23897 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3882 a001");
23898 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3883 a010");
23899 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3884 a011");
23900 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3885 a100");
23901 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3886 a101");
23902 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3887 a110");
23903 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3888 a111");
23904 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3889 a200");
23905 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3890 a201");
23906 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3891 a210");
23907 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3892 a211");
23910 static const fp12_t var_a = { { { {0xA37FDB5F, 0xC20EE3E6, 0x851CAC57, 0x020BA166, 0xAA11BDF1, 0xEB740BA4, 0x063A7CD6, 0x14480232},
23911 {0xDBCEF30D, 0x194E9A94, 0xFD3D80FA, 0xD37BCF13, 0xFAE17C4F, 0x5A6DF41F, 0x72772879, 0x04B0BD25} } ,
23912 { {0xFAC98390, 0x8506FE5A, 0x6CCD63D2, 0x2B34B0D9, 0xCB935DF2, 0x0F5278AC, 0x3E3390E1, 0x1600115E},
23913 {0xF6CFB8C5, 0x84F0A1AD, 0xDAD49332, 0xCC4D099D, 0xDB5BF3D5, 0x181EDD36, 0xC84CFE05, 0x1270163E} } } ,
23914 { { {0x1B0BB5DF, 0x253732A1, 0x81DC172A, 0x559E7C0C, 0xFCEC7CA6, 0x4C9A1FC1, 0x9F6189CD, 0x03448369},
23915 {0x890730EA, 0x685ED863, 0x50FDC1B0, 0x31B57855, 0x93A62F3D, 0x6205BFCA, 0x48BFE5DE, 0x0116E566} } ,
23916 { {0xB499EDE0, 0x95AB2B5C, 0x6AC3DE99, 0xDB465491, 0x1B131BFF, 0x60497149, 0xFC1C9A2C, 0x1A5C7791},
23917 {0xE21436DA, 0xA02A8F3E, 0xA5E0DA16, 0x71D2044B, 0xA0B658F4, 0x44D5994F, 0x671F2105, 0x06968823} } } ,
23918 { { {0xB0D1D03D, 0x3F3D1FC3, 0x0CAF2C38, 0x5BA5663E, 0x452D4D87, 0x1931EB6C, 0x6BBDC167, 0x031DBDEE},
23919 {0x8E043439, 0x5DBD9008, 0x5D834FC1, 0xAF320FFA, 0xBE992380, 0x676BAF3F, 0x1B6128D7, 0x10FB5FBF} } ,
23920 { {0x3EE4F285, 0xA3AAA31A, 0x8CCF97F4, 0x88D50B5D, 0xD763DD66, 0x841EB86B, 0x80EB0AD9, 0x0CDCF139},
23921 {0x5920900C, 0xD96C0B85, 0x3E151F56, 0x3F2C0B02, 0xEB4682CB, 0xE2CE49EC, 0x98746120, 0x227EA598} } } } ;
23922 static const fp12_t var_expected = { { { {0x46FFB6AB, 0xDD1DC7CD, 0x0A39589B, 0xA2F642CD, 0x54237BD9, 0x1CB3C9C9, 0xCC74F9AC, 0x036C9FE1},
23923 {0xB79DE61A, 0x329D3529, 0xFA7B01F4, 0xA6F79E27, 0xF5C2F89F, 0xB4DBE83F, 0xE4EE50F2, 0x09617A4A} } ,
23924 { {0xF593070D, 0x630DFCB5, 0xD99AC791, 0xF54861B2, 0x9726BBDB, 0x6470A3D9, 0x3C6721C0, 0x06DCBE3A},
23925 {0xED9F718A, 0x09E1435B, 0xB5A92665, 0x989A133B, 0xB6B7E7AB, 0x303DBA6D, 0x9099FC0A, 0x24E02C7D} } } ,
23926 { { {0x36176BBE, 0x4A6E6542, 0x03B82E54, 0xAB3CF819, 0xF9D8F94C, 0x99343F83, 0x3EC3139A, 0x068906D3},
23927 {0x120E61D4, 0xD0BDB0C7, 0xA1FB8360, 0x636AF0AA, 0x274C5E7A, 0xC40B7F95, 0x917FCBBC, 0x022DCACC} } ,
23928 { {0x6933DBAD, 0x845656B9, 0xD587BD1F, 0x556BA922, 0x362637F7, 0x065E9512, 0xB8393457, 0x0F958AA1},
23929 {0xC4286DB4, 0x40551E7D, 0x4BC1B42D, 0xE3A40897, 0x416CB1E8, 0x89AB329F, 0xCE3E420A, 0x0D2D1046} } } ,
23930 { { {0x61A3A07A, 0x7E7A3F87, 0x195E5870, 0xB74ACC7C, 0x8A5A9B0E, 0x3263D6D8, 0xD77B82CE, 0x063B7BDC},
23931 {0x1C086872, 0xBB7B2011, 0xBB069F82, 0x5E641FF4, 0x7D324701, 0xCED75E7F, 0x36C251AE, 0x21F6BF7E} } ,
23932 { {0x7DC9E50A, 0x47554634, 0x199F2FE9, 0x11AA16BB, 0xAEC7BACD, 0x083D70D7, 0x01D615B3, 0x19B9E273},
23933 {0xB2412005, 0x0BD8170A, 0x7C2A3E9A, 0x1D371604, 0xD68D058E, 0x0B684659, 0xF0E8C240, 0x1FD9E6AE} } } } ;
23935 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3893 a000");
23936 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3894 a001");
23937 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3895 a010");
23938 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3896 a011");
23939 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3897 a100");
23940 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3898 a101");
23941 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3899 a110");
23942 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3900 a111");
23943 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3901 a200");
23944 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3902 a201");
23945 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3903 a210");
23946 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3904 a211");
23949 static const fp12_t var_a = { { { {0xCAA73D69, 0xCBA3EE55, 0x4FA82A70, 0x18C9DD89, 0x6DB058D2, 0x64962E1B, 0x92EEFD61, 0x10C996D1},
23950 {0x50BF3CD7, 0x09876075, 0x4D41B7FC, 0xF12C485F, 0x636E39DE, 0xC4CF249F, 0xD38C8C7A, 0x0CD44CA5} } ,
23951 { {0x0168E01E, 0xEEDA75C1, 0xFA5F1A41, 0x476189FE, 0xE5AD6065, 0x19B6B6DF, 0xB4FC46B6, 0x080D3B3B},
23952 {0xC2155776, 0x0B68D7F0, 0xCD7DCDE9, 0xD04C1403, 0xA349412C, 0x7A0CD2F5, 0x4175E425, 0x14220291} } } ,
23953 { { {0xCFB5D85A, 0x4A14F4D7, 0x7210F6FA, 0x892F6B3E, 0x5D685770, 0x716760B2, 0x3B8B8FFD, 0x016909FA},
23954 {0x3A05CFF4, 0x5E80344F, 0x465C232E, 0x070810E3, 0x686BF1AD, 0x61999920, 0x97E1F2B5, 0x1B1AF141} } ,
23955 { {0x63370E80, 0xC237D2A2, 0xDC164FC5, 0xC580F05E, 0x302D5E9C, 0x4AF10B06, 0x7E9F9128, 0x0E85F969},
23956 {0x85EC3B84, 0xB86F3427, 0x7AD94358, 0xDB44D6D8, 0xB08F131F, 0x07DADC0C, 0x4BBD18BA, 0x06963703} } } ,
23957 { { {0x2A7801DA, 0x405CF446, 0x9C63C5FE, 0x6379B464, 0xFB5AA8C9, 0x3BD65714, 0x501D505E, 0x0092447D},
23958 {0xB177A7B5, 0x700DEB21, 0x70AD398D, 0x950ADAEA, 0xB76BBB2F, 0x93C5AD17, 0x5179CA86, 0x13CBDB53} } ,
23959 { {0xCFB8148C, 0xD9DFEA9E, 0x59CAA0F9, 0x09656A6E, 0x9D31223C, 0x2C241AF2, 0x0618973C, 0x1E2896B0},
23960 {0x0A708641, 0x207C06A4, 0x6D9B2FCD, 0x768B96D7, 0xFB7DF838, 0x292E143B, 0x9E5E80C5, 0x14D02478} } } } ;
23961 static const fp12_t var_expected = { { { {0x954E7AD2, 0x9747DCAB, 0x9F5054E1, 0x3193BB12, 0xDB60B1A4, 0xC92C5C36, 0x25DDFAC2, 0x21932DA3},
23962 {0xA17E79AE, 0x130EC0EA, 0x9A836FF8, 0xE25890BE, 0xC6DC73BD, 0x899E493E, 0xA71918F5, 0x19A8994B} } ,
23963 { {0x02D1C03C, 0xDDB4EB82, 0xF4BE3483, 0x8EC313FD, 0xCB5AC0CA, 0x336D6DBF, 0x69F88D6C, 0x101A7677},
23964 {0x842AAED9, 0x6FD1AFE1, 0x9AFB9BBE, 0x3F772807, 0x46928251, 0x39E5586B, 0x42EBC849, 0x0320A0A0} } } ,
23965 { { {0x9F6BB0B4, 0x9429E9AF, 0xE421EDF4, 0x125ED67C, 0xBAD0AEE1, 0xE2CEC164, 0x77171FFA, 0x02D213F4},
23966 {0x740B9FD5, 0x1600689E, 0x8CB84649, 0xACEF21C6, 0xD0D7E351, 0x08FEE4C0, 0xEFC3E569, 0x11127E00} } ,
23967 { {0xC66E1D00, 0x846FA544, 0xB82C9F8B, 0x8B01E0BD, 0x605ABD39, 0x95E2160C, 0xFD3F2250, 0x1D0BF2D2},
23968 {0x0BD87708, 0x70DE684F, 0xF5B286B1, 0xB689ADB0, 0x611E263F, 0x0FB5B819, 0x977A3174, 0x0D2C6E06} } } ,
23969 { { {0x54F003B4, 0x80B9E88C, 0x38C78BFC, 0xC6F368C9, 0xF6B55192, 0x77ACAE29, 0xA03AA0BC, 0x012488FA},
23970 {0x62EF4F57, 0x391BD643, 0xE15A7307, 0xC8F4B5D4, 0x6ED77656, 0x6D570CAF, 0x62F3950B, 0x02745224} } ,
23971 { {0x9F702905, 0x0CBFD53D, 0xB39541E0, 0xB1A9D4DC, 0x3A62446F, 0x9E13E865, 0xCC312E76, 0x172DC8DD},
23972 {0x14E10C6F, 0x99F80D48, 0xDB365F86, 0x8BF62DAE, 0xF6FBF068, 0x9827DAF7, 0xFCBD0188, 0x047CE46E} } } } ;
23974 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3905 a000");
23975 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3906 a001");
23976 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3907 a010");
23977 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3908 a011");
23978 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3909 a100");
23979 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3910 a101");
23980 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3911 a110");
23981 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3912 a111");
23982 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3913 a200");
23983 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3914 a201");
23984 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3915 a210");
23985 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3916 a211");
23988 static const fp12_t var_a = { { { {0x40BF5987, 0x676C8703, 0xF751C6B0, 0xAFDC88A6, 0x31A26B6C, 0xD5EE056D, 0xF722A137, 0x0B08B0B1},
23989 {0x1F8CB4FB, 0xA038F68D, 0xF5C10F96, 0x02B9F3FB, 0x37DE5AA8, 0x2A17FAF8, 0x67DC5ADD, 0x1AF260E9} } ,
23990 { {0xAAA6072F, 0x6715D6A3, 0x9A842C4C, 0x0877B434, 0x161F2701, 0x4632E68F, 0xB69DF60E, 0x15E9924F},
23991 {0xBA3F904B, 0x0828F693, 0xCDEA0660, 0x3EDEFEED, 0x6A0D4C90, 0x8020A6D2, 0x61DC7A4D, 0x231D9B63} } } ,
23992 { { {0x7BAF7536, 0xE75A7A0D, 0xA9BFC708, 0xCA2BF8A7, 0xE76B9CCA, 0x3E2A2B4F, 0x990B8029, 0x19DC040E},
23993 {0xEB8B1A9A, 0x00AFFDEE, 0xFBDA0F82, 0xF35ED664, 0xD1C53B15, 0x7F5166AF, 0xC20B0E4E, 0x091145EE} } ,
23994 { {0x5E0FB01D, 0xAC4070C6, 0xC783E0B6, 0xD843B792, 0x826DAF2E, 0x3691FC4D, 0x755CCC6B, 0x136396AD},
23995 {0xFCCE3E7C, 0xF3B69267, 0xC4A262F1, 0x3261EC46, 0xE8CAA02E, 0x4C77CD6B, 0xBE2F0FAE, 0x06AD1A1B} } } ,
23996 { { {0x41C19F15, 0xF55D3119, 0xDBC4E88E, 0xA7516851, 0x04FA2AAA, 0xFD04C196, 0x9E3F8BEC, 0x0F24D292},
23997 {0x7D941FAA, 0x83C480FB, 0xACEDE31C, 0x76717AF7, 0x6CB9CD29, 0x776EF3EC, 0x8A77BA4C, 0x04B4395A} } ,
23998 { {0x5255C60D, 0x83EB3D74, 0x083AB549, 0xCE571535, 0xC9A85FCE, 0x4120425B, 0xEA733B06, 0x1938CA19},
23999 {0x39657D32, 0xE808749F, 0x78527831, 0x1688463C, 0x5AD799AE, 0x17664B18, 0x5BC6B527, 0x06D56D7A} } } } ;
24000 static const fp12_t var_expected = { { { {0x817EB30E, 0xCED90E06, 0xEEA38D60, 0x5FB9114D, 0x6344D6D9, 0xABDC0ADA, 0xEE45426F, 0x16116163},
24001 {0x3F1969E3, 0x9971ED1A, 0xEB821F19, 0xA452E7F7, 0x6FBCB547, 0x99FBA870, 0x8FB8B5B8, 0x10C15D50} } ,
24002 { {0x554C0E4B, 0x272BAD47, 0x35085885, 0xAFCE6869, 0x2C3E4DF9, 0xD2317F9E, 0x2D3BEC1A, 0x06AFC01D},
24003 {0x747F2083, 0x6951ED27, 0x9BD40CAC, 0x1C9CFDDB, 0xD41A9918, 0x460D0024, 0x83B8F499, 0x2117D244} } } ,
24004 { { {0xF75EEA59, 0x27B4F41A, 0x537F8DFE, 0x3336F14F, 0xCED7398D, 0xC220091F, 0xF2170050, 0x0E94A39A},
24005 {0xD7163534, 0x015FFBDD, 0xF7B41F04, 0xE6BDACC9, 0xA38A762B, 0xFEA2CD5F, 0x84161C9C, 0x12228BDD} } ,
24006 { {0xBC1F6027, 0xB180E18C, 0x8F07C159, 0x4F666F25, 0x04DB5E55, 0xB2EFAB1B, 0xAAB998D4, 0x01A3C8D8},
24007 {0xF99C7CF8, 0xE76D24CF, 0x8944C5E3, 0x64C3D88D, 0xD195405C, 0x98EF9AD7, 0x7C5E1F5C, 0x0D5A3437} } } ,
24008 { { {0x83833E2A, 0xEABA6232, 0xB789D11D, 0x4EA2D0A3, 0x09F45555, 0xFA09832C, 0x3C7F17D9, 0x1E49A525},
24009 {0xFB283F54, 0x078901F6, 0x59DBC639, 0xECE2F5EF, 0xD9739A52, 0xEEDDE7D8, 0x14EF7498, 0x096872B5} } ,
24010 { {0xA4AB8C07, 0x60D67AE8, 0x10756A7F, 0x3B8D2A6A, 0x9350BF95, 0xC80C3737, 0x94E6760A, 0x0D4E2FB1},
24011 {0x72CAFA64, 0xD010E93E, 0xF0A4F063, 0x2D108C78, 0xB5AF335C, 0x2ECC9630, 0xB78D6A4E, 0x0DAADAF4} } } } ;
24013 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3917 a000");
24014 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3918 a001");
24015 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3919 a010");
24016 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3920 a011");
24017 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3921 a100");
24018 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3922 a101");
24019 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3923 a110");
24020 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3924 a111");
24021 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3925 a200");
24022 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3926 a201");
24023 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3927 a210");
24024 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3928 a211");
24027 static const fp12_t var_a = { { { {0xFDC08CD4, 0x62D409FE, 0xB5AD3E27, 0x054A9D8A, 0x70A21603, 0xC6F57413, 0xAD160D7E, 0x08A12DFA},
24028 {0x3D972FCC, 0x516D78DD, 0x2EA35FB1, 0xE97DA754, 0xF0E3DD4C, 0x0EBB00DA, 0x2608ED15, 0x0712A216} } ,
24029 { {0xEF2E2C94, 0x16C64D3E, 0x854DC847, 0x4910BC37, 0xD470D87A, 0x61553569, 0x7EF6F79A, 0x23615CD5},
24030 {0xD81DB7A9, 0xA3A75C51, 0x123D75B3, 0xF386CA1A, 0xAAE7C4B2, 0xF41AD4BC, 0x617F2241, 0x2269A8D2} } } ,
24031 { { {0x14CF1B75, 0x7940BCFD, 0x5EFA7EFB, 0x9342D3E6, 0x13CF8743, 0xC8038C02, 0xB0DF056F, 0x091B25FC},
24032 {0x9459D5E1, 0x4745F943, 0xAA586AC0, 0xA2C74648, 0x4504F14E, 0x8836B231, 0x40173368, 0x1713ED6A} } ,
24033 { {0x9BA625BE, 0x09A31ABD, 0x66989175, 0x94FC79FA, 0x8A795031, 0x0834F1EC, 0xD9EDD0AE, 0x0CE857E9},
24034 {0x41E84FFF, 0x1EBF5BE6, 0xBA59F307, 0xB33BE236, 0xBF4473EA, 0x9A2E2889, 0x38B10E00, 0x0EB297C2} } } ,
24035 { { {0xF05F0625, 0xF345BE64, 0x005FAE80, 0x5504CDC1, 0xD6FDE978, 0x12AC2647, 0xCDDB3542, 0x0EACE264},
24036 {0xEA74B06F, 0xE689D5ED, 0x471FE971, 0x9EC2B5B6, 0x546D9DB3, 0x24C470C3, 0xFE7464AF, 0x0853DFB7} } ,
24037 { {0xC01A988B, 0xF47A6D0D, 0xD228085C, 0x22908AA6, 0xD38A2E8A, 0xD542F178, 0x62533A82, 0x22882244},
24038 {0xDC8722E0, 0x6320EF91, 0x97535DA3, 0x1D2474D2, 0x81CB9812, 0x8FFFAD29, 0x87230329, 0x15534D35} } } } ;
24039 static const fp12_t var_expected = { { { {0xFB8119A8, 0xC5A813FD, 0x6B5A7C4E, 0x0A953B15, 0xE1442C06, 0x8DEAE826, 0x5A2C1AFD, 0x11425BF5},
24040 {0x7B2E5F98, 0xA2DAF1BA, 0x5D46BF62, 0xD2FB4EA8, 0xE1C7BA99, 0x1D7601B5, 0x4C11DA2A, 0x0E25442C} } ,
24041 { {0xDE5C5915, 0x868C9A7D, 0x0A9B907A, 0x3100786F, 0xA8E1B0EC, 0x08761D53, 0xBDEDEF33, 0x219F5528},
24042 {0xB03B6F3F, 0xA04EB8A3, 0x247AEB53, 0x85EC9434, 0x55CF895D, 0x2E015BF9, 0x82FE4482, 0x1FAFED22} } } ,
24043 { { {0x299E36EA, 0xF28179FA, 0xBDF4FDF6, 0x2685A7CC, 0x279F0E87, 0x90071804, 0x61BE0ADF, 0x12364BF9},
24044 {0x28B3ABAF, 0xE78BF287, 0x54B0D56C, 0xE46D8C91, 0x8A09E294, 0x563916E2, 0x402E66CF, 0x09047652} } ,
24045 { {0x374C4B7C, 0x1346357B, 0xCD3122EA, 0x29F8F3F4, 0x14F2A063, 0x1069E3D9, 0xB3DBA15C, 0x19D0AFD3},
24046 {0x83D09FFE, 0x3D7EB7CC, 0x74B3E60E, 0x6677C46D, 0x7E88E7D5, 0x345C5113, 0x71621C01, 0x1D652F84} } } ,
24047 { { {0xE0BE0C4A, 0xE68B7CC9, 0x00BF5D01, 0xAA099B82, 0xADFBD2F0, 0x25584C8F, 0x9BB66A84, 0x1D59C4C9},
24048 {0xD4E960DE, 0xCD13ABDB, 0x8E3FD2E3, 0x3D856B6C, 0xA8DB3B67, 0x4988E186, 0xFCE8C95E, 0x10A7BF6F} } ,
24049 { {0x80353103, 0x41F4DA1B, 0xA45010A6, 0xE400154D, 0xA7145D0B, 0xF0519571, 0x84A67503, 0x1FECE006},
24050 {0xB90E45AD, 0x1F41DF23, 0x2EA6BB33, 0xD927E9A5, 0x0397301B, 0x65CB0CD3, 0xCE460651, 0x058335E8} } } } ;
24052 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3929 a000");
24053 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3930 a001");
24054 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3931 a010");
24055 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3932 a011");
24056 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3933 a100");
24057 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3934 a101");
24058 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3935 a110");
24059 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3936 a111");
24060 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3937 a200");
24061 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3938 a201");
24062 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3939 a210");
24063 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3940 a211");
24066 static const fp12_t var_a = { { { {0xF83BA47D, 0x8BACA403, 0xC1C3C027, 0x52DCE74D, 0xA0C0056C, 0xBD4C9578, 0x2D3F27B7, 0x13B156DC},
24067 {0xA5566F07, 0x211B3F2D, 0x2FBCA873, 0xEBF4189B, 0x0406E560, 0xCAEBE6E7, 0x8962ED1B, 0x016CB56B} } ,
24068 { {0xC63D3A3D, 0xB2653F66, 0xF240CD9A, 0x8B722FE5, 0x9880A3E1, 0x4F3C7015, 0x0319D70E, 0x13BFB457},
24069 {0x1294F597, 0x163D2502, 0xD3895E6F, 0x7F49B653, 0xD9EC9B62, 0x48258911, 0xF811224F, 0x143E9641} } } ,
24070 { { {0x957FA0A8, 0x8B638501, 0xCA444D2A, 0x39842913, 0x59BD1A52, 0xF098C1AA, 0xB8363868, 0x1DC1ED03},
24071 {0x2F40CE9C, 0xB28269E4, 0x88A846CC, 0x90E1AB96, 0x3D498F74, 0x8CFE44CC, 0x09971840, 0x009FE7E7} } ,
24072 { {0x1316D86A, 0xA5A49B47, 0xEE565649, 0x38173C47, 0xC04A43F9, 0x45CAAA29, 0x222103D7, 0x03B4094F},
24073 {0x4A78F5A2, 0xF02FBFC8, 0x940F43FE, 0xDEEDFE4C, 0xAEAD39ED, 0xD35BA77C, 0xB12EF1F2, 0x0559BE16} } } ,
24074 { { {0x2E9BB3D5, 0x1D7A5987, 0x433232D9, 0x656B5A5F, 0xEAADF9AB, 0xA84B108B, 0xD6DEA402, 0x23CA423C},
24075 {0xEF468D3F, 0x52E72B7B, 0x7B112074, 0x920E1391, 0xE84582DF, 0x7FAA2B3E, 0xA63D5954, 0x03F27CB2} } ,
24076 { {0x11FE87F6, 0x509981C2, 0xEE141771, 0xDF46ADDD, 0x33EDA31B, 0xB356D2E4, 0xA8435DA5, 0x1CC01E2B},
24077 {0xEC733342, 0xC2B352FD, 0x03AC6B11, 0xFA9596D5, 0xE8A65A37, 0xEC8DAE0E, 0x5B9D2358, 0x0B743D5B} } } } ;
24078 static const fp12_t var_expected = { { { {0xF07748E7, 0x70594807, 0x8387803B, 0x4498CE9B, 0x41800AD0, 0xC064DD71, 0x1A7E4F6D, 0x023F4936},
24079 {0x4AACDE0E, 0x42367E5B, 0x5F7950E6, 0xD7E83136, 0x080DCAC1, 0x95D7CDCE, 0x12C5DA37, 0x02D96AD7} } ,
24080 { {0x8C7A7467, 0xBDCA7ECD, 0xE4819B21, 0xB5C35FCB, 0x310147BA, 0xE44492AB, 0xC633AE1A, 0x025C042B},
24081 {0x2529EB1B, 0x857A4A04, 0xA712BCCA, 0x9D726CA7, 0xB3D936BC, 0xD616C4A3, 0xB022449C, 0x0359C801} } } ,
24082 { { {0x2AFF413D, 0x6FC70A03, 0x94889A41, 0x11E75227, 0xB37A349C, 0x26FD35D4, 0x306C70D0, 0x16607585},
24083 {0x5E819D38, 0x6504D3C8, 0x11508D99, 0x21C3572D, 0x7A931EE9, 0x19FC8998, 0x132E3081, 0x013FCFCE} } ,
24084 { {0x262DB0D4, 0x4B49368E, 0xDCACAC93, 0x702E788F, 0x809487F2, 0x8B955453, 0x444207AE, 0x0768129E},
24085 {0x94F1EB44, 0xE05F7F90, 0x281E87FD, 0xBDDBFC99, 0x5D5A73DB, 0xA6B74EF9, 0x625DE3E5, 0x0AB37C2D} } } ,
24086 { { {0x5D376797, 0x93F4B30E, 0x8664659E, 0x69B5B4BE, 0xD55BF34E, 0x9661D397, 0x6DBD4803, 0x22711FF7},
24087 {0xDE8D1A7E, 0xA5CE56F7, 0xF62240E8, 0x241C2722, 0xD08B05BF, 0xFF54567D, 0x4C7AB2A8, 0x07E4F965} } ,
24088 { {0x23FD0FD9, 0xFA330384, 0xDC282ECE, 0x5D6C5BBB, 0x67DB462F, 0xAC795848, 0x1086BB49, 0x145CD7D5},
24089 {0xD8E66684, 0x8566A5FB, 0x0758D623, 0xF52B2DAA, 0xD14CB46F, 0xD91B5C1D, 0xB73A46B1, 0x16E87AB6} } } } ;
24091 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3941 a000");
24092 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3942 a001");
24093 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3943 a010");
24094 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3944 a011");
24095 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3945 a100");
24096 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3946 a101");
24097 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3947 a110");
24098 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3948 a111");
24099 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3949 a200");
24100 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3950 a201");
24101 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3951 a210");
24102 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3952 a211");
24105 static const fp12_t var_a = { { { {0x2B5362AA, 0x76275FC4, 0x54104531, 0xCD170D27, 0x3A601E86, 0x6F14EDC8, 0xEF46912A, 0x08C168CA},
24106 {0x4E546B47, 0x4C18A34D, 0x30D8317F, 0x9CEFB3E9, 0xEC9E2128, 0xCD734ECC, 0x47F39461, 0x0D2602AB} } ,
24107 { {0x28A4E581, 0xFCCBC659, 0x1A59AB11, 0x734B3583, 0xDA7FED86, 0x09DB3336, 0xBD4C517D, 0x0936C18C},
24108 {0x619A1B2B, 0x30276C98, 0x48DAB271, 0x1E538DB3, 0x7005EDEC, 0x007B80A1, 0x9EF863B2, 0x00D18158} } } ,
24109 { { {0xF4BFACBE, 0x0CC27BCB, 0x2497F296, 0x8F41BAD7, 0x31B6C96F, 0xB2E28FB2, 0xEA7713B0, 0x0E5FF52C},
24110 {0xB2251FF6, 0x5B88D313, 0xCF910BF8, 0xB911FAB9, 0x318B9E3B, 0x89D1B7D8, 0x15CC6DBD, 0x18C73D85} } ,
24111 { {0xBE0A4C11, 0x65E7F8FB, 0x993501E1, 0xB5FDD256, 0x9C2E7EE1, 0x172D24CD, 0x49FAA161, 0x2017762C},
24112 {0x10D3EF67, 0x2B90B007, 0x8AC9D71E, 0x5A7F87D6, 0x2D8AC391, 0xF5B32DBC, 0xA24A1EC0, 0x0BB9AE44} } } ,
24113 { { {0xF24DD6F7, 0x84C99DC9, 0xDDB2F1C0, 0xF791CC9A, 0xB7A51B38, 0xE5C10237, 0x70683D88, 0x132C4EFB},
24114 {0x864C561A, 0x924C4BC2, 0x7F87B8FC, 0x88E7B8A8, 0xA0D55B0F, 0x0D6F1A94, 0xF94F8C87, 0x0005B1F8} } ,
24115 { {0x3D880ED8, 0xD5B93F96, 0x94F08206, 0x98AE5FE7, 0x61397FBB, 0x4C0D3124, 0x7402F3A7, 0x0A3A4EA0},
24116 {0x61D940EA, 0xC696FF7A, 0xF35CE870, 0x534E93A3, 0x078A65A9, 0x254CA6B4, 0x4E144AA6, 0x070000AB} } } } ;
24117 static const fp12_t var_expected = { { { {0x56A6C554, 0xEC4EBF88, 0xA8208A62, 0x9A2E1A4E, 0x74C03D0D, 0xDE29DB90, 0xDE8D2254, 0x1182D195},
24118 {0x9CA8D68E, 0x9831469A, 0x61B062FE, 0x39DF67D2, 0xD93C4251, 0x9AE69D99, 0x8FE728C3, 0x1A4C0556} } ,
24119 { {0x5149CB02, 0xF9978CB2, 0x34B35623, 0xE6966B06, 0xB4FFDB0C, 0x13B6666D, 0x7A98A2FA, 0x126D8319},
24120 {0xC3343656, 0x604ED930, 0x91B564E2, 0x3CA71B66, 0xE00BDBD8, 0x00F70142, 0x3DF0C764, 0x01A302B1} } } ,
24121 { { {0xE97F597C, 0x1984F797, 0x492FE52C, 0x1E8375AE, 0x636D92DF, 0x65C51F64, 0xD4EE2761, 0x1CBFEA59},
24122 {0x644A3FD9, 0x1011A627, 0x9F2217DD, 0x1102F573, 0x63173C6F, 0x596F2230, 0xEB98DB79, 0x0C6B1687} } ,
24123 { {0x7C14980F, 0x24CFF1F7, 0x326A03AF, 0x0ADAA4AD, 0x385CFDBB, 0x7425FC1B, 0x53F542C0, 0x1B0B87D6},
24124 {0x21A7DECE, 0x5721600E, 0x1593AE3C, 0xB4FF0FAD, 0x5B158722, 0xEB665B78, 0x44943D81, 0x17735C89} } } ,
24125 { { {0xE49BADDB, 0x62933B93, 0xBB65E36D, 0x8E029935, 0x6F4A3669, 0x114DB6EF, 0xA0D07B10, 0x01353974},
24126 {0x0C98AC34, 0x24989785, 0xFF0F71F9, 0x11CF7150, 0x41AAB61F, 0x1ADE3529, 0xF29F190E, 0x000B63F1} } ,
24127 { {0x7B101DB0, 0xAB727F2C, 0x29E1040D, 0x315CBFCF, 0xC272FF77, 0x981A6248, 0xE805E74E, 0x14749D40},
24128 {0xC3B281D4, 0x8D2DFEF4, 0xE6B9D0E1, 0xA69D2747, 0x0F14CB52, 0x4A994D68, 0x9C28954C, 0x0E000156} } } } ;
24130 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3953 a000");
24131 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3954 a001");
24132 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3955 a010");
24133 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3956 a011");
24134 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3957 a100");
24135 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3958 a101");
24136 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3959 a110");
24137 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3960 a111");
24138 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3961 a200");
24139 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3962 a201");
24140 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3963 a210");
24141 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3964 a211");
24144 static const fp12_t var_a = { { { {0x8CBD14DE, 0x97DC1E15, 0xA583ECCB, 0x0E6DB089, 0xB5382D46, 0x1A693F1E, 0xA908273D, 0x1419FD33},
24145 {0x2F2EA591, 0xF91FC463, 0x6AB6A4EC, 0xD7496ECE, 0x20DD41F0, 0xE2F48C63, 0x9876E99E, 0x0C3B6CF7} } ,
24146 { {0x0DC7B733, 0xE4373FC0, 0x33044198, 0x8D712590, 0x11F47EF8, 0x473C350D, 0xA50A5352, 0x15367D83},
24147 {0xBD3C6D04, 0x6384956A, 0xA92BAB62, 0x6E38FC91, 0xE7EDF287, 0x5D33116D, 0x0C4C3482, 0x137BD269} } } ,
24148 { { {0x2B23508C, 0x00C12596, 0xA55D261D, 0xD6BEF052, 0x128D2A3A, 0x6676418C, 0xBD38F8D7, 0x0F62E69E},
24149 {0x17048B16, 0x325EC56B, 0xB6CF8B21, 0xED98A42A, 0x99941DEA, 0x784254A8, 0x9DB01878, 0x18189AC6} } ,
24150 { {0x94C538F8, 0x3676F900, 0x9E1E1C6E, 0xE0776D86, 0x95C60F1E, 0x79C1A853, 0x85B0C54C, 0x1B7BC76B},
24151 {0x8A60118B, 0x154C2DD6, 0xD58008A9, 0x507B1899, 0xB432F915, 0xF84693D3, 0xC259492D, 0x0B86B5AE} } } ,
24152 { { {0x35E7D717, 0x09610808, 0x05C92500, 0xFFD93BD0, 0xB7D46CBB, 0xF2D56B56, 0x94CFF298, 0x047B109B},
24153 {0xA5DB6642, 0xFA0C4602, 0x8C385DFE, 0xD373342A, 0xF482F586, 0xE35E677C, 0x2FE0914B, 0x2239C896} } ,
24154 { {0x3CD630B7, 0xF5B1B02C, 0xFD21EF24, 0xECC81518, 0xD42C5883, 0xDFE159D8, 0x7C81CDE3, 0x18EE0535},
24155 {0x337C8B58, 0xCD8222BD, 0x9F5B797E, 0x0A7E1CEF, 0x56694E12, 0xDAA4AD70, 0x9918DFB0, 0x147C7EF1} } } } ;
24156 static const fp12_t var_expected = { { { {0x197A29A9, 0x88B83C2B, 0x4B07D983, 0xBBBA6113, 0x6A705A83, 0x7A9E30BD, 0x12104E78, 0x031095E5},
24157 {0x5E5D4B22, 0xF23F88C6, 0xD56D49D9, 0xAE92DD9C, 0x41BA83E1, 0xC5E918C6, 0x30EDD33D, 0x1876D9EF} } ,
24158 { {0x1B8F6E53, 0x216E7F80, 0x6608831E, 0xB9C14B20, 0x23E8FDE8, 0xD4441C9A, 0x0A14A6A2, 0x05499685},
24159 {0x7A78D9F5, 0x20092AD5, 0x525756B1, 0x7B50F923, 0xCFDBE506, 0x0031D55B, 0xD8986903, 0x01D4404F} } } ,
24160 { { {0x5646A118, 0x01824B2C, 0x4ABA4C3A, 0xAD7DE0A5, 0x251A5475, 0xCCEC8318, 0x7A71F1AE, 0x1EC5CD3D},
24161 {0x2E091619, 0xBDBD8AD6, 0x6D9F162E, 0x7A104855, 0x33283BCD, 0x36505BD1, 0xFB6030EF, 0x0B0DD10A} } ,
24162 { {0x298A71DD, 0xC5EDF201, 0x3C3C38C8, 0x5FCDDB0D, 0x2B8C1E35, 0x394F0327, 0xCB618A97, 0x11D42A54},
24163 {0x14C02316, 0x2A985BAD, 0xAB001152, 0xA0F63133, 0x6865F22A, 0xF08D27A7, 0x84B2925B, 0x170D6B5D} } } ,
24164 { { {0x6BCFAE2E, 0x12C21010, 0x0B924A00, 0xFFB277A0, 0x6FA8D977, 0xE5AAD6AD, 0x299FE531, 0x08F62137},
24165 {0x4BB6CC71, 0x4D188C05, 0x1870BBEA, 0x45C56855, 0xE905EB05, 0x0C888179, 0x1FC12296, 0x1F502CAA} } ,
24166 { {0x79AC615B, 0x44636058, 0xFA43DE36, 0x786F2A31, 0xA858B0FF, 0x058E6631, 0xB9039BC6, 0x0CB8A5E8},
24167 {0x66F9169D, 0xF404457A, 0x3EB6F2E9, 0xB3DB39DF, 0xACD29C1B, 0xFB150D60, 0xF231BF5F, 0x03D59960} } } } ;
24169 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3965 a000");
24170 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3966 a001");
24171 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3967 a010");
24172 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3968 a011");
24173 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3969 a100");
24174 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3970 a101");
24175 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3971 a110");
24176 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3972 a111");
24177 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3973 a200");
24178 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3974 a201");
24179 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3975 a210");
24180 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3976 a211");
24183 static const fp12_t var_a = { { { {0x15C621DC, 0x83C8AD93, 0xEC81634F, 0x49EB7D0D, 0x8B5593E9, 0x77B2B395, 0xD5957CCC, 0x154CAD8D},
24184 {0x419672B6, 0xF3CE4EC8, 0x140A3182, 0xD443A2BE, 0x18C3637D, 0x91F18749, 0xF55CFB5B, 0x06D4CFC0} } ,
24185 { {0x6C9F1D70, 0xFD49C95B, 0x7724B8EE, 0x0BA61C9B, 0xB7B6B6C6, 0xBC0D7AC4, 0x3203F60B, 0x12A2F73E},
24186 {0x1D9B706E, 0x9F5C934F, 0x2F6F672C, 0x3E86EF98, 0xB636EBC7, 0x5CF9C3AE, 0x79DBFEBC, 0x083BE1DA} } } ,
24187 { { {0x30D08407, 0xA228F042, 0x8478F0B0, 0xA615F140, 0x7669A2A1, 0x7BFB9D8C, 0xE94829C6, 0x20AAA69A},
24188 {0x54E9BC22, 0x95EF9B95, 0x751124C5, 0x11096D86, 0xED03F522, 0xF8C5A454, 0xD8EE7374, 0x095E5949} } ,
24189 { {0x8D1B9641, 0x76BFABFA, 0x3670C762, 0x98233B8E, 0x2508571A, 0x0A52AC3B, 0x0FAD5D32, 0x0106342E},
24190 {0xB29C0783, 0xEBB78258, 0xAC22A13D, 0x551CFA4A, 0xBAD3C4B9, 0x4DBA7A48, 0xC9652F00, 0x07AF7637} } } ,
24191 { { {0xF069EAC7, 0x90D6FECC, 0xF3D02082, 0x746B2F34, 0x607E1301, 0xFC70A4CF, 0x389AC4AD, 0x1FE536B1},
24192 {0x455E2332, 0xF25D3FAF, 0xD9CF4BB8, 0x2F4F5D86, 0x5B887E17, 0x6DDDEB2D, 0xC0D7DC8A, 0x039BF326} } ,
24193 { {0x05998984, 0xC2BBA672, 0x6083DF18, 0xFBDB6F6A, 0x06D9CCC5, 0x9841869D, 0x7AE93F18, 0x08E6FD6D},
24194 {0x5934C3CE, 0xFD13FA60, 0x3F91BE38, 0xFB94FD1A, 0x4D0DA77C, 0xD7FCE958, 0x73F03E9E, 0x165CFB18} } } } ;
24195 static const fp12_t var_expected = { { { {0x2B8C43A5, 0x60915B26, 0xD902C68B, 0x32B5FA1B, 0x16AB27CA, 0x353119AB, 0x6B2AF997, 0x0575F699},
24196 {0x832CE56C, 0xE79C9D90, 0x28146305, 0xA887457C, 0x3186C6FB, 0x23E30E92, 0xEAB9F6B7, 0x0DA99F81} } ,
24197 { {0xD93E3ACD, 0x539392B6, 0xEE4971CA, 0xB62B3936, 0x6F6D6D83, 0xBDE6A809, 0x2407EC15, 0x002289FA},
24198 {0x3B36E0DC, 0x3EB9269E, 0x5EDECE59, 0x7D0DDF30, 0x6C6DD78E, 0xB9F3875D, 0xF3B7FD78, 0x1077C3B4} } } ,
24199 { { {0x61A107FB, 0x9D51E084, 0x08F1E14D, 0xEB0AE281, 0xECD3453A, 0x3DC2ED98, 0x9290538B, 0x1C31E8B3},
24200 {0xA9D37844, 0x2BDF372A, 0xEA22498B, 0x2212DB0C, 0xDA07EA44, 0xF18B48A9, 0xB1DCE6E9, 0x12BCB293} } ,
24201 { {0x1A372C82, 0xED7F57F5, 0x6CE18EC4, 0x3046771C, 0x4A10AE35, 0x14A55876, 0x1F5ABA64, 0x020C685C},
24202 {0x65380F06, 0xD76F04B1, 0x5845427B, 0xAA39F495, 0x75A78972, 0x9B74F491, 0x92CA5E00, 0x0F5EEC6F} } } ,
24203 { { {0xE0D3D57B, 0x7AADFD99, 0xE7A040F1, 0x87B55E69, 0xC0FC25FA, 0x3EACFC1E, 0x3135895A, 0x1AA708E0},
24204 {0x8ABC4664, 0xE4BA7F5E, 0xB39E9771, 0x5E9EBB0D, 0xB710FC2E, 0xDBBBD65A, 0x81AFB914, 0x0737E64D} } ,
24205 { {0x0B331308, 0x85774CE4, 0xC107BE31, 0xF7B6DED4, 0x0DB3998B, 0x30830D3A, 0xF5D27E31, 0x11CDFADA},
24206 {0xB2698789, 0x5327F4C0, 0x7F237C5E, 0x9608FA34, 0x9A1B4EF1, 0xF5C58530, 0xA7E07D3B, 0x079691AE} } } } ;
24208 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3977 a000");
24209 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3978 a001");
24210 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3979 a010");
24211 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3980 a011");
24212 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3981 a100");
24213 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3982 a101");
24214 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3983 a110");
24215 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3984 a111");
24216 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3985 a200");
24217 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3986 a201");
24218 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3987 a210");
24219 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3988 a211");
24222 static const fp12_t var_a = { { { {0xBB4B9247, 0x984BC03B, 0x62E335F9, 0x6251439E, 0x3216F960, 0x238ED237, 0xAA315CA1, 0x167F3894},
24223 {0x7C524C42, 0x8DA942F7, 0x667A9FE5, 0xE2B3DDF3, 0x4B277997, 0xEEE1E208, 0x95C723CD, 0x204DF90C} } ,
24224 { {0x3FBA752C, 0x8408D1EB, 0x1E1069BA, 0x809395A5, 0x42F5ADDF, 0xD756744B, 0x1D197F86, 0x0608857C},
24225 {0x7BE9BB43, 0x57952B0C, 0x118A8BDE, 0x2D57DD82, 0x54440EBF, 0x3D2A469B, 0x9D280D28, 0x0874CB81} } } ,
24226 { { {0xFC81C707, 0x892434EA, 0xF93B07B6, 0x2E03BAEE, 0xD3C612E8, 0xA80DCD21, 0xE7A649A7, 0x21758339},
24227 {0x62F79FC4, 0x430A4995, 0x45FADCE3, 0xC9BE4290, 0xA44B5B4A, 0x03F6D302, 0x3FE68C3F, 0x0EA81531} } ,
24228 { {0xA075A1C7, 0x1E94EBA7, 0x98FC97DA, 0x8DF1F365, 0xC23C2CA5, 0x94EC69F9, 0x5E8F2E7B, 0x1BBF755F},
24229 {0x7E172A66, 0xEA04942C, 0x48907668, 0xFAE27934, 0xB96D016D, 0x625345D5, 0x702D5519, 0x0527BA44} } } ,
24230 { { {0x186D9B01, 0x9921D55B, 0xDF9AB176, 0xCCB4B909, 0x2B3AED1E, 0x1171D06C, 0x56883CE7, 0x22AA6610},
24231 {0x5E5246BA, 0xAB5A3198, 0x9EEC7760, 0x53512715, 0x4FF4F26E, 0x4A5707C8, 0x25CFFC4D, 0x1A1EE8E0} } ,
24232 { {0x9215571B, 0xA3744376, 0xF56296AC, 0xC9DCCD66, 0x6DA3AF9D, 0x2AD89408, 0x26941C80, 0x215E8CC0},
24233 {0xCCEDDFD9, 0x02CC1C12, 0x0CDBF097, 0x11947A3E, 0x6312EC4A, 0x74B8F6E1, 0xD49577B6, 0x0C4619B6} } } } ;
24234 static const fp12_t var_expected = { { { {0x7697247B, 0x89978077, 0xC5C66BDF, 0x6381873C, 0x642DF2B8, 0x8CE956EE, 0x1462B940, 0x07DB0CA7},
24235 {0xF8A49871, 0x745285EE, 0xCCF53FB7, 0x6446BBE6, 0x964EF327, 0x238F7690, 0xEB8E479A, 0x1B788D96} } ,
24236 { {0x7F74EA58, 0x0811A3D6, 0x3C20D375, 0x01272B4A, 0x85EB5BBF, 0xAEACE896, 0x3A32FF0D, 0x0C110AF8},
24237 {0xF7D37686, 0xAF2A5618, 0x231517BC, 0x5AAFBB04, 0xA8881D7E, 0x7A548D36, 0x3A501A50, 0x10E99703} } } ,
24238 { { {0xF9038DFB, 0x6B4869D5, 0xF2760F59, 0xFAE675DD, 0xA78C25C7, 0x95E74CC3, 0x8F4C934D, 0x1DC7A1F1},
24239 {0xC5EF3F88, 0x8614932A, 0x8BF5B9C6, 0x937C8520, 0x4896B695, 0x07EDA605, 0x7FCD187E, 0x1D502A62} } ,
24240 { {0x40EB437B, 0x9629D74F, 0x31F92FA0, 0xBAC2E6CB, 0x84785942, 0x6FA48673, 0x7D1E5CF5, 0x125B863C},
24241 {0xFC2E54CC, 0xD4092858, 0x9120ECD1, 0xF5C4F268, 0x72DA02DB, 0xC4A68BAB, 0xE05AAA32, 0x0A4F7488} } } ,
24242 { { {0x30DB35EF, 0x8B43AAB6, 0xBF3562D9, 0x38487213, 0x5675DA35, 0x68AF5358, 0x6D1079CC, 0x2031679E},
24243 {0xBCA48D61, 0xAFB46330, 0x3DD8EEAD, 0x45814E2B, 0x9FE9E4D4, 0xDA79C210, 0x0B9FF898, 0x0F1A6D3E} } ,
24244 { {0x242AAE23, 0x9FE886ED, 0xEAC52D45, 0x32989ACD, 0xDB475F33, 0x9B7CDA90, 0x0D2838FE, 0x1D99B4FE},
24245 {0x99DBBFB2, 0x05983825, 0x19B7E12E, 0x2328F47C, 0xC625D894, 0xE971EDC2, 0xA92AEF6C, 0x188C336D} } } } ;
24247 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3989 a000");
24248 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3990 a001");
24249 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3991 a010");
24250 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3992 a011");
24251 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3993 a100");
24252 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3994 a101");
24253 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3995 a110");
24254 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3996 a111");
24255 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3997 a200");
24256 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3998 a201");
24257 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3999 a210");
24258 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4000 a211");
24261 static const fp12_t var_a = { { { {0x79C19F66, 0xF028FB6C, 0x3EF43673, 0x9C870A75, 0x232EF2CA, 0x5D0515D1, 0x615644A8, 0x137C4D8F},
24262 {0xD83C1C83, 0xD816B810, 0x98A27E82, 0x2406BB31, 0x33B4BEFC, 0x1F91C92F, 0x318F42E6, 0x1B8745E7} } ,
24263 { {0x7C381E6A, 0x5DDD93C0, 0x5E91ADAD, 0xE0C5FA8D, 0x2B3170C6, 0xC3762269, 0x5C625C97, 0x189AFE46},
24264 {0xCD6FC300, 0xC7FE3D91, 0x8755E202, 0xCD032802, 0x3A4F780B, 0x6E23DEEB, 0x30674416, 0x19715038} } } ,
24265 { { {0x8687A0C9, 0x12433D5C, 0x3C703294, 0x52F93276, 0xA2748C7C, 0x8779DAF3, 0xEE88DAAD, 0x1E9C33CA},
24266 {0x3864AD96, 0x85621925, 0x5D218A81, 0x409A1199, 0x38B24CBE, 0x93CF3EB2, 0x89AB6129, 0x109EB2D4} } ,
24267 { {0xC6D0F583, 0x062BE8B0, 0xFC09752A, 0xD9BE72B2, 0xE501103C, 0x72977588, 0x2A2AD00D, 0x006FFD5A},
24268 {0xE87447D6, 0xDD4C2043, 0xDF9E0E09, 0x7D76377A, 0x27D568C6, 0xBF691A53, 0x2E21C51F, 0x08DF2842} } } ,
24269 { { {0xA81B5E32, 0xEF9DD32C, 0x026B7D88, 0x452C83A1, 0x90F33CA7, 0xBA42DC42, 0x6687EC3E, 0x13D726A7},
24270 {0xE7493376, 0xA302B39D, 0x1322A4B7, 0xB9DA74A1, 0x46A98A76, 0x8E400AD5, 0x5518DC15, 0x200353BD} } ,
24271 { {0xD9248E48, 0x39DE7DF0, 0xF582F293, 0x2282E213, 0x824535CC, 0xD7CAC5C0, 0xF60FB307, 0x24617D44},
24272 {0x85A8EA4B, 0x4E10BF7E, 0x3D0A8047, 0xE7B4A052, 0x11E9725B, 0xF2F141B4, 0x74B40670, 0x21F8CEE9} } } } ;
24273 static const fp12_t var_expected = { { { {0xF3833EB9, 0x3951F6D8, 0x7DE86CD4, 0xD7ED14EA, 0x465DE58C, 0xFFD5DE22, 0x82AC894E, 0x01D5369C},
24274 {0xB07838F3, 0x092D7021, 0x3144FCF2, 0xE6EC7663, 0x67697DEF, 0x84EF44DE, 0x231E85CA, 0x11EB274C} } ,
24275 { {0xF8703CC1, 0x14BB2780, 0xBD235B47, 0x606AF51A, 0x5662E185, 0xCCB7F752, 0x78C4B92D, 0x0C12980A},
24276 {0x9ADF85ED, 0xE8FC7B23, 0x0EABC3F1, 0x38E55005, 0x749EF00F, 0x22137056, 0x20CE882B, 0x0DBF3BEE} } } ,
24277 { { {0x0D0F417F, 0x7D867AB9, 0x78E06514, 0x44D164EC, 0x44E918F0, 0x54BF6867, 0x9D11B559, 0x18150313},
24278 {0x70C95B2C, 0x0AC4324A, 0xBA431503, 0x81342332, 0x7164997C, 0x279E7D64, 0x1356C253, 0x213D65A9} } ,
24279 { {0x8DA1EB06, 0x0C57D161, 0xF812EA54, 0xB37CE565, 0xCA022079, 0xE52EEB11, 0x5455A01A, 0x00DFFAB4},
24280 {0xD0E88FAC, 0xBA984087, 0xBF3C1C13, 0xFAEC6EF5, 0x4FAAD18C, 0x7ED234A6, 0x5C438A3F, 0x11BE5084} } } ,
24281 { { {0x5036BC51, 0x383BA659, 0x04D6FAFE, 0x29380742, 0x21E67946, 0xBA516B05, 0x8D0FD87B, 0x028AE8CC},
24282 {0xCE9266D9, 0x9F05673B, 0x2645495B, 0x1293E942, 0x8D5314E5, 0x624BC82A, 0x6A31B829, 0x1AE342F8} } ,
24283 { {0xB2491C7D, 0xCCBCFBE1, 0xEB05E512, 0xE3E4C427, 0x048A6B8F, 0xF5613E01, 0xAC1F660D, 0x239F9607},
24284 {0x0B51D483, 0xF5217EFD, 0x7A15007A, 0x6E4840A4, 0x23D2E4AF, 0x2BAE35E8, 0xA9680CE0, 0x1ECE3950} } } } ;
24286 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4001 a000");
24287 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4002 a001");
24288 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4003 a010");
24289 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4004 a011");
24290 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4005 a100");
24291 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4006 a101");
24292 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4007 a110");
24293 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4008 a111");
24294 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4009 a200");
24295 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4010 a201");
24296 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4011 a210");
24297 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4012 a211");
24300 static const fp12_t var_a = { { { {0x462E4761, 0x7A88F9E1, 0xB874D98E, 0x82BD295A, 0xD6A4B539, 0xDB6AA8A3, 0xF0B1E5AD, 0x1B6B0755},
24301 {0x4C438B56, 0xB561A66A, 0xE3113284, 0x8A83BDF4, 0x46E829C7, 0x4F328977, 0xBF41FC5F, 0x1FDCBC33} } ,
24302 { {0x1CCF8205, 0x9697A67F, 0x71E6CCC5, 0x4EF83D03, 0xEA3F241F, 0xA82F42DD, 0xA92A23CE, 0x0B98E18A},
24303 {0x0C8AA7B2, 0x15460A8B, 0xC99EF176, 0xF8EA6B51, 0xE16318A6, 0xBC238B9E, 0x6B83E30C, 0x1D574CCB} } } ,
24304 { { {0xC8C332B3, 0xE8794F13, 0x86519FDD, 0xFF7542C3, 0x5B96F375, 0x72E56A64, 0xF657B9B2, 0x16906F08},
24305 {0xD07931E9, 0x978D7AA2, 0xF511DFB4, 0x092E9BD1, 0x1F52F441, 0x19D5D10C, 0x6E051FA5, 0x13270549} } ,
24306 { {0xF7BD9478, 0xDB1EAA26, 0x9A52765F, 0x1EB4503C, 0x06495913, 0xB3F5D41B, 0x2B84AB4F, 0x08125943},
24307 {0xE56C785A, 0x028D088A, 0xAB1738A4, 0x6FE08790, 0x7DB28167, 0xD38C8AED, 0xBB68CD26, 0x18D1B509} } } ,
24308 { { {0x96341A73, 0x77093D5A, 0x93F95EB7, 0xD243EDA1, 0x07EA587C, 0x2039C8F7, 0x5EBEEC7C, 0x1D2372FB},
24309 {0xDAEA3A3A, 0x1838BE79, 0x71F78504, 0xF4E4EF5D, 0xB95D279B, 0xA5AC8039, 0x09B7FD7E, 0x1BD980E7} } ,
24310 { {0xD333E45E, 0x2E5FA8FF, 0x97194D94, 0xEFED4F70, 0xBDCC22F3, 0xF512ACBF, 0xE41FCEBF, 0x14E2D65C},
24311 {0x7978CCCD, 0xF229F99C, 0x0BE4B054, 0xA0F49B08, 0xCFD557A8, 0x7A359952, 0x0CB097D0, 0x19C7037A} } } } ;
24312 static const fp12_t var_expected = { { { {0x8C5C8EAF, 0x4E11F3C2, 0x70E9B309, 0xA45952B5, 0xAD496A6A, 0xFCA103C7, 0xA163CB59, 0x11B2AA29},
24313 {0x98871699, 0xC3C34CD4, 0xC62264F5, 0xB3E67BE9, 0x8DD05386, 0xE430C56E, 0x3E83F8BC, 0x1A9613E5} } ,
24314 { {0x399F040A, 0x2D2F4CFE, 0xE3CD998B, 0x9DF07A06, 0xD47E483E, 0x505E85BB, 0x5254479D, 0x1731C315},
24315 {0x19154F51, 0x838C1516, 0x933DE2D8, 0x90B3D6A3, 0xC2C63145, 0xBE12C9BD, 0x9707C617, 0x158B3514} } } ,
24316 { { {0x91866553, 0x29F29E27, 0x0CA33FA8, 0x9DC98587, 0xB72DE6E3, 0x2B968748, 0xACAF7363, 0x07FD798F},
24317 {0xA0F263BF, 0x881AF545, 0xEA23BF55, 0xB13C37A3, 0x3EA5E879, 0x79775498, 0x9C0A3F48, 0x012AA610} } ,
24318 { {0xEF7B28F0, 0xB63D544D, 0x34A4ECBF, 0x3D68A079, 0x0C92B226, 0x67EBA836, 0x5709569F, 0x1024B286},
24319 {0xCAD8F0A1, 0x5E1A1115, 0x562E7134, 0x7EA00F21, 0xFB6502C6, 0xECE4C85A, 0x36D19A4B, 0x0C800591} } } ,
24320 { { {0x2C6834D3, 0x47127AB5, 0x27F2BD5B, 0x4366DB43, 0x0FD4B0F1, 0x863F446E, 0x7D7DD8F6, 0x15238174},
24321 {0xB5D47461, 0x89717CF3, 0xE3EF09F4, 0x88A8DEBA, 0x72BA4F2F, 0x9124B2F3, 0xD36FFAFB, 0x128F9D4B} } ,
24322 { {0xA667C8A9, 0xB5BF51FF, 0x2E329B14, 0x7EB99EE1, 0x7B9845DF, 0x2FF10BFF, 0x883F9D7E, 0x04A24837},
24323 {0xF2F19987, 0x3D53F338, 0x17C96096, 0xE0C83610, 0x9FAAAF48, 0x3A36E525, 0xD9612F9F, 0x0E6AA271} } } } ;
24325 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4013 a000");
24326 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4014 a001");
24327 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4015 a010");
24328 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4016 a011");
24329 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4017 a100");
24330 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4018 a101");
24331 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4019 a110");
24332 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4020 a111");
24333 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4021 a200");
24334 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4022 a201");
24335 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4023 a210");
24336 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4024 a211");
24339 static const fp12_t var_a = { { { {0x192DD2B4, 0xCBF65218, 0x09999361, 0x48105CB0, 0xC3D5C5D7, 0x53B6CE74, 0xD122A194, 0x0EEB3E70},
24340 {0xD2674F0C, 0x4CB7A9B3, 0x7E4B1B7C, 0xF2581A8A, 0xFD15CE44, 0x4A9CD3E6, 0x791CF800, 0x1061C2B6} } ,
24341 { {0x17C72A07, 0xA5677B99, 0x8FC1CF77, 0x66287081, 0xF74A3BF8, 0xC797ECA8, 0xBCEE8D87, 0x0A38A57A},
24342 {0x30A801F5, 0x7D0376C1, 0x1027A19F, 0x43ECD4EC, 0xBE629DF8, 0x95CD4C85, 0x051A4161, 0x1679F658} } } ,
24343 { { {0xB8ADC8FA, 0xD71FAD16, 0x0E904808, 0x6E88E8E1, 0x76A3B726, 0xF1F6FE69, 0x77AE9D1F, 0x10385D23},
24344 {0x2096A32F, 0xB506C10B, 0x464B97FC, 0xB74E4E05, 0xD2191B42, 0x053974AA, 0xA6705E7C, 0x1B2A1FE9} } ,
24345 { {0x2B62F590, 0x9F6B9933, 0xAB04C214, 0xE9AC72EF, 0x9C5763D5, 0xF7E23476, 0x1AD9F8F0, 0x0BCE458D},
24346 {0x70CBE3BB, 0x0FA695E7, 0xE4B7AE41, 0x5417BE57, 0x33828D3D, 0x81968D94, 0x10DCBD3B, 0x19CC7BB5} } } ,
24347 { { {0xDC0ABA45, 0x558A547E, 0xCB72C434, 0x4DD71E18, 0x08B15889, 0x0ED695EE, 0x78855980, 0x2080BF8D},
24348 {0x2DEFF222, 0x45C27518, 0xEFE7DF2B, 0x98B3E0C2, 0x209CC252, 0x015514AE, 0xF862BBD9, 0x0F37CD8A} } ,
24349 { {0x7843DE6D, 0xF8C0F692, 0x13D1570A, 0xCEF337F5, 0x959AFB95, 0xC7DDB630, 0xA7BAB180, 0x1D6E33B9},
24350 {0xA3851C9D, 0x40430DC1, 0xAD213B7C, 0x89440EC9, 0x15F16BA7, 0x1F066DF0, 0xD39EC1E8, 0x1786EB05} } } } ;
24351 static const fp12_t var_expected = { { { {0x325BA568, 0x97ECA430, 0x133326C3, 0x9020B960, 0x87AB8BAE, 0xA76D9CE9, 0xA2454328, 0x1DD67CE1},
24352 {0xA4CE9E18, 0x996F5367, 0xFC9636F8, 0xE4B03514, 0xFA2B9C89, 0x9539A7CD, 0xF239F000, 0x20C3856C} } ,
24353 { {0x2F8E540E, 0x4ACEF732, 0x1F839EEF, 0xCC50E103, 0xEE9477F0, 0x8F2FD951, 0x79DD1B0F, 0x14714AF5},
24354 {0x615003D7, 0x5306ED82, 0x204F432B, 0x26B8A9D8, 0x7CC53BE8, 0x71664B8B, 0xCA3482C1, 0x07D0882D} } } ,
24355 { { {0x715B91F4, 0xAE3F5A2D, 0x1D209011, 0xDD11D1C2, 0xED476E4C, 0xE3EDFCD2, 0xEF5D3A3F, 0x2070BA46},
24356 {0x412D464B, 0xC30D8216, 0x8C972FE5, 0x0D7B9C0A, 0xA432367D, 0x503E9BD5, 0x0CE0BCF6, 0x1130DB51} } ,
24357 { {0x56C5EB20, 0x3ED73266, 0x56098429, 0xD358E5DF, 0x38AEC7AB, 0xEFC468ED, 0x35B3F1E1, 0x179C8B1A},
24358 {0xE197C763, 0x784D2BCE, 0xC96F5C6E, 0x470E7CAF, 0x67051A72, 0x48F8CDA8, 0xE1B97A75, 0x0E7592E7} } } ,
24359 { { {0xB8157477, 0x0414A8FD, 0x96E58855, 0x3A8D3C31, 0x1162B10A, 0x6378DE5C, 0xB10AB2FE, 0x1BDE1A98},
24360 {0x5BDFE444, 0x8B84EA30, 0xDFCFBE56, 0x3167C185, 0x413984A5, 0x02AA295C, 0xF0C577B2, 0x1E6F9B15} } ,
24361 { {0xF087BCC7, 0x4A81ED24, 0x27A2AE02, 0x3CC56FEA, 0x2B35F723, 0xD5871EE1, 0x0F7562FF, 0x15B902F1},
24362 {0x470A3927, 0xD9861B83, 0x5A4276E4, 0xB1671D93, 0x2BE2D746, 0x83D88E60, 0x673D83CE, 0x09EA7189} } } } ;
24364 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4025 a000");
24365 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4026 a001");
24366 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4027 a010");
24367 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4028 a011");
24368 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4029 a100");
24369 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4030 a101");
24370 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4031 a110");
24371 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4032 a111");
24372 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4033 a200");
24373 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4034 a201");
24374 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4035 a210");
24375 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4036 a211");
24378 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24379 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } ,
24380 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24381 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
24382 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24383 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
24384 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24385 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
24386 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24387 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
24388 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24389 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } } } ;
24390 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24391 {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F} } ,
24392 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24393 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
24394 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24395 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
24396 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24397 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
24398 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
24399 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
24400 { {0x18AF693B, 0x29820223, 0xE18B8A1F, 0xE997ECB7, 0x0088AE2B, 0x3FD674BA, 0x79C3D259, 0x176FB82A},
24401 {0x18AF693B, 0x29820223, 0xE18B8A1F, 0xE997ECB7, 0x0088AE2B, 0x3FD674BA, 0x79C3D259, 0x176FB82A} } } } ;
24403 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4037 a000");
24404 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4038 a001");
24405 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4039 a010");
24406 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4040 a011");
24407 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4041 a100");
24408 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4042 a101");
24409 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4043 a110");
24410 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4044 a111");
24411 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4045 a200");
24412 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4046 a201");
24413 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4047 a210");
24414 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4048 a211");
24417 static const fp12_t var_a = { { { {0xB51AB7C3, 0x11E73504, 0xC4DDDFEE, 0xD5E55FE0, 0xB9EED7D9, 0x7424438F, 0x0740923C, 0x2177DCBC},
24418 {0x25F5C74C, 0x712914E5, 0x97E5E82F, 0x1FB12D2E, 0xDE3635C2, 0x75A48732, 0xF436249E, 0x2169A597} } ,
24419 { {0xD29A94C6, 0xC468AE20, 0xF884CF15, 0x4251EDFE, 0x1D6CA949, 0x28380737, 0xDA757ADC, 0x10367171},
24420 {0x1BB768DA, 0x02CDBAF3, 0xCB15CC0B, 0x061F9723, 0x27238D0D, 0xAC345309, 0x1F362BED, 0x113C0366} } } ,
24421 { { {0x5B687E25, 0xC34AB150, 0x82D142C7, 0x82B69F93, 0xF494214D, 0xD428B8C3, 0x72D845A3, 0x1C51BD1E},
24422 {0xE8BC585A, 0x4C4DE57F, 0xC70A8441, 0x3A5FE91D, 0xA4CFCFAF, 0x6AD0A4C1, 0x5CE42903, 0x0256A7A3} } ,
24423 { {0x43940079, 0x2BDB0336, 0x41CF0AA9, 0xE585471E, 0x6387BE5C, 0x47D16ABE, 0x1971DA9F, 0x12227132},
24424 {0xF64698AC, 0x38E0C942, 0x73071A6C, 0x64EC0B19, 0x457E00B2, 0x7B2C3781, 0xFD379870, 0x0AC3C182} } } ,
24425 { { {0x1671144E, 0xBCD0CB6E, 0x5C49F935, 0x70BB22E6, 0x51C1A03E, 0xEC0F577A, 0x315FAE4E, 0x0CC293EC},
24426 {0xCE059653, 0x5951E6E1, 0x53446759, 0x92C2BE53, 0xB4170EDA, 0x77011FE2, 0x03E87023, 0x23DD783A} } ,
24427 { {0x607DB8BD, 0x1DB52853, 0x5BB29D97, 0x78A27628, 0x0BC85646, 0x86F59840, 0x76BA7805, 0x18C2C8A4},
24428 {0xE69EF37C, 0x687AA7A3, 0x8A89731B, 0xDD20B111, 0xA38E877A, 0xDEA5746A, 0xD0F0F38D, 0x0E9A9569} } } } ;
24429 static const fp12_t var_expected = { { { {0xB51AB7C3, 0x11E73504, 0xC4DDDFEE, 0xD5E55FE0, 0xB9EED7D9, 0x7424438F, 0x0740923C, 0x2177DCBC},
24430 {0xDA0A38C7, 0x35D6EB1A, 0x681A17E4, 0x416FD2D1, 0x21C9CA46, 0x448FC64D, 0x4BC9DB63, 0x03B9BEEA} } ,
24431 { {0x2EC3FA34, 0xC3B24F9C, 0x1E98FFB9, 0x775953E0, 0x4CCAB4F7, 0x7AA33F34, 0x6E00F52A, 0x1C0CE915},
24432 {0xB48C8A25, 0x293203E1, 0x881783B2, 0x91475942, 0xB22E0AF1, 0xD291CB57, 0x1DEC05CC, 0x023814FC} } } ,
24433 { { {0x7232F819, 0x8A9336BC, 0x9670A51C, 0x9B25E8BC, 0xBE1E5B59, 0xE9CA88C1, 0x4F3B4E01, 0x204F3AED},
24434 {0x8F371AF9, 0x34D68E3E, 0x6641D376, 0xD060C6B1, 0x0FE04C73, 0x9D844192, 0x079F5871, 0x0C8EF1F6} } ,
24435 { {0xD92A5918, 0x4CA22430, 0xB3A3085F, 0xB253EC87, 0x068DA1E3, 0x0E4AB68A, 0x1AC410AA, 0x0C3D7D25},
24436 {0x0EC0168B, 0xBE4B1510, 0xA6C215AB, 0x7E20D8AC, 0xB7032F56, 0x3B1C647E, 0xBE284B68, 0x0645D779} } } ,
24437 { { {0x8A05783D, 0xA5E56073, 0x7366424D, 0x9931CC97, 0xE6AF8B17, 0x65D1BB49, 0xAA130C70, 0x1C6A798E},
24438 {0xEF3B0290, 0x6C74E41C, 0x3E9420BB, 0x6E262C75, 0x5EEECDB8, 0x254ABBFB, 0xB2CDBE8B, 0x079A90D1} } ,
24439 { {0x8B6E8523, 0xBB702031, 0x3226C484, 0x188A9BD2, 0x673C8D75, 0x4F766C92, 0x249E1C09, 0x20556591},
24440 {0x5AE73522, 0xB5418B1E, 0xD46DA13C, 0x8A807882, 0x382710EE, 0xD336663A, 0xC76A729F, 0x1A7C279D} } } } ;
24442 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4049 a000");
24443 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4050 a001");
24444 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4051 a010");
24445 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4052 a011");
24446 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4053 a100");
24447 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4054 a101");
24448 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4055 a110");
24449 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4056 a111");
24450 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4057 a200");
24451 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4058 a201");
24452 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4059 a210");
24453 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4060 a211");
24456 static const fp12_t var_a = { { { {0xD087C57E, 0x3C127092, 0x7067BB5D, 0x44547D7C, 0x7380CAFF, 0xA5A2C4D8, 0x0D853E47, 0x0C8CA909},
24457 {0x79E2ACD9, 0x3808526B, 0x1335DEAE, 0x7D760594, 0x8BAE2497, 0x660961C4, 0xCD90F225, 0x0292CE29} } ,
24458 { {0xF9DC64B6, 0xE6E84E6E, 0x2D09F594, 0xC68F0553, 0x4448877F, 0xF658DC5C, 0x9F974382, 0x136A75AD},
24459 {0x77B9F890, 0x2DE40869, 0x703630D2, 0xB5510AF8, 0x75B585B4, 0x12205243, 0xBA659F49, 0x1A124D9E} } } ,
24460 { { {0x705FCCD9, 0x1FE7FFA1, 0xCF6BDEC2, 0x09BF178A, 0xFEA6906F, 0x2D684832, 0x98AA7B74, 0x246C2D25},
24461 {0xA4136D8B, 0xEF785F62, 0xAA68E1B0, 0xF31D341D, 0x172C7B02, 0x8CC26FDA, 0x3051EE95, 0x0FE8A5C4} } ,
24462 { {0x23CB9C24, 0xABAB2198, 0xC42D84B9, 0x9C0CCCA9, 0x04D45895, 0xDCCAAED7, 0x01AE2B88, 0x20B47261},
24463 {0x51DD945F, 0xFF914407, 0xCA3D022E, 0xDF483799, 0x219B5D61, 0xD1F7F15B, 0xC2D6E9A0, 0x18D4C145} } } ,
24464 { { {0x9D13A154, 0xC3BB47C3, 0xC65560BF, 0xE92808E9, 0x2A87B0FC, 0x633B2776, 0xD1C97FA1, 0x1A67F422},
24465 {0xB494868D, 0x39EE5BFA, 0x95234DD5, 0x6B563DC3, 0xE75A004A, 0x5FE9A6DB, 0xC3E491DF, 0x174B29D6} } ,
24466 { {0x9FCAF917, 0xB6A265EB, 0x2FF2DBBD, 0xFF7BA706, 0x3C0ACE0C, 0xE573E2FB, 0x43A84DC9, 0x1C4E2233},
24467 {0x18A9EF2A, 0x57E493D8, 0x4FDFBC4A, 0x1316FF5B, 0x1FBE2B2A, 0x08A8EE14, 0xD843EF28, 0x1153D07A} } } } ;
24468 static const fp12_t var_expected = { { { {0xD087C57E, 0x3C127092, 0x7067BB5D, 0x44547D7C, 0x7380CAFF, 0xA5A2C4D8, 0x0D853E47, 0x0C8CA909},
24469 {0x861D533A, 0x6EF7AD94, 0xECCA2165, 0xE3AAFA6B, 0x7451DB70, 0x542AEBBB, 0x726F0DDC, 0x22909658} } ,
24470 { {0x83D7E596, 0xC717435D, 0x9BAFC08F, 0x446200FB, 0x482ECB51, 0xB969FA9C, 0x26AF5593, 0x2306F7AA},
24471 {0x8E386862, 0x3A865016, 0x8574FBCB, 0xDCD8BB22, 0x4EA7B462, 0xB6BB4DFF, 0xF60C951C, 0x121BCFCE} } } ,
24472 { { {0x6AA7425C, 0xF89E0F67, 0xE0324928, 0x736A00A4, 0x84629117, 0x01A5CDA8, 0xA7E9A0A5, 0x1794D32D},
24473 {0x474400A2, 0x75465D6F, 0x715E8778, 0x332DF884, 0xC152B541, 0x9EDA7D1E, 0xA3AC7564, 0x20C6A3AD} } ,
24474 { {0xC7BE72FC, 0x3C0C01DE, 0x43492ADD, 0xD5296197, 0xFD546056, 0x96454A78, 0x498B9722, 0x18C39E3E},
24475 {0x2B5F3EF9, 0x90C9A91B, 0x18D106BA, 0x65455951, 0xEFD14036, 0x59B7D964, 0x7CD6FB83, 0x0354C5C0} } } ,
24476 { { {0xD4F4CF5E, 0x210DAA71, 0x9B49F250, 0xC63C2EFA, 0x2E19FF2D, 0x6A3A3D45, 0x64C6FFFD, 0x1B8A7482},
24477 {0x75B23CB6, 0x3B016B25, 0x0CD1D8CC, 0x60167540, 0x746D360E, 0x3D416B33, 0xE4B70CB0, 0x08098270} } ,
24478 { {0x9D958E72, 0xCA26335D, 0xEE092776, 0xFC596DD8, 0xD454F95A, 0x01C148F4, 0x8B921C50, 0x208FE75E},
24479 {0x9D669D10, 0xCDA338D5, 0x0927E3EF, 0x4F6612CF, 0xC5F53502, 0x11491824, 0x4DF9D15E, 0x1A679785} } } } ;
24481 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4061 a000");
24482 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4062 a001");
24483 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4063 a010");
24484 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4064 a011");
24485 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4065 a100");
24486 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4066 a101");
24487 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4067 a110");
24488 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4068 a111");
24489 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4069 a200");
24490 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4070 a201");
24491 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4071 a210");
24492 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4072 a211");
24495 static const fp12_t var_a = { { { {0xBEAA1E55, 0x04C54EE7, 0x52FDE6B1, 0x6C06C6CF, 0x48414F81, 0x62489FC1, 0x3782D668, 0x186C2CD4},
24496 {0x19383115, 0xFB54F534, 0x1D26F772, 0xF49E65BB, 0x9CA3F5A9, 0x41CB8670, 0x44CDEDC7, 0x04580BCC} } ,
24497 { {0x4B734E5D, 0xE395029D, 0x313A2F1E, 0xF2692B92, 0x6B4215CF, 0xCE2B7E34, 0xB33193E4, 0x0C55B1B5},
24498 {0x0578EC80, 0xF384CB36, 0x8A7B8AE9, 0x850C510F, 0x5D8A6AF0, 0x3705ACEC, 0x3C3E0CE0, 0x1A5FB88E} } } ,
24499 { { {0x0FA7FE5F, 0x7EF444CC, 0x4FF192FA, 0x82E443BB, 0x7149FAFD, 0xAC53EBCD, 0x347CB939, 0x0916052E},
24500 {0x1977D19A, 0x904A7B95, 0x72ED5637, 0xE3CAAEFB, 0x5CC30CD0, 0xB6366D82, 0x9FA29B07, 0x04CCA236} } ,
24501 { {0xA7753AAA, 0x3BBC3BE0, 0x33133ECF, 0x1E59B6F1, 0x2645F474, 0x2F7976ED, 0x3250060E, 0x1760568E},
24502 {0xB9481B24, 0x0427B97D, 0x02A97F95, 0x40D14FF6, 0x553BE3E2, 0xA303F5F9, 0xEA0A2E81, 0x02EBA5AD} } } ,
24503 { { {0xAB1AC966, 0xED49390A, 0x4B09225E, 0xC2FB6A93, 0x693EF5BA, 0x74DE1D02, 0xCEE0C032, 0x08DB9144},
24504 {0x2FC0F547, 0x41FCFB57, 0x5DD0FE7B, 0x36EBA160, 0xB2E6BB8E, 0xA4BB9FEF, 0x996E2A59, 0x1B8A2392} } ,
24505 { {0x8A4C6CBB, 0xB5132884, 0x553042B9, 0xDCE151BD, 0xC19B8EE0, 0x91887F95, 0xD379FA81, 0x1D89CC84},
24506 {0x78FC9545, 0xAC7D1C7D, 0xF1B67830, 0xAA27E957, 0xDA7C0DCB, 0x7BC06193, 0xEFF29C93, 0x03C98767} } } } ;
24507 static const fp12_t var_expected = { { { {0xBEAA1E55, 0x04C54EE7, 0x52FDE6B1, 0x6C06C6CF, 0x48414F81, 0x62489FC1, 0x3782D668, 0x186C2CD4},
24508 {0xE6C7CEFE, 0xABAB0ACB, 0xE2D908A0, 0x6C829A44, 0x635C0A5E, 0x7868C70F, 0xFB32123A, 0x20CB58B5} } ,
24509 { {0xB1276E9D, 0xAD4C02A2, 0xD0D2F872, 0xFE45DA66, 0xD34DD5D2, 0x503A133D, 0xD67A8D9B, 0x12B26818},
24510 {0xDFBFB055, 0xC5CEF475, 0xF8CF5ACE, 0xC6FC3BA0, 0x2B6CBC07, 0xE231FE0A, 0x3BC43691, 0x0ABB4FC8} } } ,
24511 { { {0xB571E642, 0xEFE1DB92, 0xE02512ED, 0x776FE42B, 0x36F4D260, 0x8ECB0C2B, 0xE9CB80C6, 0x1D72BA6B},
24512 {0x4325368B, 0xB772D37F, 0xB6BDFE26, 0xFA7835B8, 0xD46A650F, 0x198DBF29, 0x53B9E4D9, 0x00CA790D} } ,
24513 { {0x588AC569, 0x6B43C41F, 0xCCECC144, 0x42C7490E, 0xD9BA0B94, 0x8ABAD692, 0x0DAFF9F3, 0x0DC30DF4},
24514 {0xB9481B24, 0x0427B97D, 0x02A97F95, 0x40D14FF6, 0x553BE3E2, 0xA303F5F9, 0xEA0A2E81, 0x02EBA5AD} } } ,
24515 { { {0x2FC0F547, 0x41FCFB57, 0x5DD0FE7B, 0x36EBA160, 0xB2E6BB8E, 0xA4BB9FEF, 0x996E2A59, 0x1B8A2392},
24516 {0xAB1AC966, 0xED49390A, 0x4B09225E, 0xC2FB6A93, 0x693EF5BA, 0x74DE1D02, 0xCEE0C032, 0x08DB9144} } ,
24517 { {0x750BB524, 0xC4F253EC, 0xC7AA8517, 0xD4A0714E, 0x41FD9776, 0x68F66980, 0x85D262A2, 0x053CA7C0},
24518 {0x88781EA6, 0xDB2D57CA, 0x4003D9C0, 0xB5EBAF5A, 0xCF54F4DD, 0xE3B10B09, 0x511D1EE7, 0x1E241BEB} } } } ;
24520 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4073 a000");
24521 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4074 a001");
24522 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4075 a010");
24523 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4076 a011");
24524 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4077 a100");
24525 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4078 a101");
24526 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4079 a110");
24527 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4080 a111");
24528 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4081 a200");
24529 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4082 a201");
24530 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4083 a210");
24531 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4084 a211");
24534 static const fp12_t var_a = { { { {0x960B30BE, 0x5EF6E631, 0x35104A70, 0xEA356CA0, 0x8F535FCE, 0x1AF9F4C5, 0xF40E4B8B, 0x1C84AA61},
24535 {0x296AC446, 0xEEF2B3C5, 0x52707E27, 0x12474091, 0xD03AD252, 0x44A7523B, 0xCAA64B3B, 0x060392DD} } ,
24536 { {0x38828A0A, 0x1AB6CB63, 0x807252FD, 0xB6269A97, 0xA95EBCEC, 0x31DDBA8F, 0x380E47B3, 0x12F92D14},
24537 {0x89D1685B, 0x8AE15EDC, 0x29845F11, 0x186DCFF0, 0xFE867E6C, 0x2E159C06, 0xA70FC72E, 0x1B5109B4} } } ,
24538 { { {0xACAD47A2, 0x82A0CE12, 0x5A942FD8, 0x90BED077, 0xF3DD897F, 0x61EF5896, 0xB868CB46, 0x0D3D6BCE},
24539 {0x304B748E, 0x6C711EED, 0x2962829E, 0xCA8B5CEB, 0xF545DA11, 0x5AE63031, 0x4467842C, 0x1D839E55} } ,
24540 { {0x0B72DA96, 0x7EA1F892, 0xC4A3E383, 0xB8EE3EDD, 0xEC15380A, 0xC28CE8C0, 0xCE5BD2C0, 0x0248C6AD},
24541 {0x4A177579, 0x99931994, 0x1E905C45, 0x36E40CEA, 0x1888EF68, 0x59E4C216, 0xBE84D924, 0x0324B48D} } } ,
24542 { { {0x64011854, 0xB26F2542, 0x6BA5FC3C, 0x19A9FF2B, 0xCF57F6F1, 0x8072A9B3, 0x447340F1, 0x11E2594B},
24543 {0x5FFB2270, 0xDD99E6DF, 0x84DCF881, 0xF8F67BD5, 0x3C2B0C8C, 0x33D03E7F, 0x7328783B, 0x01EA568E} } ,
24544 { {0x01CBE75F, 0x9A4552D3, 0xA3805D53, 0xA0B605D2, 0x8CCAC0D5, 0x017C51F5, 0xDEC0F7AB, 0x106BE6EC},
24545 {0x88C62F77, 0x3E78EE30, 0x284E7DD1, 0x52DB108B, 0x18A0A7D0, 0x4A3EBBF0, 0xD2180DCF, 0x20199017} } } } ;
24546 static const fp12_t var_expected = { { { {0x960B30BE, 0x5EF6E631, 0x35104A70, 0xEA356CA0, 0x8F535FCE, 0x1AF9F4C5, 0xF40E4B8B, 0x1C84AA61},
24547 {0x296AC446, 0xEEF2B3C5, 0x52707E27, 0x12474091, 0xD03AD252, 0x44A7523B, 0xCAA64B3B, 0x060392DD} } ,
24548 { {0xC77D7609, 0x8C49349C, 0x7F8DAD16, 0xAAFA6568, 0x56A1431B, 0x885692F0, 0x07F1B84E, 0x122A376E},
24549 {0x762E97B8, 0x1C1EA123, 0xD67BA102, 0x48B3300F, 0x0179819C, 0x8C1EB179, 0x98F038D3, 0x09D25ACD} } } ,
24550 { { {0x2AF7DABD, 0x8BE277C0, 0xDC91DB57, 0x693DC579, 0xEF4F1C59, 0x0A06BE4D, 0xA2D7397E, 0x1B499CD3},
24551 {0xA5CA0BE9, 0x62715D0B, 0xA952F75A, 0x8906C216, 0x15790B3C, 0xF816A6B9, 0xBC3BDC3C, 0x220108B1} } ,
24552 { {0xD13A852F, 0x80C02B48, 0x5FEE29DE, 0x2442E83B, 0x386E0897, 0x4C649D55, 0x94677209, 0x2200B158},
24553 {0xD5C93953, 0x908619CA, 0xFDD853CA, 0x2598E47C, 0xFACF9F8A, 0xBFC2F2A8, 0x091EC942, 0x11863D9C} } } ,
24554 { { {0x4F9E6F88, 0x09BF4A53, 0x3783812C, 0x577991C4, 0x27D84A8B, 0xBC128F14, 0x286393DD, 0x130B6164},
24555 {0x52B919C0, 0xC3F0643A, 0xAB168247, 0x716CAB1F, 0x7FB40BF9, 0x6BD316DF, 0xB7022B93, 0x1AD65FC2} } ,
24556 { {0xFB5097A3, 0x00EC8BDD, 0xED96924B, 0xE7805773, 0x73150146, 0x6A31938A, 0x269F88F7, 0x1CB47AB9},
24557 {0xC457EC29, 0x47F5C79E, 0xAEF45967, 0x3CE909CD, 0xC6A96671, 0x62B2DFC0, 0x1F9B0B35, 0x02FC0574} } } } ;
24559 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4085 a000");
24560 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4086 a001");
24561 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4087 a010");
24562 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4088 a011");
24563 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4089 a100");
24564 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4090 a101");
24565 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4091 a110");
24566 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4092 a111");
24567 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4093 a200");
24568 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4094 a201");
24569 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4095 a210");
24570 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4096 a211");
24573 static const fp12_t var_a = { { { {0xAB169600, 0xFDCD6C24, 0x7C25D190, 0x6E332A8C, 0x808BD93C, 0x3E6A592E, 0x6C6540A9, 0x1C047378},
24574 {0x26392550, 0x371EEF74, 0x18C6714E, 0x6B55040F, 0x72223F42, 0x7D75E4C2, 0x990D1F68, 0x019EC271} } ,
24575 { {0x8F1D3854, 0x36992958, 0x6B532A34, 0xF7788DF8, 0x54413A80, 0xB94D750A, 0x3C99F2CD, 0x1B4390CD},
24576 {0x5D7AB3E7, 0x6BA2DEE7, 0xABAF7C47, 0x56FB9DB8, 0xF9AB7114, 0xB5591E13, 0x8F9D5188, 0x151285DC} } } ,
24577 { { {0x38E798EF, 0x797F7198, 0x741F3EA5, 0xA597E870, 0x1BB54BAA, 0xE12130FA, 0x8A1DC37E, 0x0854E3D9},
24578 {0x3A0BB95B, 0xAF9EFB72, 0xF5C74D0F, 0x4818C596, 0xB97D3D50, 0x9422AEB5, 0x9BAF9F49, 0x0B517025} } ,
24579 { {0xC1117DB7, 0x1D8DCE7A, 0xD78EEB54, 0x201D91DF, 0xBAFD2E25, 0x9F32B0D6, 0xA2F68A7B, 0x1F07FC8C},
24580 {0x16DF61E8, 0x0F6EEC2B, 0x89EF8DFB, 0x7F425E00, 0xCBC1FC1D, 0x6E299751, 0xCC1D2EF1, 0x0E1DE7BE} } } ,
24581 { { {0xB506F1CA, 0x8DE58917, 0x03BA5D21, 0xBBE46E6F, 0x9EA587BD, 0x7E9BD661, 0x1C51AAE4, 0x0DED34D8},
24582 {0x61423925, 0x4025F32E, 0x46F49201, 0x46E6C404, 0x89DD2865, 0x82B5308C, 0xD7E045AA, 0x199C7A3F} } ,
24583 { {0xE88F8581, 0xA29C118E, 0xC0E550E4, 0x70287512, 0xEE800788, 0x206ECFC1, 0xD2913EF3, 0x1E1738BD},
24584 {0x9DDB2EFC, 0xF87B122A, 0x77230F76, 0x0B3D6D57, 0x010AD789, 0x575E6688, 0x291729B5, 0x007A5994} } } } ;
24585 static const fp12_t var_expected = { { { {0xAB169600, 0xFDCD6C24, 0x7C25D190, 0x6E332A8C, 0x808BD93C, 0x3E6A592E, 0x6C6540A9, 0x1C047378},
24586 {0xD9C6DAC3, 0x6FE1108B, 0xE7398EC5, 0xF5CBFBF0, 0x8DDDC0C5, 0x3CBE68BD, 0xA6F2E099, 0x2384A210} } ,
24587 { {0xB49091F8, 0xA4192C69, 0x2DF8C68A, 0xD6CA676B, 0xA683855D, 0x5060BD54, 0x0BFFB94E, 0x178C80D2},
24588 {0xD641D3BE, 0xF3ED3055, 0xDAFDC402, 0x85F0B9EA, 0xDB9F2F84, 0x100CB2BE, 0x98991476, 0x08A224E8} } } ,
24589 { { {0xB97CD592, 0x28ADB6D0, 0xE341ED27, 0xD61CBFEA, 0x3A6ACD26, 0x0FD4C30C, 0x3AC3B271, 0x047DDB2C},
24590 {0xAE4CED3D, 0x98DC4D98, 0x5A0322BA, 0x3B6A6B39, 0xCA0B5784, 0xD55409CB, 0xEE44E436, 0x1059B5D7} } ,
24591 { {0x1438752E, 0xB39856E3, 0x5A748C30, 0x2B11F234, 0x21AAB96E, 0xF886DEAD, 0x6535F1DB, 0x08E063C4},
24592 {0x484B8DA2, 0xF8E3D5B7, 0x47B604D9, 0x28EA617F, 0x457F8777, 0xEAA1C147, 0x5E669CE8, 0x21C4E332} } } ,
24593 { { {0x63A96186, 0x8A675870, 0x0345BDF5, 0x3EDAE7BF, 0x9C170E9B, 0xB0A315F5, 0x9AFD1428, 0x087D99CD},
24594 {0x6208DD21, 0x85CBA65D, 0x53F17D6F, 0x7E6A4F2E, 0xED665A38, 0x0BAC8B2C, 0x24EA268B, 0x19D0E2CF} } ,
24595 { {0x571E51B1, 0x45455818, 0x3BC5797C, 0x90D789D3, 0xCC6BA8E3, 0x5C099E25, 0x05FAB8CC, 0x1F744056},
24596 {0x014B0FEC, 0xCE299BA5, 0x2FC15A61, 0xFE4D5E64, 0xC438E6C8, 0x485E50E5, 0x0FDFE2B3, 0x1FBDC212} } } } ;
24598 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4097 a000");
24599 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4098 a001");
24600 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4099 a010");
24601 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4100 a011");
24602 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4101 a100");
24603 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4102 a101");
24604 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4103 a110");
24605 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4104 a111");
24606 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4105 a200");
24607 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4106 a201");
24608 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4107 a210");
24609 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4108 a211");
24612 static const fp12_t var_a = { { { {0x71A3664C, 0x740F4EC9, 0x8CF6C791, 0x0A65474B, 0x35EC4BCC, 0xAB378F47, 0x2421D5C6, 0x14CBC7FB},
24613 {0x931053DC, 0x546A99B2, 0x06F5CFDD, 0x012AB518, 0xC46A0430, 0xFD77FD95, 0x269EBF2F, 0x1F4EB5F7} } ,
24614 { {0xFAEA3236, 0x8023A67A, 0xE9E0A97A, 0xA0E85805, 0x4BD6B432, 0x6E627706, 0x16C21581, 0x12B8958B},
24615 {0xD81BBF02, 0xC90104B4, 0x82E4B9D4, 0x34D6BDB1, 0x6926B33D, 0x3F8EBB7F, 0x8320CCB5, 0x01AE8A2B} } } ,
24616 { { {0xD29B9F11, 0xEFC65AE2, 0x5FA936A6, 0x29F562E4, 0x64507EB0, 0x35187DA4, 0x79D7E2B7, 0x0662D040},
24617 {0xF62EBBC0, 0xBF2E309A, 0xD00B9996, 0x79401FB2, 0x1E3FCBC3, 0x579712A3, 0xB548CD5B, 0x157FBFAB} } ,
24618 { {0x7265F9DA, 0x136F5A09, 0x7EB85C7A, 0x6B438112, 0x7FCD3D68, 0xEA2D4E3F, 0x42BB12A1, 0x090294D3},
24619 {0x9A227C16, 0x7F392BF1, 0x61D533D9, 0x73837C70, 0xACA8CA36, 0xCDCDDF67, 0x31723852, 0x144921F4} } } ,
24620 { { {0xB86A9D17, 0xFDB784FE, 0x0ABDEB07, 0x7F907CB2, 0xAC131ECE, 0xDE65B112, 0xDB1B496A, 0x0A4D1493},
24621 {0x96338A90, 0x3F91D775, 0xC7AA2D2D, 0xB9F5EDBF, 0x9EF161E6, 0x2D7AE5C6, 0x97B857E3, 0x1963EFC8} } ,
24622 { {0xCE7098C4, 0xCEAC57A6, 0x175E9CDB, 0x11169A08, 0x6A89EBFE, 0x872C4233, 0x08F9E41A, 0x215B7668},
24623 {0x99E12B64, 0x497B941E, 0x7DC082B4, 0xF3CEA83E, 0xDAB6AAC1, 0xF2B367F9, 0x6CEC0D19, 0x0B737AC3} } } } ;
24624 static const fp12_t var_expected = { { { {0x71A3664C, 0x740F4EC9, 0x8CF6C791, 0x0A65474B, 0x35EC4BCC, 0xAB378F47, 0x2421D5C6, 0x14CBC7FB},
24625 {0x6CEFAC37, 0x5295664D, 0xF90A3036, 0x5FF64AE7, 0x3B95FBD8, 0xBCBC4FEA, 0x196140D1, 0x05D4AE8B} } ,
24626 { {0x387C7179, 0x9C01B529, 0x1AB85746, 0x06BEA401, 0x3D2A25F7, 0x2DBE6B09, 0x307511C3, 0x235DBA91},
24627 {0xD82A0F55, 0xBBB2BB13, 0x7A9E003B, 0x72F572D0, 0x4A14D641, 0x47B40AAD, 0xE47C8061, 0x072F0DAF} } } ,
24628 { { {0xC8CCA2D0, 0x02DAFD62, 0xDC3FD74E, 0x9FE21DD9, 0xB9D889BF, 0x2A0F1A39, 0x2195C4B8, 0x1A1DA6A1},
24629 {0x2014D25A, 0x5BC7D485, 0xFED3768B, 0x8832F7B0, 0x068E3A7B, 0x1D246E0E, 0xD94CA77D, 0x0F2BC639} } ,
24630 { {0xAE0E766E, 0x9E811098, 0x1142344D, 0xDD85B285, 0xCB7DBFE6, 0x033F6BDC, 0x9C1CC10F, 0x00201D8B},
24631 {0x233C2147, 0xCC9E721E, 0x39ED83A0, 0x6DBF2EC1, 0x782CBF6B, 0xD9F62A4A, 0xA5300819, 0x1D6764FF} } } ,
24632 { { {0xC5656DF6, 0xBF5AD661, 0x94AE16CC, 0xC20CC924, 0x9B2CFB97, 0x554ABD62, 0xBB422117, 0x22C03A49},
24633 {0xE54B0076, 0x5303FF9A, 0x25B9ADE2, 0x61D2AFDA, 0x64F89198, 0x779D9709, 0x183B0794, 0x0797B2C2} } ,
24634 { {0x05D2BDA7, 0x8D9294FA, 0x20558B71, 0x3E130800, 0xB3524E12, 0xB1AD8730, 0x79DF6F72, 0x0F54D382},
24635 {0xAA097B7D, 0x28CA1A0F, 0x128A8F68, 0xADF4BE7E, 0xF1D919DB, 0x46D5AA6E, 0xCA500898, 0x075A52F0} } } } ;
24637 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4109 a000");
24638 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4110 a001");
24639 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4111 a010");
24640 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4112 a011");
24641 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4113 a100");
24642 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4114 a101");
24643 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4115 a110");
24644 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4116 a111");
24645 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4117 a200");
24646 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4118 a201");
24647 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4119 a210");
24648 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4120 a211");
24651 static const fp12_t var_a = { { { {0x6802E434, 0xD2AB5981, 0xC58B9274, 0x1F87AC7A, 0x8DFF1223, 0x097081F8, 0x2C4ACF77, 0x1A8C858E},
24652 {0x553DE276, 0x465EA200, 0x0B82386A, 0xD42FE22C, 0x45FC1559, 0x80B06AFD, 0x4B5B63EF, 0x236CD5B2} } ,
24653 { {0x50601E84, 0xB2541488, 0xDFCE3AE1, 0x761BDA6C, 0x771DBAB9, 0x6E360945, 0x2AE95015, 0x0892A0C3},
24654 {0x752F9395, 0x498C1819, 0xD64B6F4C, 0xC84BBBA6, 0x5D9F3520, 0xCB23881D, 0xB9F9C786, 0x18B89D36} } } ,
24655 { { {0x9564E40A, 0x29D4179A, 0x94FF8E24, 0xCA32CFAB, 0x65FAC516, 0x06FE198E, 0xAB4916AC, 0x1B414A04},
24656 {0x6F245641, 0xB45E3EED, 0x2BF3571E, 0xB5AEABC2, 0x0D57EC2B, 0x0A78D9F2, 0x3F383490, 0x16A765FD} } ,
24657 { {0xC1EE1015, 0x2EF3D4F1, 0xC4EC4EE5, 0xE92083BE, 0x806C10AE, 0xFAFB33A9, 0xFD7EB0FC, 0x0168B7F8},
24658 {0xEA6FDBD0, 0x5FC54A76, 0x34A5C48B, 0x82B1E0D0, 0x38A060BD, 0x83DBC323, 0x11DCD503, 0x013D76C3} } } ,
24659 { { {0xE7B5C756, 0x17C506AB, 0x06F52952, 0x3659966F, 0x12DE0F3F, 0x49FBC8D3, 0xEEC4875F, 0x0D9B440D},
24660 {0x310B0210, 0xF9383AD4, 0x7B7BA37D, 0x770C6E79, 0x059EA8E8, 0x120A6E54, 0x7226FE3D, 0x0E9DE7AA} } ,
24661 { {0xEE356C70, 0xE00E58E5, 0xBEF39FC8, 0xAC343937, 0xBA1C4CF8, 0x750D7B7E, 0x152D399A, 0x064D77C0},
24662 {0xAA09D8B4, 0x9D3A6BFC, 0x595004AA, 0xD88EB5FF, 0x108D522E, 0xD61D0BA6, 0xC0B5444F, 0x1C7E38E0} } } } ;
24663 static const fp12_t var_expected = { { { {0x6802E434, 0xD2AB5981, 0xC58B9274, 0x1F87AC7A, 0x8DFF1223, 0x097081F8, 0x2C4ACF77, 0x1A8C858E},
24664 {0xAAC21D9D, 0x60A15DFF, 0xF47DC7A9, 0x8CF11DD3, 0xBA03EAAE, 0x3983E282, 0xF4A49C12, 0x01B68ECF} } ,
24665 { {0xD4BB1246, 0xD6DBFFAA, 0x7C71ED38, 0x11437869, 0xE6268E37, 0x0DDE20EA, 0x6DF72337, 0x0E63120C},
24666 {0xA8B10C4C, 0x10F5FAC5, 0x38B90FA2, 0x5D01E568, 0x5A6A9708, 0x53BEDFB8, 0xE5C3E281, 0x1E9124B2} } } ,
24667 { { {0x1AC7E18A, 0xF3DD4E95, 0x6CF871F8, 0xDA8CEC55, 0xDC305A7C, 0xA889AE7D, 0x90A192D9, 0x12D4536B},
24668 {0xFDA07F1D, 0x26D75D09, 0x5EA2046F, 0x860DD169, 0xA6437B48, 0xBE58377A, 0xE1E428A0, 0x1073EE0E} } ,
24669 { {0x8BADA398, 0x207CDA61, 0xE22BB7B7, 0xFFA9DBE5, 0x8CC9E075, 0x14949C03, 0x52DC4D98, 0x031B4A5B},
24670 {0xDB90A59E, 0x2844DD97, 0x6177F65E, 0x9B19D2B8, 0xA3BA2E41, 0x3265E9C2, 0x7C1A9325, 0x2225448F} } } ,
24671 { { {0x3B80F859, 0x33771B0E, 0x3C808688, 0x63D79ACE, 0xFC3AA34B, 0xDE324ECA, 0x1DC520DF, 0x24F0F1BA},
24672 {0x2D937906, 0xF4CB1410, 0xFFF9DA9F, 0x22298367, 0xF229A0C6, 0x693FB046, 0x800B0024, 0x24E5FBC6} } ,
24673 { {0x01743E61, 0xC3969BA0, 0x3AA6DCDB, 0x876B12F0, 0x8E8E9465, 0xA0743607, 0x8FCE0037, 0x107B7E3F},
24674 {0x1A21D11A, 0x19F20A0A, 0x30800AEF, 0xBD4EB4F4, 0xC6C28058, 0x52597AAD, 0xAC64E8AA, 0x2296445A} } } } ;
24676 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4121 a000");
24677 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4122 a001");
24678 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4123 a010");
24679 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4124 a011");
24680 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4125 a100");
24681 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4126 a101");
24682 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4127 a110");
24683 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4128 a111");
24684 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4129 a200");
24685 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4130 a201");
24686 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4131 a210");
24687 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4132 a211");
24690 static const fp12_t var_a = { { { {0x48EFF530, 0x58703E7F, 0x20DBEC2A, 0x7DA94561, 0xC407F3FB, 0x45E82589, 0xBAC1EFC0, 0x1572C1CC},
24691 {0xCE115B8E, 0xEFAB08C9, 0xF856E2BB, 0x8A216394, 0x5F4BE36F, 0x4ACD10FC, 0x2FC7433B, 0x0A94F0B9} } ,
24692 { {0x28C9C309, 0x89963348, 0x206FB814, 0xF4408A83, 0x958C123C, 0xDFF2D47A, 0xDABF05CB, 0x0B4B8BAE},
24693 {0xF13C4D60, 0x2334D93B, 0x4C211562, 0x9F36A6A9, 0x0361D555, 0x3F796437, 0x1BA82481, 0x15337511} } } ,
24694 { { {0x9F2FE69A, 0xDFAC0DE3, 0x29CC713D, 0x1B5CB589, 0x84A33E9F, 0x5B530351, 0xE328259A, 0x124CD027},
24695 {0xB4EFD318, 0x26007F95, 0xF56F9539, 0xA815BD64, 0xDBC92AB9, 0xAE60B6FB, 0x26E07208, 0x1285294A} } ,
24696 { {0x6354DB35, 0x35D174E1, 0x7E0E9F2A, 0x92FB2820, 0xA6DFAB59, 0xCE35A919, 0x49D63123, 0x1CC06743},
24697 {0xEDB3DA14, 0x6031C1CB, 0x06A6E4A6, 0x8F448368, 0x4042BE1B, 0x4EA61FD1, 0x9B93C957, 0x0F1FEC83} } } ,
24698 { { {0x61D17CD5, 0x2A8CFBD5, 0x149C834C, 0xA71BCCA5, 0xF914875D, 0x4F93A55B, 0x4F567569, 0x11B27E5C},
24699 {0xA0D0E3CE, 0xCCFBB687, 0x69E4341C, 0x71A3C6C9, 0xC96B63AA, 0x91853A19, 0x77837065, 0x2393FFDC} } ,
24700 { {0x909B3CCC, 0x86F9F7BB, 0xE55E36EB, 0xB568C953, 0xF562736B, 0xE0965556, 0x92C61278, 0x16BC6083},
24701 {0x2588ADAF, 0x79C9DB9B, 0xD9F1C2CC, 0x964974FB, 0xC6A3B6D2, 0xC4FAB3E3, 0xA5AF5750, 0x0C65F08D} } } } ;
24702 static const fp12_t var_expected = { { { {0x48EFF530, 0x58703E7F, 0x20DBEC2A, 0x7DA94561, 0xC407F3FB, 0x45E82589, 0xBAC1EFC0, 0x1572C1CC},
24703 {0x31EEA485, 0xB754F736, 0x07A91D57, 0xD6FF9C6B, 0xA0B41C98, 0x6F673C83, 0x1038BCC6, 0x1A8E73C9} } ,
24704 { {0x636E6368, 0x44EB3934, 0x40531DCC, 0x71C8743E, 0xAE98F5B0, 0x510FAF0C, 0x923DFD64, 0x10DB14C5},
24705 {0x0301AAB3, 0xA4F01883, 0x896C1877, 0x1C79B896, 0x974CCD94, 0x14869D88, 0x8CF94A70, 0x11B837D7} } } ,
24706 { { {0xD3025EDD, 0xE3283ED3, 0x54F5673C, 0x86190206, 0x86DD50AD, 0xEBE36B59, 0xF2AF28E8, 0x0048670D},
24707 {0x8E4DE80A, 0x7F50749C, 0xEB7AD0EA, 0xBED6DE60, 0xDE89EA15, 0x24D66F18, 0x01808831, 0x155677E8} } ,
24708 { {0x5AF12943, 0xF902F5DC, 0x936AD40C, 0x8234CBDA, 0xBC686C78, 0xD22CFCAF, 0x1D399FCA, 0x0E4DCA29},
24709 {0x58448EE7, 0x390DB661, 0xFDE64655, 0xB5E49F18, 0x0AD1ED60, 0x0300CB84, 0xEB576C33, 0x0AAEB28D} } } ,
24710 { { {0x2B3E83AD, 0xBB88F94D, 0x2D37C703, 0x6F1AC600, 0xF52D4265, 0x8FA84844, 0x5A8A7D41, 0x0DDD40AE},
24711 {0xBA2922B8, 0x5545E1A3, 0xDCB3F3A0, 0x79BEC887, 0x0026944C, 0xD88E6C70, 0x42ED202B, 0x13F04E3A} } ,
24712 { {0x149EB804, 0x00040E1E, 0x6F2A55C1, 0xE94E9C01, 0xC900E8A6, 0xBC5581C3, 0x99087504, 0x1AE74B80},
24713 {0x9F879D10, 0xE72EBD41, 0xB2FFCA11, 0xB39B9D84, 0xD8E3C9AD, 0x58AC5658, 0xCE2F1914, 0x05E72360} } } } ;
24715 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4133 a000");
24716 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4134 a001");
24717 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4135 a010");
24718 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4136 a011");
24719 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4137 a100");
24720 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4138 a101");
24721 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4139 a110");
24722 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4140 a111");
24723 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4141 a200");
24724 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4142 a201");
24725 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4143 a210");
24726 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4144 a211");
24729 static const fp12_t var_a = { { { {0xFB52958E, 0xBFE582A3, 0xDBC2522A, 0xA384C1B4, 0x02BF2092, 0xDD4337D0, 0x25AE718A, 0x02403360},
24730 {0xC75A80F0, 0xDDC5FDF5, 0x442F3F48, 0xC6900EC7, 0xA708AB08, 0x0467B51B, 0xB4868DF6, 0x14857092} } ,
24731 { {0x56DC9636, 0x47DC0A12, 0x4F1C9F6D, 0x05CFB0E7, 0x90A3EEAC, 0xCC1A52D9, 0x5E895181, 0x0936F54C},
24732 {0x60C74CBB, 0xA6A12559, 0xB95270D9, 0x6E07B27B, 0x2EEB94C2, 0x5765CEB4, 0xCD3C77D9, 0x1C978CA4} } } ,
24733 { { {0x753E75EC, 0x972B544B, 0xF3A3123B, 0xF4F91DF9, 0x82D970EA, 0x1880AC85, 0x5DCB2D98, 0x1DC9E0D0},
24734 {0x63A8D721, 0xC0CF6535, 0x9DA6B6E8, 0x215702CE, 0x7C92BC2A, 0xDB684197, 0x2274E068, 0x1BE0D6CC} } ,
24735 { {0x570259F8, 0x690D645B, 0x7BDD4620, 0xFB5EA3FF, 0x496D092B, 0x600458D9, 0xC496B509, 0x15970490},
24736 {0xA2002446, 0x57B78880, 0x3B85492F, 0xBBEA0B08, 0xF4BAA16B, 0x7F3E51FC, 0x9198DDC0, 0x1EBCE06F} } } ,
24737 { { {0x620135C3, 0x7311B8AB, 0xF185CB01, 0xC9F1DD19, 0x22876DAF, 0x3A6A7D44, 0xA4F75436, 0x0EADF9D8},
24738 {0xE7478DAB, 0x09E80ABA, 0xC0E6751C, 0x88A81E74, 0x2E12EF72, 0x6D5ED8C0, 0x07D114D8, 0x0102089F} } ,
24739 { {0x2B7B4D6A, 0xC40D1D0D, 0x252F1937, 0x1C8CA439, 0x5D6F4105, 0xE62BE5C4, 0x5CE714FB, 0x02DEE051},
24740 {0xEBAFD4D8, 0x75DE2FEC, 0xA35A0CE3, 0x43724A83, 0x5776A20B, 0x78E360E3, 0xF45679BE, 0x1F5EED35} } } } ;
24741 static const fp12_t var_expected = { { { {0xFB52958E, 0xBFE582A3, 0xDBC2522A, 0xA384C1B4, 0x02BF2092, 0xDD4337D0, 0x25AE718A, 0x02403360},
24742 {0xC75A80F0, 0xDDC5FDF5, 0x442F3F48, 0xC6900EC7, 0xA708AB08, 0x0467B51B, 0xB4868DF6, 0x14857092} } ,
24743 { {0xA92369DD, 0x5F23F5ED, 0xB0E360A6, 0x5B514F18, 0x6F5C115C, 0xEE19FAA6, 0xE176AE7F, 0x1BEC6F35},
24744 {0x9F38B358, 0x005EDAA6, 0x46AD8F3A, 0xF3194D84, 0xD1146B45, 0x62CE7ECB, 0x72C38828, 0x088BD7DD} } } ,
24745 { { {0x468757A5, 0x0B8D20D2, 0x798AB150, 0x810C9E27, 0x25F7E3B4, 0x51370E73, 0x629C23AA, 0x036ECE37},
24746 {0xCBC8E67C, 0x211DF740, 0xAA639CA1, 0xD43ADC7F, 0x4920DB66, 0xD6EAC51D, 0xA1509A86, 0x15D23154} } ,
24747 { {0x0ED013BD, 0x7B52608B, 0x6AE94E1D, 0x6AE36840, 0x13D3E4F8, 0x85E96DE8, 0xEC75EDC6, 0x208F3306},
24748 {0x926A0CF7, 0xB3565E3E, 0x0E1C8741, 0x84A20947, 0x61276605, 0x83AD7CD9, 0x3A717BCD, 0x1233AE8E} } } ,
24749 { { {0xFA65572F, 0x58C59F0F, 0x488B868C, 0x2A305A13, 0xB2DCC71A, 0xE12CF145, 0x6E5BBCF4, 0x1317C5ED},
24750 {0x8BE18F95, 0x3684B1A9, 0xC347C794, 0xE21858B3, 0x56DC2713, 0xE3A0B823, 0x23714F7B, 0x2419F0FE} } ,
24751 { {0x4E1CD95F, 0x484A9ADD, 0x16A5283F, 0xBF3BA7A9, 0x6B7E4AE6, 0x6142778D, 0x32CB8A02, 0x138D82ED},
24752 {0xAD16BE69, 0x6C4D5AD5, 0xE182F695, 0x889F109D, 0x11DD6DFD, 0xA57075B5, 0x2E5C877A, 0x19CCAF82} } } } ;
24754 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4145 a000");
24755 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4146 a001");
24756 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4147 a010");
24757 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4148 a011");
24758 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4149 a100");
24759 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4150 a101");
24760 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4151 a110");
24761 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4152 a111");
24762 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4153 a200");
24763 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4154 a201");
24764 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4155 a210");
24765 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4156 a211");
24768 static const fp12_t var_a = { { { {0x85AF6848, 0x1BA2491F, 0x887FAF0A, 0xC1572907, 0xD36A3F05, 0xDF0EA5C7, 0xFEB6115E, 0x215F4682},
24769 {0xFE1038FE, 0x6760447D, 0xB4F348FA, 0x22AA6DF7, 0x7AC7702A, 0x960852F1, 0x564E7F4E, 0x1DCC88F8} } ,
24770 { {0xE6AC27B7, 0xFE312565, 0xD4C0FD0A, 0xA2111B12, 0x42C38DE6, 0xE2429945, 0x8E53BA99, 0x1F8017A9},
24771 {0xFAB98CA3, 0xCAD4F1CE, 0x7F891A7A, 0x1EFB84B7, 0x5DD68A99, 0x06554E96, 0xB6ACDBB0, 0x1B3E0807} } } ,
24772 { { {0xD793E632, 0x3840A375, 0xA0AA0A14, 0x81576B41, 0x903DA564, 0x444E2ADA, 0x2EEBAACF, 0x1D901D26},
24773 {0x4584BA83, 0x935FFF0F, 0x918BEB3A, 0xBF3F7542, 0x09AF6F80, 0x3D8A2BC8, 0x8B2720EC, 0x23349C4C} } ,
24774 { {0xC974B062, 0x2264C76E, 0xDF41E04C, 0xE9E91EF4, 0xBD2FFE8E, 0xD09CA97D, 0x7108D927, 0x15DDEA23},
24775 {0xB986E1D3, 0x0D92946E, 0x2D8034ED, 0x1E81FD7F, 0x17E72EA3, 0x4702ED0B, 0x2989B40E, 0x03F9ED31} } } ,
24776 { { {0xEEC922AE, 0xD169708B, 0xFA15EDFB, 0x2CD94EE5, 0x017F0709, 0x5D1AD4E9, 0x40F7FB50, 0x0A059CB6},
24777 {0x108884B0, 0xDDD040E5, 0x17C106C0, 0xD998355B, 0x23EA89F8, 0x3A584B01, 0x4F2CDFAD, 0x035BE680} } ,
24778 { {0xEDE8570C, 0x67A309D7, 0xA4ECA368, 0xA26844DA, 0x82AFB027, 0x21093056, 0xE4846B8C, 0x1D2084F8},
24779 {0x1A0712FE, 0x23910021, 0x0DA20F55, 0xF2198D7A, 0xE2514CDF, 0xD9FF1BB5, 0x99F2F62C, 0x03428C9F} } } } ;
24780 static const fp12_t var_expected = { { { {0x85AF6848, 0x1BA2491F, 0x887FAF0A, 0xC1572907, 0xD36A3F05, 0xDF0EA5C7, 0xFEB6115E, 0x215F4682},
24781 {0x01EFC715, 0x3F9FBB82, 0x4B0CB719, 0x3E769208, 0x85388FDE, 0x242BFA8E, 0xE9B180B3, 0x0756DB89} } ,
24782 { {0x646D7AB3, 0x834673C6, 0x943A77C6, 0x3507599F, 0xE651DA24, 0x9117CAB9, 0x3399F96D, 0x233D2894},
24783 {0xC610529D, 0x17EC85A5, 0x0164ED95, 0xD41F3909, 0x956A4ACD, 0x57A6C98E, 0x81D81BC0, 0x04C36846} } } ,
24784 { { {0xD53805C3, 0x26324AC7, 0xE50CB674, 0x04490610, 0xC143E935, 0x2B7FDEC6, 0x9F388827, 0x17982517},
24785 {0x6A28219F, 0xF52BAC8F, 0x733BB851, 0xE84148AC, 0x5FAA1FE7, 0x3AC60A30, 0x3A45FD9D, 0x102A5429} } ,
24786 { {0x6F534868, 0xB3838E87, 0x13C7819F, 0xD7FD9334, 0xF75D92BF, 0x13EADE39, 0xAD351D46, 0x0F468ADF},
24787 {0x5C057A20, 0x91B106DE, 0xC4387628, 0x044724CE, 0x922FCE5A, 0xE1EDDA1C, 0x18F96E9D, 0x038A71E0} } } ,
24788 { { {0x63D278C8, 0xBB483485, 0x0A2DD04E, 0xDF102F6D, 0xEE2564BD, 0xD87CC332, 0xC25AB7C6, 0x0D154C29},
24789 {0xA85A893C, 0x3AB5992F, 0x3288F40C, 0x2BFA121D, 0x369946FB, 0x1552F296, 0xF797D8C3, 0x01E66FBD} } ,
24790 { {0xD4D53E45, 0x1A3301AB, 0x18B96DAD, 0x377C2268, 0x4782480B, 0x6A41C5B2, 0xFF69105B, 0x07147370},
24791 {0x1A5FD9E9, 0x2ABBD571, 0xB9929858, 0x0B5AEF7A, 0x58D72D50, 0x62DAA66E, 0x90615023, 0x2454F646} } } } ;
24793 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4157 a000");
24794 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4158 a001");
24795 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4159 a010");
24796 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4160 a011");
24797 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4161 a100");
24798 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4162 a101");
24799 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4163 a110");
24800 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4164 a111");
24801 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4165 a200");
24802 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4166 a201");
24803 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4167 a210");
24804 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4168 a211");
24807 static const fp12_t var_a = { { { {0x5437D9F9, 0x3B744770, 0x8500A04C, 0x82474533, 0x8E10F561, 0x88FF156E, 0x11591330, 0x1DCC397A},
24808 {0x794F1235, 0x60D31B0E, 0x06B8234B, 0xECF83922, 0xE05E7670, 0xB6CF1238, 0xAF6459C8, 0x23EB258C} } ,
24809 { {0x0025E93F, 0x84EA77D7, 0x24EAB71E, 0x663E6BDC, 0x822488BE, 0x5094E716, 0xE125379F, 0x0385FBF7},
24810 {0x5DBE94A7, 0x66BF4E8D, 0xE51AA48E, 0x0A8A29CE, 0xD1C3F18D, 0x83031151, 0xABC7B46E, 0x02FD0D3C} } } ,
24811 { { {0xBF481D2E, 0x39087337, 0xFC86ADA5, 0x206052CE, 0x5D4DB666, 0xAB0D6110, 0x53D0FCD1, 0x0AE8878F},
24812 {0x48294100, 0x41037708, 0x7F5453E5, 0x8C66A4A5, 0x933EEDCB, 0x7DFB33C9, 0x7EC5F748, 0x1933F480} } ,
24813 { {0x9E9DAB81, 0xB73CCFC6, 0xC8CB5F04, 0xD7E6EDF5, 0x0EEF4A58, 0xB87B22BC, 0x6F596CEE, 0x22A8A544},
24814 {0xA0408E1D, 0x82E273D0, 0x9E30360D, 0x1134B619, 0xA067C156, 0x1854A232, 0xC1DDF3C6, 0x07242E74} } } ,
24815 { { {0xE1291AFB, 0x1D97D117, 0x97EC9FE7, 0x7ADC6D77, 0x48BF04ED, 0x9BBE4A26, 0xA85CD9DF, 0x092B63DA},
24816 {0x9FACFEAA, 0x55D079C9, 0xC9BF14F3, 0x7E641C78, 0x69A685C2, 0x35618978, 0xFDC872FB, 0x0DE837C2} } ,
24817 { {0xB5E5BDEF, 0x44EB73C3, 0xB76309C6, 0xFFC61FA8, 0xDAED0A6F, 0x8298399B, 0x4BCED1C6, 0x19D07A7A},
24818 {0xA9D53118, 0xAE0534FD, 0xA3E7D926, 0xFAA45D50, 0x75A298AC, 0x290F7859, 0xADCA46C7, 0x0A8CD60E} } } } ;
24819 static const fp12_t var_expected = { { { {0x5437D9F9, 0x3B744770, 0x8500A04C, 0x82474533, 0x8E10F561, 0x88FF156E, 0x11591330, 0x1DCC397A},
24820 {0x86B0EDDE, 0x462CE4F1, 0xF947DCC8, 0x7428C6DD, 0x1FA18997, 0x03653B47, 0x909BA639, 0x01383EF5} } ,
24821 { {0x36598CC0, 0x307DC475, 0xB23A5797, 0x83268756, 0x6E564637, 0xBC623286, 0xAB9CBEA4, 0x01F50F80},
24822 {0x9FDFC21F, 0x0D28B3A8, 0x960275A5, 0x237286B8, 0x37070DDA, 0x8C930A36, 0x5E176E8A, 0x1C0E043D} } } ,
24823 { { {0x6C13E28E, 0x8DAE2CFA, 0x8DEF4810, 0xEDD4E1FC, 0x4DF79ED3, 0xCAD22454, 0x338683CA, 0x014FFA11},
24824 {0x685AD3A7, 0x549E2837, 0x9239D70A, 0x0D0B2EB0, 0xCF892EE5, 0x8108DD50, 0x6223DB5E, 0x0DD821D6} } ,
24825 { {0x61625492, 0xEFC33039, 0x3734A10E, 0x893A120A, 0xF110B5AF, 0x01B92AC3, 0xD0A69313, 0x027ABF3D},
24826 {0xA0408E1D, 0x82E273D0, 0x9E30360D, 0x1134B619, 0xA067C156, 0x1854A232, 0xC1DDF3C6, 0x07242E74} } } ,
24827 { { {0x9FACFEAA, 0x55D079C9, 0xC9BF14F3, 0x7E641C78, 0x69A685C2, 0x35618978, 0xFDC872FB, 0x0DE837C2},
24828 {0xE1291AFB, 0x1D97D117, 0x97EC9FE7, 0x7ADC6D77, 0x48BF04ED, 0x9BBE4A26, 0xA85CD9DF, 0x092B63DA} } ,
24829 { {0xF3666D9F, 0xDFC70509, 0xC3EB5903, 0xBCF265B0, 0xCC20A46B, 0xC0ABF2FE, 0xE13D2A49, 0x014C4CF0},
24830 {0x569E9514, 0x1F9BB426, 0xF8317061, 0x1F82996A, 0x5633D558, 0xF30A5E70, 0x9FC5342E, 0x034A7503} } } } ;
24832 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4169 a000");
24833 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4170 a001");
24834 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4171 a010");
24835 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4172 a011");
24836 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4173 a100");
24837 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4174 a101");
24838 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4175 a110");
24839 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4176 a111");
24840 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4177 a200");
24841 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4178 a201");
24842 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4179 a210");
24843 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4180 a211");
24846 static const fp12_t var_a = { { { {0xC4CBFD21, 0x78FA2065, 0x64B4F66E, 0xCE35AFE2, 0x137B8319, 0xFC80A892, 0x42DE62BC, 0x250957CE},
24847 {0x8BB80498, 0xEDCAC5A9, 0x4F6BFBB1, 0x255F6A12, 0x2ADFFE57, 0x7592749C, 0x4622C84D, 0x24B04893} } ,
24848 { {0x60D8E35F, 0x44DF58C6, 0x3A14D6C2, 0x5EC00F03, 0x7B2CB97C, 0x8BD64073, 0x2C722EFC, 0x00F39607},
24849 {0x8B469B4E, 0x1EDFF6F3, 0xE21600D2, 0xFABE3A13, 0x282A1D6D, 0xAB5576F3, 0x41E77CCA, 0x2214ECCB} } } ,
24850 { { {0x6A000942, 0x53C1E979, 0x4CFD3201, 0x49744E49, 0x5DC01B19, 0xDCA27F2B, 0x76AD82AC, 0x0C78A77C},
24851 {0xF5966D48, 0xF71932E7, 0xCC542B04, 0x4CC9C6FB, 0x650DE07D, 0x2B5624A8, 0xEEF49B26, 0x20FBE414} } ,
24852 { {0x04817C9F, 0x96D52F56, 0xED154FAF, 0x3A5B14D0, 0xE0F42689, 0xCA4A1BF9, 0x38338654, 0x1D3775E8},
24853 {0x4C4C376D, 0xE029C07D, 0xE18A8358, 0xBE6D4D1D, 0x89267C24, 0xF2942968, 0x84E8D0AE, 0x0B7BE7DA} } } ,
24854 { { {0x373E43BA, 0x5C90C5D3, 0xDAA5781E, 0x7EB87228, 0xA8F793B4, 0x883A1259, 0xCE9A7984, 0x178320DC},
24855 {0x606B7C6E, 0xAC33D50F, 0xFB8D6273, 0xA14FACCA, 0xEEE63C7B, 0x9E580514, 0x6F97625B, 0x0C810764} } ,
24856 { {0x5E2A619F, 0x46F92E93, 0xA5B32EC3, 0xDEAC35EA, 0x07E9CF3B, 0x2355B706, 0x69C452C7, 0x064BE629},
24857 {0x2D936244, 0xB788DBA6, 0xA5045713, 0xB252093C, 0xD40DB4F5, 0x9D55EA11, 0xC6C2262B, 0x0036C5F9} } } } ;
24858 static const fp12_t var_expected = { { { {0xC4CBFD21, 0x78FA2065, 0x64B4F66E, 0xCE35AFE2, 0x137B8319, 0xFC80A892, 0x42DE62BC, 0x250957CE},
24859 {0x7447FB7B, 0xB9353A56, 0xB0940461, 0x3BC195ED, 0xD52001B1, 0x44A1D8E3, 0xF9DD37B4, 0x00731BEE} } ,
24860 { {0x5137DD6A, 0xBE324B30, 0x652E90E3, 0x439A029E, 0x3537F392, 0x51BA8788, 0x46587F75, 0x0172A3BF},
24861 {0x3A01F3B4, 0x5D483DB4, 0xA7F4A624, 0x2724C219, 0x974267C6, 0xC77F73B6, 0x2133CC99, 0x0C2803BE} } } ,
24862 { { {0xDD040FBD, 0x2B933211, 0x7187A71C, 0xE986636C, 0x203B65E6, 0xD1A64A0F, 0x36BDC3BD, 0x2080EAE1},
24863 {0x1C44887A, 0x719192BA, 0x953E8AF2, 0xF079AFCC, 0xC79FF0C5, 0xE7C836FD, 0x6D11E93F, 0x02115B65} } ,
24864 { {0xFB7E8374, 0x102AD0A9, 0x12EAB064, 0x26C5EB2F, 0x1F0BD97F, 0xEFEA3186, 0x07CC79AC, 0x07EBEE9A},
24865 {0x4C4C376D, 0xE029C07D, 0xE18A8358, 0xBE6D4D1D, 0x89267C24, 0xF2942968, 0x84E8D0AE, 0x0B7BE7DA} } } ,
24866 { { {0x606B7C6E, 0xAC33D50F, 0xFB8D6273, 0xA14FACCA, 0xEEE63C7B, 0x9E580514, 0x6F97625B, 0x0C810764},
24867 {0x373E43BA, 0x5C90C5D3, 0xDAA5781E, 0x7EB87228, 0xA8F793B4, 0x883A1259, 0xCE9A7984, 0x178320DC} } ,
24868 { {0xE1C2DDD6, 0xC480646B, 0x080C0213, 0x41C3FB1B, 0x588BCE49, 0x6E5CCE61, 0x736A99D8, 0x1D284182},
24869 {0xDCF9BF7E, 0x44F7B482, 0x085DB655, 0x01A88542, 0xF4A5CB91, 0xA87278D5, 0x6F8A49C0, 0x2514DD54} } } } ;
24871 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4181 a000");
24872 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4182 a001");
24873 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4183 a010");
24874 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4184 a011");
24875 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4185 a100");
24876 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4186 a101");
24877 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4187 a110");
24878 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4188 a111");
24879 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4189 a200");
24880 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4190 a201");
24881 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4191 a210");
24882 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4192 a211");
24885 static const fp12_t var_a = { { { {0x56F39C8D, 0xA2DDF1D4, 0x934749B8, 0x96B61ACF, 0x76CC6E6E, 0x4C03F320, 0x1DDFD5E5, 0x1F196068},
24886 {0x9EDDF62F, 0xC2704568, 0xDA480570, 0xEDBF3198, 0x2AAB5DE5, 0xC5909D8C, 0x2F65844D, 0x137F312D} } ,
24887 { {0xAC85541F, 0x91B52433, 0x349C15AC, 0xBC0F5DA8, 0xBB7DCA67, 0x1757CEAD, 0x721770FB, 0x0593BD89},
24888 {0xABE5336E, 0xBAEF44CC, 0x8C7F1FED, 0x9E08B231, 0x4EDBEE17, 0xD4C66698, 0x29D419E8, 0x14287F88} } } ,
24889 { { {0xE8F1AAF0, 0xCABAD49C, 0x94640E8C, 0x262CD67B, 0x4492F8F4, 0x6995204F, 0x4AD0E632, 0x19E82F46},
24890 {0x2B3E0778, 0x9EB0D795, 0x35B267B6, 0x422F7BE0, 0xB58D256B, 0x1D8726D7, 0x1D6205AA, 0x15E7FC42} } ,
24891 { {0x4C91C7CE, 0x2ED29924, 0x6BD26F9E, 0x200039A5, 0x40CA4FE7, 0x6DFC635B, 0x77FB9DB4, 0x170F8A0C},
24892 {0x3CA3255B, 0x50ABFDA2, 0x59FE96B7, 0xBA71138B, 0xE2436921, 0x07DDCB15, 0x5C4F2FCA, 0x06B8B6B8} } } ,
24893 { { {0x156A7C3C, 0x6E85CF32, 0x8E4725D6, 0x5084E0E4, 0x332B5FC5, 0x190B2C81, 0x1E8A44DB, 0x111F2D41},
24894 {0x35429B66, 0xA1A7F747, 0xC4101E36, 0xB1077FF3, 0x14870E23, 0xD8A0B8C3, 0x0CF4D3D6, 0x1C268DE2} } ,
24895 { {0x104767BB, 0xCD008877, 0x756D457D, 0xB3E38107, 0xD3E6B7EC, 0x54D3D2C5, 0xB0438CEE, 0x0E013B31},
24896 {0x53167964, 0xA1E86811, 0xAC4FCDE5, 0xC7B3536E, 0xC560EF35, 0x77C3F4FE, 0xF957DDD5, 0x214C9C8A} } } } ;
24897 static const fp12_t var_expected = { { { {0x56F39C8D, 0xA2DDF1D4, 0x934749B8, 0x96B61ACF, 0x76CC6E6E, 0x4C03F320, 0x1DDFD5E5, 0x1F196068},
24898 {0x9EDDF62F, 0xC2704568, 0xDA480570, 0xEDBF3198, 0x2AAB5DE5, 0xC5909D8C, 0x2F65844D, 0x137F312D} } ,
24899 { {0x537AABF4, 0x154ADBCC, 0xCB63EA67, 0xA511A257, 0x448235A0, 0xA2DC7ED2, 0xCDE88F06, 0x1F8FA6F8},
24900 {0x541ACCA5, 0xEC10BB33, 0x7380E025, 0xC3184DCE, 0xB12411F0, 0xE56DE6E7, 0x162BE618, 0x10FAE4FA} } } ,
24901 { { {0x1A763684, 0xE8E88858, 0x4D17F22E, 0x7EAD618F, 0x2BEE5673, 0x3C91EB46, 0x4B850AA6, 0x05725447},
24902 {0xBC747088, 0xBA12ED03, 0x3FB88553, 0x8A1B3D9F, 0x7A03FFCC, 0xE59CB2DB, 0x5F62597D, 0x0DD641D5} } ,
24903 { {0x17B4B8B1, 0xFF9B4651, 0xE18C5A67, 0x3DF435AE, 0xFDDEC3D8, 0xEF5E3F65, 0xD4149B81, 0x1EE8618B},
24904 {0x8E406E81, 0xAD0B91C2, 0x4CFF9A0D, 0x6A37354A, 0x063A084E, 0x381083A5, 0x18EE22C0, 0x14055993} } } ,
24905 { { {0xEF4B1C79, 0xB0FF6925, 0x8EF90BAF, 0xCF06E718, 0x5EFB207C, 0xE832AC95, 0xA341FBA9, 0x1D31CA36},
24906 {0xE74980ED, 0x414F69BB, 0xDD70EB86, 0x1B544061, 0x0636F21D, 0x96B702B0, 0x1BE342FE, 0x184C1DC9} } ,
24907 { {0x30120220, 0x0D40EF61, 0x573E44BC, 0x94AC279F, 0x68F6ED84, 0x29096945, 0xA39913F3, 0x208C44BF},
24908 {0x9E8931C0, 0xF943251D, 0xFE6DAB02, 0x7C99AF33, 0x0FC29D4B, 0x8893ADE9, 0xA066BECD, 0x10EE6426} } } } ;
24910 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4193 a000");
24911 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4194 a001");
24912 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4195 a010");
24913 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4196 a011");
24914 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4197 a100");
24915 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4198 a101");
24916 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4199 a110");
24917 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4200 a111");
24918 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4201 a200");
24919 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4202 a201");
24920 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4203 a210");
24921 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4204 a211");
24924 static const fp12_t var_a = { { { {0x9D7A0D9C, 0xA22CF9B9, 0x1A23160D, 0xD7214FBD, 0x71220AFB, 0x07686002, 0x4F5F7448, 0x0A508F47},
24925 {0xC0196F85, 0x700CEF4B, 0x92913B54, 0xF2C4819F, 0x572BB587, 0xD01F875F, 0xEDD43268, 0x1A2CD0B4} } ,
24926 { {0x34F08213, 0xC53799A4, 0xCDE05E1D, 0x6686B29F, 0x23D8237B, 0xB8887DDD, 0xBA880FF2, 0x165F2793},
24927 {0xCBC3E978, 0x83C08EDC, 0x3973F5BA, 0x6C6D4A04, 0x6A71553B, 0x1DC58A79, 0x34A97ADB, 0x2439D4BF} } } ,
24928 { { {0x447A2650, 0xA5B367DD, 0x3B2447E2, 0xA640DD2A, 0xF405DD3B, 0x4482D567, 0x0594A249, 0x2297127F},
24929 {0xA26EC50E, 0x5393FE97, 0x2FD355AD, 0x67029D06, 0xC49356D2, 0x85C75851, 0xB796854B, 0x09B4ED91} } ,
24930 { {0xEF4D635F, 0xA9319137, 0x6A69D815, 0x8651393F, 0xB1D7CDA6, 0xBE0594B8, 0xD7BCC327, 0x10DA77E0},
24931 {0x06CA3614, 0xB47E66CC, 0x8C7CBF9D, 0xE5C159BE, 0x4BEA3F9E, 0x336424CB, 0xC09EDF76, 0x1CEBF4FF} } } ,
24932 { { {0x9E396ADD, 0x9FB7202C, 0x24BD4C9F, 0x55AF7BA0, 0x051BFBC8, 0xFDAFDFBA, 0xF58987A5, 0x0ED230A5},
24933 {0xDB91D4E0, 0x16221DEC, 0xE26F6198, 0x8ED1C3B4, 0xB1A28792, 0xBA3410A1, 0x59A0B8EE, 0x138E2FA1} } ,
24934 { {0xC07BD4AB, 0x734800A6, 0x0DC4F4F0, 0x46B15E58, 0x34CCDABF, 0xD13FED88, 0x48F30575, 0x1A727285},
24935 {0x4B0F3EBE, 0x96AA0732, 0xCCB99516, 0x753E749D, 0xBFE118A1, 0x3BBB246B, 0x30CED2C1, 0x15C3D02B} } } } ;
24936 static const fp12_t var_expected = { { { {0x9D7A0D9C, 0xA22CF9B9, 0x1A23160D, 0xD7214FBD, 0x71220AFB, 0x07686002, 0x4F5F7448, 0x0A508F47},
24937 {0x3FE6908E, 0x36F310B4, 0x6D6EC4BF, 0x6E5C7E60, 0xA8D44A80, 0xEA14C620, 0x522BCD98, 0x0AF693CD} } ,
24938 { {0xDBCD623B, 0x50ECD70D, 0x9B0DA4E8, 0xE77572C4, 0x8F33A2D8, 0xBE72257E, 0xE03B9D7A, 0x20AC9707},
24939 {0xCE495E22, 0x1F04C233, 0xC571A118, 0x0422FEC5, 0x9AE893B6, 0xA29170E1, 0xD7D4C2FE, 0x157122B4} } } ,
24940 { { {0x6760D86E, 0x85556917, 0x7BC24A6F, 0x6113E0FE, 0xBA2121AF, 0x15698958, 0x673C4FB6, 0x0ADBAE89},
24941 {0xFB35005C, 0x6F501820, 0xFF8654E1, 0x330AF3FA, 0xF8507B6A, 0x06E72137, 0x13F5F3FB, 0x135CC935} } ,
24942 { {0xA6F598FB, 0x6452205E, 0x3E5111C4, 0xA3F24A33, 0x2BB62352, 0x83F5FD18, 0xF45B7F34, 0x1853584D},
24943 {0x2A64CBC9, 0xFA8D2799, 0xB9449CFF, 0xE4AED1DC, 0xD1898ECA, 0xBDA5A341, 0x10C266A9, 0x000A2A92} } } ,
24944 { { {0xE19489A9, 0x88252A2D, 0xA1FD1C14, 0x813E0862, 0xD5ACAA7A, 0x96492C72, 0x37A173FA, 0x005E5F77},
24945 {0x34E8D268, 0x82B6DA7F, 0x01F9D89A, 0xFEDDE31B, 0x3211E4EC, 0xC82F9118, 0xF6F0D874, 0x21EAE041} } ,
24946 { {0xD3B188DD, 0x626379D2, 0x3512C720, 0x0936A2B2, 0x3139E98E, 0x2CD4C8CD, 0x40A51F7F, 0x1C7E4F23},
24947 {0xC382BF73, 0x882AFBC2, 0x0A3C97CB, 0xB0E1C85C, 0xCCD32B24, 0x61B793D2, 0x5FA18D4C, 0x11F060FD} } } } ;
24949 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4205 a000");
24950 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4206 a001");
24951 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4207 a010");
24952 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4208 a011");
24953 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4209 a100");
24954 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4210 a101");
24955 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4211 a110");
24956 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4212 a111");
24957 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4213 a200");
24958 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4214 a201");
24959 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4215 a210");
24960 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4216 a211");
24963 static const fp12_t var_a = { { { {0xA5CDACBE, 0xAFE89CF5, 0x20F50CDD, 0x9D61A480, 0xE37D64FB, 0x9A3C5E6F, 0x6BA39BD8, 0x183DC421},
24964 {0x9CDAAD59, 0x2A185206, 0x07DC863A, 0x3E3A8EA2, 0xAE16FA93, 0x5BDF1F91, 0xFF3822C2, 0x170A8859} } ,
24965 { {0x529AD3E8, 0xEAEFC240, 0xD2A22E86, 0x22D61162, 0xA15AFDA4, 0xE022443A, 0xE06A1D5C, 0x02C2C845},
24966 {0xB4B603FE, 0x17AAB3AA, 0xB99A083A, 0xD9E3EF3E, 0x4C269758, 0xF7F1EDD5, 0xE1FB831D, 0x214DAB83} } } ,
24967 { { {0xA71E1628, 0xA2CC71AD, 0xCB64E650, 0xD567DC46, 0xB4F185B2, 0x44390672, 0x97ECD625, 0x0BCEA99E},
24968 {0x6B1FCA58, 0x554E9A58, 0x78973A16, 0x7B6D469E, 0x5D07F2AA, 0x1B58A819, 0x9CA5E412, 0x109C6D31} } ,
24969 { {0xB0FD38E1, 0x4D86BBCB, 0x6A423256, 0x39BE6949, 0xEBBA61F0, 0x2B5631A5, 0x83804455, 0x23667114},
24970 {0x3B2163C9, 0xCDDD329E, 0x591D32C2, 0x233817A0, 0x7C894AE5, 0x3685853B, 0x7802FFA3, 0x208AA255} } } ,
24971 { { {0x52C65CEA, 0xDA9F13D2, 0x2B2B8B93, 0x4967A5FB, 0xCA733B2B, 0xCE5609D2, 0x58C652B6, 0x1D712D75},
24972 {0x421895B9, 0x9E9CBF11, 0x475B4F81, 0xB27D2203, 0x2B1AB150, 0x88635443, 0x4614EF38, 0x08CF2091} } ,
24973 { {0xDECDD734, 0x1AF2D33C, 0x0879AAB4, 0x007F1198, 0xF5E6C070, 0xC7E7150B, 0x38997743, 0x157BCD38},
24974 {0x4666AE07, 0xF4E3D8E2, 0xCD99C037, 0xD2E4124D, 0x231E5EC6, 0xEEDF7020, 0x2FCAE459, 0x0773AB6B} } } } ;
24975 static const fp12_t var_expected = { { { {0xA5CDACBE, 0xAFE89CF5, 0x20F50CDD, 0x9D61A480, 0xE37D64FB, 0x9A3C5E6F, 0x6BA39BD8, 0x183DC421},
24976 {0x632552BA, 0x7CE7ADF9, 0xF82379D9, 0x22E6715D, 0x51E90575, 0x5E552DEE, 0x40C7DD3F, 0x0E18DC28} } ,
24977 { {0xC8953D06, 0x93652C3F, 0x77E0C020, 0x3FFB6127, 0x333F5CE7, 0xC755FDEA, 0xCDEBAD49, 0x0C5A55EE},
24978 {0x9FA2AEF8, 0x51CE89A2, 0x55D70C04, 0x4F34A443, 0x52833254, 0x54600B3F, 0x95A9111D, 0x0B634302} } } ,
24979 { { {0xD7953B76, 0x55F3BECC, 0x4EB909B9, 0x6E9F47F1, 0xB30FC24B, 0x114EE276, 0x48C15F4F, 0x2096754F},
24980 {0x1182498A, 0x40C14893, 0xD90A334F, 0xEC65DE01, 0x3B71D136, 0x500CC559, 0x3A0C121D, 0x1DF34C92} } ,
24981 { {0xAB8BC122, 0xD4CB7DCF, 0xC0D234F3, 0x579C278C, 0x2D083E4D, 0x53398C44, 0xB75B283B, 0x0C955EF3},
24982 {0x4BEE90D6, 0xBD5D9FBE, 0x6D651248, 0xF49F9AA1, 0x6AD3F26B, 0x6FE61438, 0xF1118D0A, 0x1CB6F39F} } } ,
24983 { { {0x8322AD30, 0x78212CC5, 0x6098ACCF, 0xEBDE7012, 0xBC92E366, 0x7EFC0054, 0x8E41F306, 0x030CBA6D},
24984 {0x8E8999A9, 0x47DFD801, 0xEE30EDFD, 0xD9BF54ED, 0x52D3305F, 0x7F86618A, 0x965856CD, 0x20B2567A} } ,
24985 { {0x8EE24D40, 0x587E13CC, 0xA240119F, 0x2330A9BC, 0x084996F2, 0x89C2AD7B, 0x44B76014, 0x147150F2},
24986 {0x1C232EB1, 0xA7771B3C, 0x77E47F30, 0xCF47BC6C, 0x7C8E171D, 0x6C501CF5, 0x69CC0779, 0x00738A0E} } } } ;
24988 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4217 a000");
24989 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4218 a001");
24990 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4219 a010");
24991 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4220 a011");
24992 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4221 a100");
24993 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4222 a101");
24994 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4223 a110");
24995 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4224 a111");
24996 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4225 a200");
24997 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4226 a201");
24998 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4227 a210");
24999 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4228 a211");
25002 static const fp12_t var_a = { { { {0x7C62CEA1, 0x0391DFBD, 0x658B6165, 0xD979220D, 0x16303FBB, 0x2BA45DBC, 0x3EEEA45D, 0x17D6BA36},
25003 {0x467AE15D, 0x80CB9250, 0x69A8A834, 0x783D4732, 0x951B3C2D, 0x1FCA9065, 0xC020A7A1, 0x05147ADA} } ,
25004 { {0xCEB48BE6, 0xAA50504B, 0x92542E5E, 0x7B925FA7, 0x32D27134, 0x08509B56, 0x16274642, 0x1D61194D},
25005 {0x1035A142, 0x4B984F5C, 0x617F0DDA, 0x15FAB61C, 0x50D1CFFE, 0x22E60A00, 0x0E8E0BE3, 0x14D50BBF} } } ,
25006 { { {0x6173147F, 0x58C6F6CE, 0xAF424674, 0xB54B07C6, 0xB8F7EF33, 0xD271D1B2, 0x4772E670, 0x0A324B11},
25007 {0x239A659E, 0x0BF79385, 0xD9538AFD, 0x63FB2B4E, 0x3E2FA7C0, 0x5A4502C5, 0x31C37E40, 0x16139E33} } ,
25008 { {0x640C9CC1, 0x5F2930DA, 0x50C0A1EF, 0xB795CAD7, 0x591FCD51, 0x7979999E, 0x6793953D, 0x09A4A674},
25009 {0xFD3171A1, 0x767B1242, 0x0A3A10D3, 0x27C3CC87, 0xD4CAF880, 0xE0E98304, 0x32C9628C, 0x155DB56B} } } ,
25010 { { {0x8B38392F, 0x7ADFA0F7, 0x020ED1A8, 0x15326694, 0x40E4424C, 0x7D3E7D7D, 0x5E984CE3, 0x1B754A0F},
25011 {0x9FDBD929, 0xAE89D425, 0xED30E0D7, 0xC0AB6951, 0xE5230F37, 0xD90B75D4, 0xA85C3F4E, 0x1763830E} } ,
25012 { {0x38016EFB, 0x2238CF16, 0xC1101FF4, 0x4C3AB72F, 0x739846EC, 0x1D41C7B1, 0x90114210, 0x1875B976},
25013 {0xE137808F, 0x0BA68593, 0xA76C501D, 0x203D0D2D, 0xD82684D9, 0x92F2D507, 0x96C4B1BD, 0x1070BF8E} } } } ;
25014 static const fp12_t var_expected = { { { {0x7C62CEA1, 0x0391DFBD, 0x658B6165, 0xD979220D, 0x16303FBB, 0x2BA45DBC, 0x3EEEA45D, 0x17D6BA36},
25015 {0xB9851EB6, 0x26346DAF, 0x965757DF, 0xE8E3B8CD, 0x6AE4C3DA, 0x9A69BD1A, 0x7FDF5860, 0x200EE9A7} } ,
25016 { {0x87FED5C3, 0x718C8823, 0xA2A86D7C, 0xFA068495, 0xAE9D9015, 0xA1B1B5C4, 0xE60A7380, 0x1313E96E},
25017 {0x4D3DA56B, 0x76743EB3, 0xD903E98B, 0xE47AC9B5, 0x69993712, 0x645A0024, 0xA123790A, 0x1848F9EC} } } ,
25018 { { {0x03C0C524, 0x33119D1E, 0x8FE0AD60, 0x28977129, 0x99EA608D, 0xCEC5AE6C, 0x98D93C29, 0x1FD89944},
25019 {0x03376046, 0x146C2448, 0x9A985F28, 0x3B609931, 0x083E3FC2, 0x66E3BB4C, 0x6789037B, 0x141ECEAB} } ,
25020 { {0x9BF36352, 0x47D6CF25, 0xAF3F5E24, 0xA98B3528, 0xA6E032B6, 0x40BAB3E1, 0xD86C6AC4, 0x1B7EBE0D},
25021 {0xFD3171A1, 0x767B1242, 0x0A3A10D3, 0x27C3CC87, 0xD4CAF880, 0xE0E98304, 0x32C9628C, 0x155DB56B} } } ,
25022 { { {0x9FDBD929, 0xAE89D425, 0xED30E0D7, 0xC0AB6951, 0xE5230F37, 0xD90B75D4, 0xA85C3F4E, 0x1763830E},
25023 {0x8B38392F, 0x7ADFA0F7, 0x020ED1A8, 0x15326694, 0x40E4424C, 0x7D3E7D7D, 0x5E984CE3, 0x1B754A0F} } ,
25024 { {0xD4DE8BAA, 0x7E5423CB, 0xAD283503, 0x94D9D074, 0xCCB3AFCF, 0x69B82832, 0x6973209B, 0x1086AE70},
25025 {0x468E60DD, 0x3330508E, 0x9AFE4B02, 0xA70799AC, 0xF01F3843, 0x9A19A7F3, 0x2FB54705, 0x170CA539} } } } ;
25027 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4229 a000");
25028 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4230 a001");
25029 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4231 a010");
25030 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4232 a011");
25031 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4233 a100");
25032 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4234 a101");
25033 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4235 a110");
25034 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4236 a111");
25035 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4237 a200");
25036 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4238 a201");
25037 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4239 a210");
25038 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4240 a211");
25041 static const fp12_t var_a = { { { {0xFEF0611B, 0x2537D83D, 0x904DB633, 0x4DA3AC73, 0xC8B83180, 0xEF38AECF, 0x18130435, 0x0643F52F},
25042 {0x4AB07D2F, 0x4093955D, 0x93591A25, 0xF9436D2B, 0xC21DB3E3, 0xA97606CE, 0x2D6A6921, 0x24BF227F} } ,
25043 { {0x30171E48, 0x9D8F9073, 0xA935D3CE, 0x8528742C, 0xB4CDE59C, 0xA6BF3EE3, 0xE02B258F, 0x00FBDCF0},
25044 {0xC4AAAAA2, 0xBB4A860E, 0x721BE579, 0xF825F200, 0x927FDB4C, 0x45C2434E, 0xD63CA139, 0x15DF4D7F} } } ,
25045 { { {0x694D9381, 0x00FD5C1E, 0xB4B12F9A, 0xA352D1A3, 0x04792E2D, 0x35BE74DD, 0x252E8105, 0x13D73AC3},
25046 {0x1E0B15CC, 0xCF2BE21C, 0x98EAB36F, 0xB919174E, 0x69DFC278, 0x73A0B354, 0x039F2D43, 0x23BE1AF4} } ,
25047 { {0xB9FBB221, 0x5E895D90, 0x1F03D7FE, 0x88A5A530, 0xE2529320, 0xF5029D92, 0x5031337E, 0x185811F7},
25048 {0x111D6036, 0xC9EDA685, 0x3897B514, 0xF1BB47BD, 0xC767675D, 0x47B68A25, 0x5B26236A, 0x17888544} } } ,
25049 { { {0x758D77E3, 0xA5F2172D, 0x74A2926A, 0xF258185D, 0x6FB8E9E2, 0xAA21F937, 0x9CC0625D, 0x1DE0F6E3},
25050 {0xD3DC07EA, 0xA715F40D, 0x3F0FAE84, 0xAB75C3B2, 0x886896FE, 0x7B360496, 0x6EE3E9CD, 0x10CDE5EA} } ,
25051 { {0x4736C528, 0xC8CC9177, 0x19A947BE, 0x5BFD7E2F, 0x0145FDFB, 0x7E46854A, 0xC7FC3882, 0x035EABE0},
25052 {0x36229415, 0xAB2A6DF8, 0x738DA61D, 0x6AB795A5, 0x7492342C, 0x488BFD11, 0x9DBB57C7, 0x012E933D} } } } ;
25053 static const fp12_t var_expected = { { { {0xFEF0611B, 0x2537D83D, 0x904DB633, 0x4DA3AC73, 0xC8B83180, 0xEF38AECF, 0x18130435, 0x0643F52F},
25054 {0xB54F82E4, 0x666C6AA2, 0x6CA6E5EE, 0x67DD92D4, 0x3DE24C24, 0x10BE46B1, 0x129596E0, 0x00644203} } ,
25055 { {0x44AFD2AF, 0xD287B20B, 0xC215B26F, 0x88F943F5, 0x7921551A, 0x884D5499, 0x9F58CF84, 0x0720E7C9},
25056 {0xAC6E6DAA, 0xB1C87FE0, 0x82746009, 0x8AEAAC1B, 0x6BC0E24E, 0xD76F98DE, 0x076EB967, 0x0844BBA5} } } ,
25057 { { {0xE1C3F821, 0x767966BE, 0x762A8E8C, 0x05814D64, 0x4F11BCF3, 0xF1D4274E, 0x1A613420, 0x0CE34035},
25058 {0xA30657E7, 0xC094BA07, 0x247ED5EB, 0xAAF2FC64, 0x80C27BFE, 0x529127C6, 0x3E3618D8, 0x206AAB64} } ,
25059 { {0x2B069C58, 0x66D0483F, 0xEA6F1DED, 0xA8513ADA, 0xD59024C8, 0xF6DD34B7, 0x83063C64, 0x15A11973},
25060 {0xE73FCB6B, 0x5549FC04, 0x9DE5C8E1, 0x3E005A1C, 0x90F9546C, 0x0EB6AF90, 0xA84A0245, 0x248F6CD5} } } ,
25061 { { {0xDF4CC3B7, 0x1E5159B3, 0xCC50C187, 0x627F3508, 0x85A300F1, 0x8EC281D3, 0x8F0BE3D3, 0x17B89FE3},
25062 {0xB497A978, 0x911B2892, 0x2646D708, 0x642F5292, 0xBD8531D0, 0x9AF7ACAF, 0xA5C28C3C, 0x0C3ACFAA} } ,
25063 { {0x777569A0, 0x88F2DF52, 0x1DAD2C1E, 0x2145CA43, 0x66441332, 0x0E108398, 0x42802739, 0x181D5A81},
25064 {0x04D15932, 0xAAE1BB77, 0x5023DB52, 0x01325EDD, 0x0C1CF737, 0x3C2685E2, 0x20283135, 0x0494F5B8} } } } ;
25066 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4241 a000");
25067 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4242 a001");
25068 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4243 a010");
25069 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4244 a011");
25070 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4245 a100");
25071 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4246 a101");
25072 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4247 a110");
25073 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4248 a111");
25074 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4249 a200");
25075 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4250 a201");
25076 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4251 a210");
25077 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4252 a211");
25080 static const fp12_t var_a = { { { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
25081 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25082 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25083 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25084 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25085 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25086 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25087 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25088 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25089 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25090 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25091 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25092 static const fp12_t var_expected = { { { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
25093 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25094 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25095 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25096 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25097 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25098 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25099 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25100 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25101 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25102 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25103 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25105 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4253 a000");
25106 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4254 a001");
25107 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4255 a010");
25108 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4256 a011");
25109 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4257 a100");
25110 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4258 a101");
25111 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4259 a110");
25112 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4260 a111");
25113 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4261 a200");
25114 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4262 a201");
25115 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4263 a210");
25116 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4264 a211");
25119 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25120 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25121 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25122 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25123 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25124 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25125 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25126 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25127 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25128 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25129 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25130 {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2} } } } ;
25131 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25132 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25133 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25134 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25135 { { {0x0000004C, 0x9C000000, 0x0000004E, 0x84840000, 0x00000021, 0xE8D13600, 0x00000006, 0x148D9209},
25136 {0x0000004C, 0x9C000000, 0x0000004E, 0x84840000, 0x00000021, 0xE8D13600, 0x00000006, 0x148D9209} } ,
25137 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25138 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25139 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25140 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25141 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25142 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25144 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4265 a000");
25145 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4266 a001");
25146 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4267 a010");
25147 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4268 a011");
25148 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4269 a100");
25149 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4270 a101");
25150 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4271 a110");
25151 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4272 a111");
25152 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4273 a200");
25153 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4274 a201");
25154 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4275 a210");
25155 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4276 a211");
25158 static const fp12_t var_a = { { { {0xFFFFFF8E, 0x15FFFFFF, 0xFFFFFF8A, 0xB939FFFF, 0xFFFFFFCD, 0xA2C62EFF, 0x7FFFFFF5, 0x212BA4F2},
25159 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25160 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25161 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25162 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25163 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25164 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25165 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25166 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25167 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25168 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25169 {0x00000085, 0x91000000, 0x00000089, 0xA7E70000, 0x0000003A, 0x176E1E80, 0xC000000C, 0x03F7BF8F} } } } ;
25170 static const fp12_t var_expected = { { { {0x3D70A3E7, 0x1BA3D70A, 0x999999AA, 0x51969999, 0xAE147AE8, 0x2BC588C7, 0x91EB8520, 0x0079E3C9},
25171 {0xAE147ADF, 0xD77AE147, 0x33333330, 0xF4583333, 0xC28F5C27, 0xD52CEC75, 0x7D70A3D6, 0x2480DF75} } ,
25172 { {0x7AE147CE, 0x3747AE14, 0x33333354, 0xA32D3333, 0x5C28F5D0, 0x578B118F, 0x23D70A40, 0x00F3C793},
25173 {0x5C28F5AB, 0x07F5C28F, 0x6666664E, 0x878F6666, 0x851EB847, 0xF0258B6B, 0xBAE147AB, 0x23DE5A68} } } ,
25174 { { {0xB851EB43, 0x68EB851E, 0xCCCCCC88, 0xADFDCCCC, 0x0A3D7086, 0x2616C957, 0x35C28F56, 0x2299504F},
25175 {0x0A3D7077, 0x3870A3D7, 0x9999996B, 0x1AC69999, 0x47AE1467, 0x0B1E2A61, 0xF851EB81, 0x233BD55B} } ,
25176 { {0x70A3D6F8, 0xBBD70A3D, 0x99999986, 0xA2C19999, 0x147AE13F, 0xA96763AE, 0xEB851EB6, 0x2406FBAB},
25177 {0x147AE14D, 0xB3E147AE, 0x33333338, 0x1B323333, 0x8F5C28F8, 0xB941D842, 0x30A3D70A, 0x0028A143} } } ,
25178 { { {0x28F5C29A, 0x67C28F5C, 0x66666671, 0x36646666, 0x1EB851F0, 0x7283B085, 0x6147AE15, 0x00514286},
25179 {0x1EB85236, 0xD651EB85, 0xCCCCCD19, 0x7CBECCCC, 0xD70A3D91, 0x2199D3A3, 0xA8F5C296, 0x0238D1AC} } ,
25180 { {0x51EB8534, 0xCF851EB8, 0xCCCCCCE2, 0x6CC8CCCC, 0x3D70A3E0, 0xE507610A, 0xC28F5C2A, 0x00A2850C},
25181 {0x3D70A3E7, 0x1BA3D70A, 0x999999AA, 0x51969999, 0xAE147AE8, 0x2BC588C7, 0x91EB8520, 0x0079E3C9} } } } ;
25183 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4277 a000");
25184 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4278 a001");
25185 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4279 a010");
25186 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4280 a011");
25187 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4281 a100");
25188 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4282 a101");
25189 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4283 a110");
25190 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4284 a111");
25191 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4285 a200");
25192 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4286 a201");
25193 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4287 a210");
25194 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4288 a211");
25197 static const fp12_t var_a = { { { {0xB44E5BA0, 0x2FD4F78C, 0x80FB2A7E, 0x7AC1A6B5, 0xEEB8753E, 0x86388DA5, 0x1FE64FFA, 0x189EDC9A},
25198 {0x858A73CA, 0x92018314, 0xF8903372, 0x5847DF65, 0xC5AF1516, 0xE6980132, 0x0440466E, 0x18427668} } ,
25199 { {0x59B69B46, 0x366A5747, 0x11C089F7, 0x0060116E, 0xF029303E, 0x9529041D, 0x726E932E, 0x0DD974FB},
25200 {0x9171B317, 0x6AABB37B, 0x900E2C57, 0x76FC95D7, 0xBC5E34BB, 0xC44B28E3, 0xE0620C63, 0x0A2D0410} } } ,
25201 { { {0x5F9BCDF5, 0xE3F00EB0, 0xB07ED556, 0x0265459F, 0x13193362, 0xC0162765, 0xE9D0E462, 0x20B9D77B},
25202 {0xC546798C, 0x0319BB07, 0x69806692, 0x10A85DF0, 0x7F42F696, 0x1020EDA9, 0xEB4D2097, 0x167BAB30} } ,
25203 { {0x5AC27C44, 0x3DA85E1A, 0x204473E4, 0xD72EE805, 0xE2AFD580, 0xC752D00C, 0x55331850, 0x042EFFF6},
25204 {0x020CEEA4, 0xFBF96B16, 0x0E79495F, 0x17D021DC, 0x573B83F4, 0xCBE54B7A, 0x7692803B, 0x2202B180} } } ,
25205 { { {0x9AD6F65E, 0x54440184, 0xB8D6E254, 0xC44175F3, 0xBBF86593, 0xD22576D2, 0x0759C6F2, 0x11590631},
25206 {0x66736172, 0x65A2C093, 0x22BF9631, 0xA9DE069F, 0x4DAA013F, 0x641311DA, 0x6F230E1A, 0x03FFD542} } ,
25207 { {0x4ED5A3FC, 0x6368C0D4, 0x168BCA75, 0x0D1E6BA0, 0x93270C11, 0x78D04F02, 0x171B6D8E, 0x056A24B1},
25208 {0x1FBB604F, 0x11DD22E7, 0x30F09B1D, 0x2A3FF2EC, 0x44C80F89, 0x14ED2A86, 0xD3BF9882, 0x04E151CA} } } } ;
25209 static const fp12_t var_expected = { { { {0x10ECE656, 0xE048EAB7, 0xB5F4884B, 0x28FA2999, 0x7E868B78, 0x41247CF1, 0x30E7BDC6, 0x248BE195},
25210 {0xA5B8AD8B, 0xAADC3365, 0x758D67D0, 0x650D93CB, 0x427FE1DE, 0x4DFCD6C4, 0x9F79F306, 0x24ADD7F7} } ,
25211 { {0xB4423B50, 0xBBE821C0, 0xF9F1C87E, 0x878CEFF2, 0xDC57D397, 0x7D7E3B0E, 0x87992A94, 0x029BBD1E},
25212 {0xB96D2DAC, 0x1F8D609D, 0x94778455, 0x2BF55B32, 0x37F22382, 0x07AF72ED, 0x65B6B260, 0x1C5E85BC} } } ,
25213 { { {0x9486C008, 0x21A2054A, 0xF0E08B7A, 0x6FEC248C, 0x89AF5DF8, 0xA5FB179F, 0xF0F5A3AD, 0x110087A8},
25214 {0xAA8068CB, 0x6DA58561, 0x5F652505, 0x8B845A06, 0xFDE84B17, 0x5B2C9EAC, 0x2676C327, 0x0D7932BC} } ,
25215 { {0xC544B31F, 0x547DB862, 0x11B46FC8, 0xFF6F776C, 0xC8F60C4F, 0x5B7A12BD, 0x20A4EF51, 0x062610DB},
25216 {0x0BAA5497, 0xE062C0A8, 0xE7E92FAA, 0x8AB2F222, 0xF993D4A5, 0xCBF7030A, 0x25CBDAA6, 0x0B5A2690} } } ,
25217 { { {0xF2BBB842, 0xD57BA976, 0x80A183CC, 0xDD9C6E4D, 0x654F371F, 0x09BD4567, 0x240269E2, 0x216443F6},
25218 {0x02BF397B, 0xC00ADD7A, 0xDAE0AC45, 0x436D4AC1, 0xCEABE645, 0x8B62F758, 0x3A36E79F, 0x15DB79BB} } ,
25219 { {0x830885BB, 0x7FB4BD44, 0x886CB48F, 0x5E8899A5, 0xB21229D8, 0xF2B0FDD7, 0x9C6EA120, 0x1BAD70F8},
25220 {0x082BEDAC, 0xC874166E, 0x489BDEEA, 0xF153E142, 0x7EA7D04D, 0x639E2E03, 0x6C868615, 0x1F65F3E3} } } } ;
25222 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4289 a000");
25223 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4290 a001");
25224 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4291 a010");
25225 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4292 a011");
25226 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4293 a100");
25227 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4294 a101");
25228 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4295 a110");
25229 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4296 a111");
25230 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4297 a200");
25231 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4298 a201");
25232 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4299 a210");
25233 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4300 a211");
25236 static const fp12_t var_a = { { { {0x3FB037B7, 0x9D53FBC1, 0x37388CBB, 0x5B4F1287, 0x2D625535, 0x8ADEDB49, 0xFA575B74, 0x0B253573},
25237 {0xCFA5E5C3, 0x736AE06A, 0xACF152E2, 0xB0F3F11F, 0x9A339190, 0x81FF38C6, 0x0AD15530, 0x145DFE6F} } ,
25238 { {0x704F020D, 0xD6B5B609, 0x7EBDD68B, 0x8789238A, 0x11991721, 0xC346FC74, 0xAB90B262, 0x07E1E2D1},
25239 {0x3728669D, 0x4B98B76C, 0xA160D596, 0x253BFBC4, 0x40083B57, 0x2023A281, 0x050F230F, 0x1710AAA0} } } ,
25240 { { {0x7B70A18A, 0x008E998B, 0xDF94084A, 0x83A635BE, 0x5F0F1A5B, 0x6E8851C2, 0xAFF32732, 0x0987207E},
25241 {0x07CF716B, 0x687FE674, 0xA7D8BB8A, 0x7B25CACC, 0x49899A18, 0x3AEB9C2D, 0xE97F1E5B, 0x04543E92} } ,
25242 { {0xE37B9316, 0x225F4505, 0x1B447B92, 0x3B841C92, 0x51C7BB78, 0x30FCD18C, 0xFC594233, 0x13245383},
25243 {0x88FA7A48, 0xA6CD4448, 0x4239062A, 0x1D305AD7, 0x648C736C, 0xA62106D9, 0x85F044DB, 0x0DBA8188} } } ,
25244 { { {0x26D6B9F5, 0xAE3C8113, 0xE93F118D, 0x8213FF21, 0xAFA00DF8, 0x71C8A55C, 0xE4B4214F, 0x1E3D592F},
25245 {0x44A56608, 0xD46B556D, 0xA46001D7, 0x7C2207A8, 0xE4CC1ED3, 0xD8249685, 0xBA1192D8, 0x013B2589} } ,
25246 { {0xAE2CBE6D, 0x15BE852E, 0xB9086B0E, 0xFD032377, 0x042038A3, 0x6570A88F, 0xD8CC56D8, 0x0F3BF454},
25247 {0x76E534F9, 0x03327B66, 0xDDDD38AA, 0x816F2DFC, 0xF287704A, 0xB46E628C, 0xB0C8ED93, 0x110A0217} } } } ;
25248 static const fp12_t var_expected = { { { {0x45504A9D, 0x36F4993D, 0x32CDD8EE, 0xAB4A63F2, 0x13BCE196, 0x64AA7D1A, 0xFC75117E, 0x1B5F87F3},
25249 {0x1F61C794, 0xCB60DDD7, 0xC09EF556, 0xFFC1AEEC, 0xE8B23FBE, 0x52D1765F, 0x995C0901, 0x07F7C1CA} } ,
25250 { {0x2D4C3C3A, 0x5CF12D56, 0xEB769478, 0x3EE1C71F, 0xA33398C5, 0x6A0493A2, 0xE304D7FD, 0x05D3F889},
25251 {0x8474E88F, 0x942E0D1C, 0x075BE61F, 0xD9804D3F, 0x2A38EF6F, 0x2CB747E7, 0x6A6C8F51, 0x18C779D7} } } ,
25252 { { {0xA7FC6C65, 0x4930AF77, 0x6F88E8A2, 0x30ECD76E, 0x6094B3F8, 0x6882DFD1, 0x56017E14, 0x11AB93B6},
25253 {0x66DF03DF, 0x83B856F2, 0x22250D12, 0x47B55477, 0x5E1B2511, 0x1E83BD2F, 0xAFCB28F8, 0x199F2059} } ,
25254 { {0x28DC5A20, 0x404FA105, 0x0273A4A1, 0x8FD33722, 0x72ECD0A3, 0xC5C10A65, 0xFB08E14E, 0x158560AD},
25255 {0x66488A2F, 0xDD626E4E, 0x91F687D8, 0xE316117A, 0x8E49A7A1, 0xA6FDC6B6, 0x5A031F80, 0x19712B7B} } } ,
25256 { { {0x5B148592, 0x9C7B29A7, 0xE26438AE, 0x7FD77FF9, 0x3A7F36CD, 0x3315880F, 0x1EB72A26, 0x0361874E},
25257 {0x497C118E, 0xFAAD05B1, 0x07FE7F7B, 0xF9FC5CB3, 0xB3AB911C, 0x9A04DD0E, 0x644B8C1E, 0x08D68438} } ,
25258 { {0x1A36450C, 0x2A97C183, 0x21972B76, 0x34F3D766, 0x9014E678, 0x9FD95B62, 0x8FC70032, 0x1E63D02D},
25259 {0x11B5B182, 0xF31BA7C8, 0x6C79EE2A, 0x7025E3FA, 0x408B1B13, 0xB93DE8F9, 0x549EC61C, 0x1D1FEC8C} } } } ;
25261 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4301 a000");
25262 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4302 a001");
25263 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4303 a010");
25264 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4304 a011");
25265 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4305 a100");
25266 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4306 a101");
25267 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4307 a110");
25268 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4308 a111");
25269 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4309 a200");
25270 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4310 a201");
25271 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4311 a210");
25272 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4312 a211");
25275 static const fp12_t var_a = { { { {0x03A90C73, 0xD7F1DB1B, 0xD333A7ED, 0xC1FC96F9, 0xDCE055BB, 0x5FE48030, 0xFAFB8DA3, 0x0B2510ED},
25276 {0x5280C991, 0x4C03E012, 0x22D89128, 0x20F67A0C, 0xC42AFE5F, 0x286C1319, 0xF5C681FA, 0x17701B5A} } ,
25277 { {0xD06FE0E7, 0xC2260A16, 0x9FFCA124, 0x7501F824, 0x4D2F2B44, 0x066F2D16, 0xC26AE0E5, 0x04DBCE5D},
25278 {0xBEA54326, 0x23EC2F56, 0xCF1B93F3, 0xCAD4079F, 0x1AEE11AB, 0x43E09480, 0x239B95D8, 0x23A11DB2} } } ,
25279 { { {0x60A86B23, 0x83E795B3, 0xC0AE744E, 0x4B9538B3, 0xB52D0501, 0x276CA265, 0x7DB80A3B, 0x0D17DF96},
25280 {0xEFB4BC48, 0x27FBF0F1, 0xF6D8DD83, 0x344C59A3, 0x2BE235B8, 0xDA6D6AFF, 0xAE8D2CBC, 0x07E7388A} } ,
25281 { {0xD3E1F60E, 0x55399E0B, 0x63840E0D, 0x884FF834, 0xDAA8D791, 0x07D5A400, 0x77E915A6, 0x13AFC1FA},
25282 {0xFA1C0DE9, 0xB9BDB496, 0xA1EA7D46, 0xF8FAC13F, 0x7B910B5F, 0x03115853, 0x43302B92, 0x14597C12} } } ,
25283 { { {0x8337E4EA, 0x9D3DA731, 0xEBFD9FA1, 0x82FC3E8F, 0x9D1942EC, 0xFAFBA09F, 0x8B992E8C, 0x2444E248},
25284 {0xE2DBFAB1, 0xF50C5CFC, 0xDE5C47C9, 0x1BA89F15, 0xFADD6219, 0xF25E4306, 0x9E2B49D6, 0x1786F9AC} } ,
25285 { {0xCCC890C2, 0x0EFF6384, 0x05B315B0, 0xBE199D4D, 0x5CD148AA, 0x0C729AED, 0x1311A488, 0x2207889F},
25286 {0x6ECAF609, 0x071285F7, 0x0FE78CD1, 0x4C30949D, 0x350ED339, 0x2330D993, 0x73A44E3F, 0x16192C37} } } } ;
25287 static const fp12_t var_expected = { { { {0x6AE5FF8C, 0xC3AC2EF8, 0x4621BE1F, 0x1C2E5A77, 0x98F4F0DB, 0xFE2C19A9, 0x5A531691, 0x24C61565},
25288 {0x747E6896, 0xECFC58A4, 0xD092E200, 0x0B18CE7B, 0x30054ADB, 0xFAF0B3D6, 0x491E8D30, 0x0583E783} } ,
25289 { {0x4EE8FF06, 0x25135421, 0xBC68298E, 0x80D78025, 0xFE090409, 0x2713A8CA, 0x40F2D979, 0x0B45C9BF},
25290 {0xEF0AED8E, 0x7587BEE7, 0xC1B3671C, 0x380FF613, 0xFA5A9F40, 0x4A14D378, 0xA02CFBB7, 0x0016B11C} } } ,
25291 { { {0x4165C3A1, 0xF710975A, 0xB109506E, 0x200F5A77, 0x987C1CB3, 0x8B3D6B4D, 0x2A562270, 0x137C6A2A},
25292 {0x8409FD98, 0x83BEB8BA, 0x0E97B54C, 0xC70BD613, 0x9303D19B, 0x12A5AA48, 0xD47880BF, 0x19A070F8} } ,
25293 { {0xA148C664, 0xB1AB6A3A, 0x0AD00BC6, 0xC743C26D, 0xBF284E16, 0x35DFCB55, 0x8D1F8E2D, 0x1D316ADF},
25294 {0x9639759B, 0x87D34885, 0xC3D64D37, 0x0680587E, 0xBA04CC3A, 0x669875D2, 0x416BE610, 0x08694EE7} } } ,
25295 { { {0x4AEDB7CA, 0xA45A1BA7, 0x541EFA83, 0x02336D34, 0xD5A94F8A, 0xB720EE6F, 0x996F5559, 0x1BF572C4},
25296 {0x7C2B137B, 0xF2EDB72E, 0x95207A11, 0xF9EE7B3D, 0x0B15BC98, 0x7EB9223B, 0xBBC070CD, 0x1F5A7823} } ,
25297 { {0xF2B573D9, 0x187308C4, 0x1248438D, 0x5C56E1E3, 0x93F63801, 0x57D2D729, 0x9B9E7636, 0x08719D15},
25298 {0xFB3D5B73, 0x32B652B5, 0x868B5658, 0x951C1412, 0xD320BA91, 0x08F801DD, 0xAAE7DA0F, 0x031DAEAB} } } } ;
25300 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4313 a000");
25301 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4314 a001");
25302 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4315 a010");
25303 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4316 a011");
25304 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4317 a100");
25305 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4318 a101");
25306 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4319 a110");
25307 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4320 a111");
25308 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4321 a200");
25309 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4322 a201");
25310 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4323 a210");
25311 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4324 a211");
25314 static const fp12_t var_a = { { { {0xA78ABB9E, 0x551415D6, 0xB1F83A07, 0xF05BF129, 0x6D0E93FE, 0x968EEE85, 0xD426E7F7, 0x231AC505},
25315 {0x59AC34FC, 0xF87620B7, 0x97D819C7, 0xA8875C34, 0x415B62DF, 0x8236E4DA, 0x633CC3E8, 0x0597E82F} } ,
25316 { {0xDDEFBA57, 0xAEB131FD, 0xB9641D66, 0x27171997, 0xA72B38C2, 0x96EA3BD9, 0xFF357B04, 0x08CAC7CB},
25317 {0x50FF6AC7, 0x49BD2B4C, 0xB37A5131, 0x3BB82061, 0xE25D5A86, 0x13448A13, 0x05461B62, 0x24889945} } } ,
25318 { { {0xF4E1BCEE, 0xEA473623, 0x14955070, 0x27DF561C, 0x31FFA181, 0x200F2EC9, 0xA2F21F01, 0x0E64B1E9},
25319 {0x70D310D4, 0x9A18D0AE, 0x91C3B16A, 0x1D6B677F, 0x35BABA39, 0x752E3E1C, 0x037784EC, 0x138B7C71} } ,
25320 { {0xD5C5D410, 0xE52BCB6A, 0xF60EFF9B, 0xC0AB3CDB, 0xCB0B8DD1, 0x164D17C8, 0x5218DDC3, 0x1A2F9570},
25321 {0x7CA253D3, 0x745D3485, 0x157B7D13, 0xF7721AC6, 0x7CCD98BE, 0x9ECA56C5, 0xE804CF57, 0x1E5B43EC} } } ,
25322 { { {0x668D6235, 0x5BA33345, 0x069828B9, 0x9ABE4E2D, 0x124BBEE6, 0x62CF0ADB, 0x581A4069, 0x0A0A7FB3},
25323 {0x3DF1D094, 0x0D0A0204, 0x1381B31B, 0x7639009E, 0x46DF81AB, 0x99AAA65D, 0xC7E2620F, 0x1F215878} } ,
25324 { {0x9B03E331, 0xBB24C3A4, 0xA770D03F, 0xC6F2EC9D, 0x6F9AE3B5, 0x0B2FEC37, 0x691FDFAB, 0x0404907F},
25325 {0x001A4C46, 0xD70D0FD3, 0x1F441EB8, 0x6BEFDF20, 0x3AEBC4ED, 0xD36B6273, 0x45F7EC73, 0x152CA9C8} } } } ;
25326 static const fp12_t var_expected = { { { {0xB53756C8, 0x626C5D78, 0x8D0EE73C, 0xD62FA37C, 0x65B96549, 0xBBB50BA1, 0xDBA0199B, 0x1D908022},
25327 {0x326F07ED, 0xDC995630, 0x9BC4FACA, 0x3C637C62, 0xDE337A66, 0x2C99C053, 0xD9605B0D, 0x11B2E9D0} } ,
25328 { {0xFB8B081F, 0xDE24C068, 0xFA4D77C0, 0x91746170, 0xA1CF3B96, 0x42DEF273, 0x86F53E60, 0x006A4D5F},
25329 {0x0C378B2D, 0x8ECECBA5, 0xC86B79F7, 0x1C01D166, 0xCD38D94C, 0x3BE92F95, 0x52CFBD5D, 0x07FF04A8} } } ,
25330 { { {0xCAAB7C21, 0x8BF6B2C2, 0x56517BA5, 0x5368C209, 0xAAE002B6, 0xFB3EB009, 0xD6E98F99, 0x0358C321},
25331 {0x46893700, 0x754C02AE, 0x6F90E25C, 0x2C6FC885, 0x017EC150, 0x0C631D96, 0x08EE41F4, 0x0F49DC7C} } ,
25332 { {0x47038CE3, 0x67BFC1F4, 0x02ADA298, 0xC8971C49, 0x8C0771B1, 0x52CB8FD1, 0x7E1075C5, 0x111FCEC5},
25333 {0x9AF5EAFA, 0x59EBF8EF, 0x6AFE9B31, 0xDAFABC9F, 0x6564A430, 0x1F71FA2C, 0x643D015C, 0x1E815E99} } } ,
25334 { { {0xD31EF33A, 0xC8B0B803, 0x00662F21, 0x0AAB6686, 0x1BFA3F8C, 0xBEA28A27, 0xD70F0572, 0x207D2CCB},
25335 {0xA57F1F2C, 0x98A1877D, 0xD6FBB4A4, 0x9F6EB791, 0x0F06BBF3, 0xC96D8D50, 0x7B3ED7FF, 0x0A1686FE} } ,
25336 { {0x42BFFB71, 0x00C73B9E, 0x730FF487, 0x28F383D1, 0x7821EC60, 0x48035898, 0xA6A06477, 0x1696300E},
25337 {0xCB1BB69A, 0x905007AA, 0x2734DE41, 0x6803FF4D, 0xE48AD976, 0x2B1D6FE8, 0xFDA0CFB1, 0x190D1C17} } } } ;
25339 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4325 a000");
25340 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4326 a001");
25341 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4327 a010");
25342 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4328 a011");
25343 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4329 a100");
25344 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4330 a101");
25345 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4331 a110");
25346 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4332 a111");
25347 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4333 a200");
25348 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4334 a201");
25349 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4335 a210");
25350 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4336 a211");
25353 static const fp12_t var_a = { { { {0x8674AB56, 0xACE9E10E, 0xF4844956, 0x49B06542, 0x6608DFE5, 0xBF601677, 0xCA75E53A, 0x0549B578},
25354 {0x076F1B3D, 0x19B1C0F8, 0x0A9769CA, 0xE3C1C490, 0x16207C41, 0x73B1BFFC, 0x6158E6EC, 0x0B12E65D} } ,
25355 { {0x13EF5BEF, 0x999DC216, 0xE7EC96E6, 0xDC1A0BD9, 0xEAE2D435, 0x20C545A5, 0x7997C319, 0x095C732B},
25356 {0x8324D3C6, 0x92692A2B, 0xCB73E7DD, 0xEC2A7EBA, 0x332DB885, 0x7735F225, 0x29D915B5, 0x135E97F0} } } ,
25357 { { {0x2E202C75, 0xC41D59C6, 0x56780A01, 0x05DBB530, 0x0D9D779D, 0xECF765F3, 0x446F9CC6, 0x020713B9},
25358 {0x2067965F, 0x640BC442, 0x90A772D9, 0xC798DAA4, 0xDE3FE403, 0x03901A61, 0x6A83DB23, 0x20B27A62} } ,
25359 { {0x53D83D5B, 0x6D1889F5, 0x35088D24, 0xF99C0FAE, 0x1C2D55ED, 0x9ADA7D17, 0x0AA9A27D, 0x0F4BC561},
25360 {0xB4BF364F, 0x13394655, 0x93F85BF0, 0xE06B37DD, 0xB6DF74FD, 0x85D59136, 0x85BDC5DB, 0x0609FF04} } } ,
25361 { { {0x18EBF85D, 0x6983C4D8, 0x7372E0BD, 0x38E6E585, 0x6A1E9E9F, 0x661CC83B, 0xB33656D0, 0x151A95E5},
25362 {0x7634A9EE, 0x334E4EE1, 0xF33D7B40, 0x3765DF55, 0xC71381CE, 0x881EE7CB, 0x0AF41001, 0x075B089A} } ,
25363 { {0x3270F485, 0x2F0A3B4D, 0x4DCFB6C8, 0x14092EB1, 0x24494D90, 0x36C0AF24, 0x161B4AF3, 0x24C35403},
25364 {0xA3CD7E50, 0xEDD11332, 0x7E4F4719, 0xA95E44A3, 0xCD877A1F, 0x464A3FDC, 0xF9C545CD, 0x07ED8E6C} } } } ;
25365 static const fp12_t var_expected = { { { {0x902F7172, 0x2BF3E4BD, 0xB1D38091, 0x1609F428, 0x46208432, 0x91039197, 0xDB0E7D0E, 0x15885955},
25366 {0xB8A1D95A, 0x16E03F73, 0x3FFA0970, 0xE968D517, 0xD9A42058, 0xB584EC89, 0xE6A9AD2F, 0x13808082} } ,
25367 { {0x1282D5E5, 0xAC0BCFB2, 0x556D6E81, 0xA204A576, 0x9DA00BCD, 0xB6677798, 0xEF7B5EE2, 0x14CD62A6},
25368 {0x0DC85466, 0xAC94EB2A, 0x3CE24D08, 0x13E3BAD2, 0x9F48EFF0, 0x665B1128, 0x0FCEB3E0, 0x17B35110} } } ,
25369 { { {0x7E309795, 0x9AA3E1BC, 0x9C992AE7, 0x92343D0D, 0x68A6B0EA, 0xB08AE63E, 0xB2287F1D, 0x11EA4762},
25370 {0xF8ADB65A, 0xCD00A34B, 0x27C3F635, 0xE690EAA0, 0x8ADDF2B1, 0x120859FC, 0x2EB46F27, 0x01F138C4} } ,
25371 { {0x6655B4FD, 0xA45E6F1D, 0xB7ECA6F1, 0x11DE51D6, 0x4FC9D9C5, 0xC1EE2975, 0x67A853B4, 0x010C3640},
25372 {0x2ED8B997, 0xC5543BBB, 0x6A9C1D2D, 0xB58F0148, 0x8C034E89, 0x331AC7B2, 0x0EEAB931, 0x24CE39E5} } } ,
25373 { { {0x8AED35E3, 0x5EF8B389, 0xD22C9D90, 0xED593EAB, 0x2BABF5CA, 0xCAC33CF4, 0x32E47DC3, 0x008C8599},
25374 {0xE76D7060, 0xB69F85FA, 0xCDCA33A6, 0x3C4DACB4, 0x2435B20A, 0x38A6B0F9, 0x91807C08, 0x0693DDD7} } ,
25375 { {0x11749173, 0x4923E0D2, 0x2A9FBD66, 0xB3C17780, 0xCF4286D3, 0x774978F3, 0x1AEE2032, 0x0F610957},
25376 {0x701BA9A5, 0x6AA9FA16, 0x04655E4C, 0x87ED8D28, 0x97BAE2B6, 0x3E6131C4, 0x2FADF115, 0x1476AA7E} } } } ;
25378 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4337 a000");
25379 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4338 a001");
25380 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4339 a010");
25381 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4340 a011");
25382 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4341 a100");
25383 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4342 a101");
25384 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4343 a110");
25385 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4344 a111");
25386 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4345 a200");
25387 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4346 a201");
25388 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4347 a210");
25389 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4348 a211");
25392 static const fp12_t var_a = { { { {0x9C1CF4FC, 0x11F97975, 0x8CB15030, 0xEE480303, 0xD246BB1D, 0x7DDBA654, 0x34294614, 0x118BE9BC},
25393 {0xB986A1B2, 0x1BE7C103, 0xF237D01B, 0x8F255961, 0x1FC985C4, 0xD320483D, 0x9E6E94FB, 0x121185FC} } ,
25394 { {0x6441588B, 0x84DB2A1D, 0x19282AB3, 0x65AC0AE0, 0x8C200724, 0x72267F23, 0x6EAC907E, 0x1026226E},
25395 {0x3B786BF2, 0xDEAEECA9, 0xB441D112, 0xAD6A3C86, 0x85FBA05B, 0x3AC782BB, 0x9B2ED5D4, 0x1F5431C4} } } ,
25396 { { {0x794F9ED9, 0x8872B064, 0xDCBAEA27, 0xA9182F93, 0x1A537B89, 0xBD81EEE6, 0xF8EB4E79, 0x2068E4B9},
25397 {0xE4F5BF0F, 0x75BCE066, 0xD6F40F7D, 0xDA92081D, 0xAA7001EE, 0xBD4721A7, 0xDC34542E, 0x16E79E16} } ,
25398 { {0xDD43DE8C, 0x3EF406C4, 0xA8C93957, 0x8F0E01E7, 0x6FADB6DD, 0x5FB4A22F, 0x9C2B4130, 0x17F8D877},
25399 {0x0067C286, 0x620A1EB7, 0x6B83D1DA, 0x4F20B483, 0x9317E48D, 0x069F4796, 0xD726F8BF, 0x01186086} } } ,
25400 { { {0xF0F1267F, 0x66999273, 0x3D55354A, 0xE659679E, 0x24DAA78F, 0x93DF7762, 0xD3486057, 0x07930557},
25401 {0x902F3067, 0x89FE3C69, 0xBE5F9429, 0x4A1D6A9D, 0xA8216BF7, 0x729BB499, 0x65039C15, 0x1BFB763C} } ,
25402 { {0xB75D2321, 0xBA44A691, 0x0E59564D, 0x8B2B4A69, 0xDEA5ACFA, 0x0FBA952A, 0x11DE5855, 0x0E3D0EAB},
25403 {0x01DF2FCF, 0xD4312D02, 0xC7493FB7, 0x76DD0953, 0x1BFFC371, 0x295DE868, 0x2DED0ACF, 0x1325BD1C} } } } ;
25404 static const fp12_t var_expected = { { { {0xE9E4D5B6, 0xC4766A1C, 0x6461E0D2, 0x2AB48C93, 0xA675CE28, 0x31991140, 0x7EB168B6, 0x241B259A},
25405 {0x03A68F46, 0x64F4E360, 0x79913F20, 0x779A5542, 0x16E3F1DE, 0xD7495930, 0x33C58DDB, 0x026C6E7E} } ,
25406 { {0xDA2A3E44, 0x8173C179, 0x999D53C9, 0xDDA0C0AF, 0x5831A2CA, 0x21762FF8, 0x942BCFA2, 0x0DBCDE80},
25407 {0x5DC95084, 0xBE767AFF, 0xC2378796, 0x33E4675F, 0x299466C0, 0xF7CA1262, 0x418DB0FA, 0x2481F860} } } ,
25408 { { {0x413AD23C, 0x9799B3A1, 0x15DB7068, 0x1C8B6B57, 0x64E03BD3, 0x44306BD7, 0x2CA28B91, 0x19ACC163},
25409 {0x9D8ED31F, 0xB24D92D5, 0x0250BB67, 0x514DC204, 0x32F6C1A9, 0x4C69AB63, 0x9ECD9651, 0x18ED309B} } ,
25410 { {0xEE42D918, 0x5C3E4277, 0xABEBA325, 0xFDCD2F66, 0x2B73EFC3, 0xD1C7E494, 0xF80915A8, 0x02395312},
25411 {0x91CED93D, 0x6FC5D296, 0x35CFC54C, 0xA1E14095, 0x91D0DEDD, 0xB18C7C13, 0x6235312D, 0x1F8226DA} } } ,
25412 { { {0x1C2E42CC, 0xA2ADB241, 0x15F9FA54, 0xD0EFF5F7, 0x1202DDBA, 0x64A6DEA1, 0xB933F609, 0x20FCC9F7},
25413 {0x74DAC7AD, 0x73691A60, 0x1D85965C, 0x7C042AE4, 0xB8EF6237, 0x04666B8A, 0xD3B33206, 0x2426E437} } ,
25414 { {0x3A9C2045, 0x3CE79AC6, 0x86D037D4, 0xA37FFE99, 0xDB31E3D8, 0x8FDA67E7, 0x7659E793, 0x2065E3CC},
25415 {0xEC731FE9, 0x1B22B055, 0x2ABFD71F, 0x299B52DA, 0xD1D07897, 0x71C1C7C5, 0xB8184D67, 0x001A94ED} } } } ;
25417 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4349 a000");
25418 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4350 a001");
25419 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4351 a010");
25420 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4352 a011");
25421 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4353 a100");
25422 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4354 a101");
25423 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4355 a110");
25424 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4356 a111");
25425 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4357 a200");
25426 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4358 a201");
25427 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4359 a210");
25428 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4360 a211");
25431 static const fp12_t var_a = { { { {0xCB5C6280, 0xAA94DB10, 0x15B526C0, 0x55C37D70, 0x541BFB27, 0x32DCD060, 0x03A80170, 0x1A472177},
25432 {0x85BDB372, 0x06A5024E, 0xB8194A26, 0x7AF27D8E, 0x630C787B, 0xC76C233F, 0x14C313F3, 0x0FE60B37} } ,
25433 { {0x25374575, 0xFFBBFC45, 0x63D9C2AC, 0x6972E319, 0xD4D2FDB3, 0x6403F357, 0x82DFF6E9, 0x1CA55B01},
25434 {0xF1637AA4, 0xD517FDFC, 0x21B3FD5E, 0x34F8A916, 0x8FB8F478, 0xB3CCF401, 0xB34556B5, 0x06161EE7} } } ,
25435 { { {0x77AF40A5, 0x99C3AD30, 0xE2FA8C33, 0x559B429D, 0x96BC5C1F, 0x7D3D9357, 0xC35961FA, 0x183D1F43},
25436 {0xDBA77621, 0x43F82B07, 0xEC36D2F7, 0xCD393DCD, 0x32B9C1E3, 0x56C2468F, 0x730F1064, 0x1C8EAD4B} } ,
25437 { {0x267DDC7E, 0x5969F176, 0x20184B95, 0x425CA38F, 0x0CAA7157, 0x826A8ABB, 0x379DE6C4, 0x0A658FEF},
25438 {0x62D18E54, 0xA446B26F, 0x861DF15A, 0x768EECFE, 0xCC4CF364, 0x49EE1F03, 0xB2421E3F, 0x08F1A574} } } ,
25439 { { {0x5A36D70A, 0x0A75E1E2, 0x62A4F4BD, 0x57494CED, 0x6E4419F8, 0xB19FDF22, 0x4D991FB1, 0x0A0C4FBE},
25440 {0x50F7EC53, 0x447C55F3, 0x47827B09, 0x5983DC38, 0x47BE6BA1, 0x10633C9E, 0x0784E3BA, 0x1E33AE40} } ,
25441 { {0x05CD6457, 0xD8795D3B, 0x70E48599, 0xF9C2CB81, 0x077DD90D, 0x72D029E4, 0xDBEA26F4, 0x1CDB57F4},
25442 {0x60841F3C, 0xE93698ED, 0x352B6057, 0x36B3C8F7, 0xADF1E496, 0xD9714E4E, 0x46BB66D0, 0x1CD349D5} } } } ;
25443 static const fp12_t var_expected = { { { {0x9B02B9E0, 0xF010FD7B, 0x0CC059AF, 0x51722CDD, 0x8F561F37, 0xE7A78540, 0xD626E8BB, 0x175A136E},
25444 {0x52BDE8FE, 0x326FFAF0, 0xABD442A0, 0x55596A5A, 0x5647DA51, 0x0EB42B08, 0x6FC6CFB9, 0x12D87940} } ,
25445 { {0xED4BF932, 0x7985FF93, 0x994975ED, 0xECD255E6, 0x9E61640B, 0x1665DBD4, 0x68BA2E74, 0x06456918},
25446 {0x36FB36DB, 0xB6071FD4, 0xD2613E8F, 0x7D7D8FF7, 0x1CC6096A, 0x9E228DF8, 0x843582D7, 0x11A005EE} } } ,
25447 { { {0xA0081B89, 0xB3563B36, 0x5A3A181A, 0x83C2BE05, 0x65F9467A, 0xDDEBF268, 0x55529BC4, 0x2308A79B},
25448 {0x1325792E, 0x90194D4D, 0xEE881B25, 0x4D7D5ABA, 0xA2249539, 0xB82F4EA5, 0xF1531801, 0x0BB8D1C1} } ,
25449 { {0xA68EA59B, 0x0A35E7C4, 0xF547F129, 0x33495B43, 0x796656C1, 0x9AB8520F, 0x96E612FF, 0x15507E2A},
25450 {0x4BC805B0, 0x8AE6DC2D, 0x2AFBB5E7, 0x7B1D3BEE, 0xE093C950, 0x1D6615AA, 0x66164967, 0x0651B0A7} } } ,
25451 { { {0x41FFF83A, 0xBCD7AD48, 0x5337C6B8, 0x808EB12C, 0x0F620FF4, 0x34DD753F, 0x7EE1AE5C, 0x220DF3C6},
25452 {0xD2B70307, 0x7B93B7A8, 0x7F6D67A1, 0x35300F63, 0x000CCCA3, 0x95A2621A, 0xB32235A3, 0x1CE21C8C} } ,
25453 { {0x7A295D6F, 0x0DA76F8A, 0x5653B124, 0x8CF0F55B, 0xC9E9010B, 0x5463DA12, 0x2F267D1F, 0x04AD0946},
25454 {0x4209C622, 0xB504AB9D, 0x066D631D, 0x9388F868, 0xD69D2536, 0xCC499104, 0x9C2B77BB, 0x1435A0CA} } } } ;
25456 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4361 a000");
25457 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4362 a001");
25458 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4363 a010");
25459 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4364 a011");
25460 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4365 a100");
25461 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4366 a101");
25462 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4367 a110");
25463 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4368 a111");
25464 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4369 a200");
25465 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4370 a201");
25466 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4371 a210");
25467 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4372 a211");
25470 static const fp12_t var_a = { { { {0x53D2A49E, 0x7DF1D4C0, 0xA0BA9777, 0xAC05A97E, 0xF9040EBD, 0xD10B854C, 0xF3454410, 0x148F6153},
25471 {0xAD512C07, 0xBC832896, 0xDB3AF1FE, 0xD9A2205D, 0x8AB34717, 0x06323C29, 0x98037068, 0x1B268A20} } ,
25472 { {0xCA86CBD0, 0xF231A304, 0x2A3FC41E, 0x7BB25099, 0x9D311E97, 0xD5F9C7D9, 0xF3131E1A, 0x20E93074},
25473 {0xFBB35CB1, 0x5CD3FD31, 0x477697FD, 0xA809B859, 0x20ACC621, 0x6DB6559A, 0x99ECD7B4, 0x14F7B391} } } ,
25474 { { {0x5E5BDE8D, 0xCD1C100A, 0x739A73BF, 0x6F6A722B, 0xE57C981B, 0x1A07FF0F, 0x6D40CDB0, 0x119F5C63},
25475 {0x8B693CE1, 0x7300840E, 0xCA53D3FB, 0x4E849E5C, 0x1E3D678B, 0x2B2B39B8, 0x3ABE9D71, 0x08A7DB46} } ,
25476 { {0x3B7110D2, 0x383AD9B7, 0x6501A4CA, 0xB075A2AF, 0xB8452302, 0xEC25F57F, 0xE7FEDAD9, 0x1B27DBD4},
25477 {0x97D5E6A2, 0xBD67DDCA, 0x9D22976D, 0x397013A7, 0x94D3C5D2, 0x330EB9F2, 0x1E697A4F, 0x0F72D5C2} } } ,
25478 { { {0x4E411A14, 0x95B45545, 0x4CE29961, 0x73E351CC, 0x496E0018, 0xC270D957, 0x5D3DDFE3, 0x21945892},
25479 {0x4CB2A839, 0xAE5FC725, 0xAD917545, 0xDDA6FF65, 0x7891F3DF, 0xCE701BD3, 0x8E5288B7, 0x019E0146} } ,
25480 { {0xF8AA9EEB, 0x0B6834DD, 0x9D6AD2C5, 0x2D0E756E, 0x93D71614, 0xCB77F514, 0xBB74CCA0, 0x08E2DE13},
25481 {0x762F386C, 0xA447F439, 0xB3678BF5, 0xFD19EB45, 0x938844A9, 0xF417F789, 0x34E1047E, 0x182AD2D6} } } } ;
25482 static const fp12_t var_expected = { { { {0x36C275C6, 0x00E17382, 0xBFA97037, 0x053D0B08, 0x19AA73D4, 0x8E640633, 0x5C59B179, 0x06CC9E54},
25483 {0x127AF296, 0x9ED7415F, 0x6D80DB4B, 0xC9CD64C5, 0xBD4CFC48, 0xA0460ACA, 0x0D6CA493, 0x180C40A8} } ,
25484 { {0x53CAC661, 0x12021133, 0x1428CAAF, 0xCA450832, 0x1526D5DB, 0x52B39BD0, 0xE3F0C224, 0x2373701A},
25485 {0x51B08660, 0x549ACCAF, 0xDD448F75, 0xDCD78DD8, 0x7213D9B6, 0xCFC2E1E3, 0x752A21E6, 0x0CFCB94F} } } ,
25486 { { {0xDAD42B46, 0xC3101772, 0x4E49B174, 0xB97C50D4, 0x73E23580, 0x51B863B9, 0xDCD7E1A3, 0x0E55B936},
25487 {0xDC79497B, 0x3B3C8CFC, 0x43491769, 0xAA7BCFD4, 0xE5B4368C, 0xEB02EB7E, 0x562BDCAF, 0x1997640D} } ,
25488 { {0x9470607D, 0x1B00FEB9, 0x92DF53A4, 0xCD51CAD8, 0x99EFC882, 0xE67F8337, 0x8B4B2C97, 0x0A0471F4},
25489 {0x7282F86C, 0x77D00847, 0xE3E9077B, 0x8834331A, 0xE4E76021, 0x9803AEA5, 0xDBD09815, 0x099A2CDA} } } ,
25490 { { {0x8B8B980D, 0x1E5A1EF6, 0x969488DA, 0xDD32BB61, 0xEC25C7BB, 0x756E588A, 0x8C77BDD6, 0x05E88128},
25491 {0x3045C47E, 0x7A56EF61, 0xB53F842B, 0x0B8661EB, 0xEA4355EA, 0x3918118B, 0x9BFD387A, 0x0423BE3B} } ,
25492 { {0x19DEBA91, 0x417FE5FF, 0x694E99C3, 0xE24CDB64, 0x34B9CE05, 0x3003FB59, 0x9FAA7E6E, 0x1A51CFFE},
25493 {0xD011DBC5, 0x7872D848, 0x131E020C, 0x12DA6EA1, 0x1DF61E0F, 0x5B14C463, 0x4CF53038, 0x0ADC5B9E} } } } ;
25495 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4373 a000");
25496 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4374 a001");
25497 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4375 a010");
25498 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4376 a011");
25499 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4377 a100");
25500 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4378 a101");
25501 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4379 a110");
25502 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4380 a111");
25503 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4381 a200");
25504 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4382 a201");
25505 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4383 a210");
25506 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4384 a211");
25509 static const fp12_t var_a = { { { {0x4C08EE1F, 0x0B608512, 0xA2A217D1, 0xFE0C0BE1, 0xDF59135C, 0xD898468C, 0xA0523DC5, 0x209F4CEF},
25510 {0x2C115E6B, 0xDCF27CC7, 0x9496DAB3, 0xCAB64102, 0xD4ACB55D, 0x097DA520, 0xA3C0CD41, 0x1FBCC312} } ,
25511 { {0x5BD3F949, 0xBCBD45E0, 0xCD8DCA67, 0x163AE58B, 0xE1D7B7A5, 0xD964C7F8, 0x522593FF, 0x0341BB22},
25512 {0xBBA1B512, 0x67E1B762, 0xA34FC063, 0x4EC19D0B, 0xA46ADA80, 0x54A8C905, 0x82F0C61E, 0x149DB514} } } ,
25513 { { {0x4AF8394D, 0xE821EC69, 0xCE6DFA6B, 0x0DC4FA56, 0xD8ADBCE2, 0xB2B670E8, 0x5E3A7073, 0x24E24D03},
25514 {0x00E03831, 0x18F1EB7D, 0xBF38E058, 0x8A58C224, 0xD7C4E027, 0x74B25DFC, 0x1BFAB26E, 0x05715A18} } ,
25515 { {0xD6114C2E, 0x43EB6583, 0x1943232A, 0x9A37CE4B, 0x1DAE2417, 0xFC686F10, 0x28559043, 0x18D828E1},
25516 {0x16A5BA33, 0xE1B9DF8D, 0x5B61F60B, 0xB735A327, 0xC1546BC9, 0xB9CF1796, 0x16C096E5, 0x0B34156E} } } ,
25517 { { {0x062745C5, 0x9C7F3DF0, 0x23D828CF, 0xA90FFAE8, 0x15357AA1, 0xC7F34A6F, 0x78E834B1, 0x0BAC4605},
25518 {0x23E92BBA, 0x446F7B66, 0xC909684E, 0x8E5402B7, 0x084D8ADB, 0x4172ADD2, 0xDE241341, 0x10845122} } ,
25519 { {0x477EB570, 0x684E1628, 0x35A4F979, 0x42E0FF0B, 0x33907205, 0x54734606, 0x70189B3A, 0x0D83C49F},
25520 {0x463ED102, 0xAF8DF480, 0xD2530C5B, 0xA3E31FFC, 0x7A4C6253, 0xEA24C71D, 0xC1158F72, 0x0B976E39} } } } ;
25521 static const fp12_t var_expected = { { { {0x21C578B6, 0x0453EBDD, 0x208326D7, 0x16B8B9A1, 0x99B20E16, 0x929CF925, 0x4A39C6AE, 0x056C597C},
25522 {0x9F0A7BFE, 0xCCCDF523, 0xB2CEA72A, 0x94DB84BE, 0x9AE7AEAB, 0x45DCE9BB, 0x03ACD485, 0x16E9FF55} } ,
25523 { {0x92C3A3A5, 0xF2632DC2, 0x69EF8B00, 0x1324C4A5, 0xEBCC2CD6, 0x6A71B81B, 0xA5D6118E, 0x19AA7B82},
25524 {0xB342D9B7, 0xB24828B0, 0x40B57820, 0xFC6A44C4, 0x96CDEFA4, 0x192A9162, 0x45579445, 0x040D4D60} } } ,
25525 { { {0x12386366, 0xF176FD37, 0xD27BBBB7, 0x018C1A64, 0xE241894A, 0x95DA639B, 0xE8B1CEE7, 0x16C7F8A4},
25526 {0x88E85A0F, 0x258B736F, 0x780B91DB, 0xA2712E46, 0x4851018E, 0x88B1B761, 0x9302BB6F, 0x0EAEA900} } ,
25527 { {0x56506303, 0xAFAEFF2F, 0x031E3E0C, 0xE3CA095D, 0x311372D9, 0x72178BB4, 0x6C44F28B, 0x23503A8B},
25528 {0x81E62A8C, 0x6B4B5C7D, 0x5A6DE0F8, 0x6FB39832, 0x708705A2, 0x3FEB242C, 0x9A2A7758, 0x02444555} } } ,
25529 { { {0x091C9B55, 0xA477D2A6, 0x53B1FDA8, 0xC1E7DF4A, 0xF2EE1175, 0xA9069275, 0x3542CC26, 0x0CA1F2C6},
25530 {0xD5705216, 0x7C4FF03F, 0x80563789, 0x916201B9, 0xF6E9CD94, 0xF7A3ABA6, 0x5D48B96B, 0x0D755E9D} } ,
25531 { {0xEB6C8361, 0x971990A6, 0xAA587563, 0x66D03208, 0x030EC578, 0x543CD82E, 0xC091A1CB, 0x20B06C6D},
25532 {0x38E36CB2, 0x563EC6F2, 0xCD081AA2, 0x63E12BF3, 0xB5FDF483, 0x1169A7E9, 0x34477B93, 0x1BFDDD1B} } } } ;
25534 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4385 a000");
25535 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4386 a001");
25536 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4387 a010");
25537 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4388 a011");
25538 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4389 a100");
25539 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4390 a101");
25540 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4391 a110");
25541 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4392 a111");
25542 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4393 a200");
25543 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4394 a201");
25544 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4395 a210");
25545 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4396 a211");
25548 static const fp12_t var_a = { { { {0x2DECABE5, 0x21BBC891, 0x8D2B06D0, 0x4CA80BAB, 0x93521809, 0xBA621EEC, 0x0933819A, 0x1F7269B2},
25549 {0x3F28C799, 0xE05D557E, 0xF67E4BA5, 0xEB1CA226, 0xCFAD49D6, 0xD2F8F50A, 0xF395ABDD, 0x10AB07CD} } ,
25550 { {0x156384AD, 0x992B6FAE, 0xC61D07E1, 0xB1F45892, 0x72A8F05F, 0x15C4A0E7, 0xD2F3E5E7, 0x1F741B58},
25551 {0xD008D3FA, 0x4FA522BF, 0xC161AC99, 0xD9F92A8B, 0x1618A475, 0x05FE59F5, 0x0A88F2A6, 0x07D6D4D4} } } ,
25552 { { {0x917CD6C6, 0x6B82FD4D, 0x9B9F2FFE, 0xDF117EA3, 0x88D85E39, 0x6848E636, 0x3D9BD564, 0x0EC660D1},
25553 {0xA8708914, 0x8CF832F8, 0x559AC68B, 0x51549007, 0x7286B844, 0x03166640, 0x81616563, 0x0D670136} } ,
25554 { {0x8AC39C61, 0x25C04086, 0xBFBEF318, 0xE83242DA, 0x0B7D7D3C, 0xFA3D5C04, 0x6AEEA411, 0x1084DD28},
25555 {0x96A3C488, 0xEB742178, 0x05FD33A1, 0xEE76A438, 0xA4EE0031, 0x7CDB171B, 0x6495BE4B, 0x145CC562} } } ,
25556 { { {0xD1694717, 0x566E908E, 0x19DAF0EE, 0xEAFEF5F1, 0x63529D50, 0x5C196A32, 0xB650C052, 0x02532F1A},
25557 {0xDF10C9AD, 0x330A7841, 0x07E718A0, 0xEB7EE537, 0xBBE76C0E, 0x05DC8B2F, 0xFE701302, 0x1414E7FD} } ,
25558 { {0xEB03FC6C, 0x8A22A345, 0xEC174717, 0xDCBB1AA5, 0x7CF40327, 0xE9F7CD46, 0xF4C4D9DD, 0x221CF409},
25559 {0xD4F1C7B4, 0xA44D6799, 0x5FB924D0, 0x5C67F521, 0x6670E07F, 0xB0E926D3, 0x5058C44E, 0x02C1234F} } } } ;
25560 static const fp12_t var_expected = { { { {0x3571A2A1, 0x3983DAAC, 0xE12B24F3, 0xA281CFEC, 0xE1B58990, 0x067D451C, 0x8BFCCE21, 0x0859619A},
25561 {0x59A1D2F7, 0x120D2D9E, 0x13C00919, 0xB35D3B45, 0x8EA7E5E3, 0xCBDCA56E, 0x0BB2A2D4, 0x22294925} } ,
25562 { {0x25778D53, 0x6EDFEB66, 0xCED47E64, 0xBFA32C31, 0x771E55D0, 0x2A17AB1E, 0x34FE383E, 0x044646BB},
25563 {0xAF24A1C5, 0x853CFACC, 0xCA47B070, 0x4EB9295A, 0x90184937, 0x4E441C98, 0xF6D09F17, 0x0F515A40} } } ,
25564 { { {0x9AB04180, 0xD36E5B67, 0x2D6DC73C, 0xEDC8F398, 0x9AE1ED70, 0x37143CA6, 0x86F00ED9, 0x1DF5B5F8},
25565 {0xD78C19BB, 0x7C3F584A, 0xBB1D95A1, 0x88427A77, 0x8713045D, 0xEE633D05, 0xE597E30F, 0x22DE4DA5} } ,
25566 { {0xDA2DBA26, 0x3389A636, 0x93609AC7, 0x1C1265CF, 0xF5BB3AA2, 0xD456E0DD, 0xC818A6D6, 0x0EE5D6BA},
25567 {0x5A0A8962, 0x12A921E4, 0x12518FF5, 0x27008BA4, 0x63AD46AA, 0x943905F1, 0x2E8539F5, 0x14C4490E} } } ,
25568 { { {0x574A9BCF, 0x93CE9C82, 0x756C28BC, 0x378FFCA8, 0xFDFB94B5, 0x2E939700, 0x17B32389, 0x01BD876E},
25569 {0xC11778BA, 0x68B5904C, 0xD04066AE, 0x493AD877, 0x0C87CF3C, 0x8032D3FD, 0x4267CFEF, 0x1C60ACA7} } ,
25570 { {0xF0CFFA0F, 0x6A6CFFD2, 0xDC4D723A, 0x19D22402, 0x4F996804, 0x147E6C44, 0xF67F4727, 0x1D44037A},
25571 {0xBC888A62, 0x1B3F09C2, 0x4EB72808, 0xF8171966, 0x37B84E97, 0x7CDCAEFA, 0x948A2875, 0x16C8A458} } } } ;
25573 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4397 a000");
25574 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4398 a001");
25575 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4399 a010");
25576 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4400 a011");
25577 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4401 a100");
25578 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4402 a101");
25579 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4403 a110");
25580 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4404 a111");
25581 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4405 a200");
25582 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4406 a201");
25583 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4407 a210");
25584 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4408 a211");
25587 static const fp12_t var_a = { { { {0x296DE837, 0x57FEBDC2, 0x14E38084, 0x98F57D70, 0x84DD4A73, 0xD526F520, 0x38D64C05, 0x10FFA188},
25588 {0xF0C46B99, 0x671EB700, 0xC1DCC481, 0x2528C366, 0xF8850EF3, 0x9A0247D0, 0xC2C062E6, 0x016F5376} } ,
25589 { {0x2C899869, 0x1BF91CC9, 0xD79D5875, 0x8B5B065B, 0x70C49758, 0xA56D6675, 0x6E2660FB, 0x0D3C2E05},
25590 {0xF42F94B6, 0xA5FB8A05, 0xE04C786B, 0xF1F52AC7, 0x17748901, 0x21C93E15, 0x39220C54, 0x089C9375} } } ,
25591 { { {0x80DFB514, 0x1CBF842A, 0x75291C79, 0xAA744C29, 0x55A359EB, 0xA395C159, 0x16DF37D3, 0x1E880B55},
25592 {0xD46E5847, 0x66CC7388, 0xA3C9C25A, 0xA34BC96F, 0x4182A911, 0x51AD9D1F, 0xB043BE93, 0x1020A99A} } ,
25593 { {0x02B2F6F3, 0xE494DD03, 0xA427277E, 0xB25E57D4, 0x0D572201, 0x8179BC53, 0x8770CAD9, 0x1869BD32},
25594 {0x56520818, 0x3FF31635, 0xF03ECF25, 0x97EB81D4, 0x17ABDD30, 0x905567F0, 0xA0DF1DBC, 0x009B8D4F} } } ,
25595 { { {0xAA61094E, 0xE51F7559, 0x761F8A7C, 0x097C5FBA, 0x6C501BF4, 0x36C0FB7D, 0xCE397A3C, 0x24B795FE},
25596 {0x190BC046, 0x68CFD843, 0x770A7416, 0x05EAAB2F, 0x8469DF6F, 0xAE267892, 0x9130B32E, 0x206BBC63} } ,
25597 { {0x1429A1BF, 0x17CD9736, 0x9E0FA7D6, 0x2ACAC285, 0x91835B1B, 0xC020D2E8, 0x29686A4B, 0x1F129883},
25598 {0x69BE7262, 0xAA11D933, 0xEECD8F88, 0x1527F454, 0x9B378284, 0x27F4E72E, 0x59DBB748, 0x12A9ED31} } } } ;
25599 static const fp12_t var_expected = { { { {0xA5DC3412, 0x4687672A, 0x90401DDA, 0xD2505B96, 0xB35AC6FD, 0xFC4A5F0C, 0x2D3DBA0A, 0x181CC9FD},
25600 {0x236099D5, 0x3DED23A3, 0x32674287, 0x27DA66B8, 0x3FCE5541, 0x4A8D4B2F, 0x16E91334, 0x1F1B9FE7} } ,
25601 { {0x021BD090, 0x40A79CF2, 0x328544AB, 0x88205EDC, 0x40CA2FA2, 0xE28A54D9, 0x0AA60628, 0x0C9F093C},
25602 {0x6FD0C893, 0xC05DECF3, 0x48687921, 0x028F0F9F, 0x32829F31, 0x88C4DEFF, 0x040036FC, 0x094FD5A0} } } ,
25603 { { {0x00413B5B, 0x5C78D4B7, 0x3EA7C51B, 0x7486A07E, 0xC68E0162, 0xB167100D, 0x50DFC0A4, 0x1C2D13FD},
25604 {0x44B07E02, 0xE181B5E4, 0x7B25AD59, 0xEE1F562B, 0xBFD20C0C, 0x7D6EC54A, 0xD7ED6ECF, 0x1BC0B067} } ,
25605 { {0x793A05C4, 0x2E87F76D, 0xB571A242, 0xAB0F99F2, 0x453862E9, 0x3EAF8CFD, 0xAFB9BE61, 0x09691583},
25606 {0xB1E5CEFB, 0x7E103C3D, 0xEDBEE3E9, 0x8BBDB33D, 0xE465E6B7, 0x2AF734C0, 0x33D8B0B8, 0x13C854CB} } } ,
25607 { { {0x93133374, 0x9690C82B, 0x6A14965D, 0xC823492F, 0x609A1896, 0x7CF2F477, 0x43568575, 0x1906BFFD},
25608 {0xAEDE5E40, 0xEBF590D0, 0x6116225A, 0xCB662C86, 0x0590C460, 0xA52ABA05, 0x0D61A3BF, 0x1CD1E1D8} } ,
25609 { {0xE001C637, 0x8A2E16EC, 0x854F0577, 0xBFE67028, 0x4AABF039, 0x105AD75E, 0xC19191B9, 0x13200266},
25610 {0xCE92EEC7, 0x6530EA17, 0xE3B3BE5B, 0x5CCC4571, 0xC34DCA80, 0xBF6AE092, 0xBAE3B81B, 0x2214E94C} } } } ;
25612 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4409 a000");
25613 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4410 a001");
25614 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4411 a010");
25615 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4412 a011");
25616 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4413 a100");
25617 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4414 a101");
25618 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4415 a110");
25619 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4416 a111");
25620 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4417 a200");
25621 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4418 a201");
25622 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4419 a210");
25623 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4420 a211");
25626 static const fp12_t var_a = { { { {0x4B141D92, 0x2ED189E0, 0x737CBBF6, 0x29982BFD, 0x09FAF336, 0x5A520199, 0x3615ECA0, 0x0CCAB246},
25627 {0x6767C4BD, 0x081B08AF, 0xE0C5975C, 0xE404AB8E, 0x1E4524FC, 0x88F4542A, 0x2252CC83, 0x198931F2} } ,
25628 { {0x3B358009, 0xCFF390E0, 0x640420C1, 0xC87414C5, 0x5E44469C, 0x4EE1F56A, 0x68362698, 0x097AA4CD},
25629 {0x81778FD0, 0xCCE0A025, 0xB8B4EDC2, 0x1131432F, 0x38FB095E, 0xEEDD76C6, 0x7E22E9B2, 0x19EF7607} } } ,
25630 { { {0x0BAEA67A, 0x383226A1, 0x92A91B9D, 0x55FC92C8, 0xB856D223, 0xC2BF525E, 0xC3635DEF, 0x23D940D9},
25631 {0xD146B621, 0x0522808C, 0x90A2EDC7, 0x0D6F181F, 0xF20D1D02, 0x7BDBE4FE, 0xFECBC555, 0x20B03592} } ,
25632 { {0x7991607B, 0xDE55B151, 0x7B5B8638, 0xEEC5D514, 0x493A6261, 0xB3A122FD, 0xE9C04097, 0x186080A0},
25633 {0xEADC8D4D, 0x0F12B5E4, 0x8B36BCEA, 0xD9F9FA37, 0x16AED3F3, 0x9851F5A1, 0xBBD89D8B, 0x0993546C} } } ,
25634 { { {0x365B0A1C, 0x6A3240B8, 0x5A9B5C81, 0x2EE3EC64, 0xB6E548FC, 0xB04937E5, 0x5B610722, 0x0A6149B8},
25635 {0x2769DB96, 0x98CEDEF7, 0x72371BBC, 0x3E234168, 0x764A6F6B, 0x91A31263, 0x4801E515, 0x090E2C45} } ,
25636 { {0xC6C1FA4B, 0x920E4AAE, 0x2387A61E, 0x6366FACD, 0xEBB752EA, 0xA4E58337, 0x25743D05, 0x12D5A789},
25637 {0x9DEFA8E5, 0x32DD6077, 0xB05BD85E, 0x3AD58DD1, 0x585DBA88, 0xC7CC2B8E, 0x8E06409A, 0x186A3403} } } } ;
25638 static const fp12_t var_expected = { { { {0xD20C4D33, 0xDA305848, 0x529E370E, 0xCD73A511, 0x6A62DD5D, 0x0FA4E1CC, 0xFA38C4F2, 0x0A3D417C},
25639 {0x395967B1, 0xDF4EB4DB, 0x482C49BC, 0xD2271389, 0x89E9B3C4, 0xDDB98522, 0x41BEBC82, 0x2044995C} } ,
25640 { {0xDA69F41E, 0x2B1B0545, 0xBCDE1B9D, 0xBD91ADB7, 0x0C596790, 0x090347EB, 0xD5534719, 0x16CEBBFE},
25641 {0x3D378223, 0x00AC1EEC, 0x637D3DE3, 0x36EEAC4E, 0xEEF5439B, 0x02795997, 0x12652E63, 0x0DC0FFA6} } } ,
25642 { { {0x66BA39F7, 0x603BC078, 0xD97ABE66, 0xDAABB4CD, 0x11941342, 0x1F2852BC, 0xEA5CD60F, 0x245D8032},
25643 {0x8B3108B1, 0x4217F901, 0x6342256F, 0x5AE0D74D, 0x10C67217, 0x48C8B96D, 0xD6C81AEF, 0x1EC8EA36} } ,
25644 { {0x2410A739, 0x836E8AF0, 0xEEDCAB50, 0x5DC65531, 0x25CC8E08, 0x82E30EDB, 0xA9CEEED7, 0x07F35B65},
25645 {0x273A3E40, 0x9EC07F31, 0x0A0F7FFC, 0x72D2F491, 0xC697FA51, 0x7FCE0287, 0x557AAA41, 0x0494A149} } } ,
25646 { { {0xC8754FA0, 0x9AFB18D3, 0xC662D1AC, 0x9C107522, 0xF44BDF8C, 0x5F0D0501, 0xEED3BE6C, 0x1EB1A274},
25647 {0xEE98BC8B, 0x5F9E556B, 0x5E41AA27, 0x0581B705, 0xD9B9F189, 0xC4C514F8, 0x0777466E, 0x02E9030E} } ,
25648 { {0xAC70E4DD, 0x04CC9D29, 0x85D64313, 0x5651E780, 0x47CC64EA, 0x1DB4E847, 0x27555FC6, 0x05CAB24B},
25649 {0x590937CA, 0xF84973AA, 0xB6E0E075, 0xF81BE807, 0x78A65328, 0x1CF50AD0, 0xEE74CE7B, 0x1D72965E} } } } ;
25651 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4421 a000");
25652 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4422 a001");
25653 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4423 a010");
25654 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4424 a011");
25655 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4425 a100");
25656 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4426 a101");
25657 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4427 a110");
25658 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4428 a111");
25659 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4429 a200");
25660 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4430 a201");
25661 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4431 a210");
25662 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4432 a211");
25665 static const fp12_t var_a = { { { {0x3D6B4272, 0xBAC919F4, 0x7AC965AE, 0xFC51FDB6, 0x76170D52, 0x89D5F942, 0xFE7BD25F, 0x14AE3698},
25666 {0x04A290DD, 0x008D677D, 0xE8CB59AB, 0x1611CE4F, 0x254A2209, 0x1B303FB7, 0x769E62E6, 0x063B88FC} } ,
25667 { {0x22A0B4BA, 0x0DE4FCBD, 0x448ACA28, 0x1CA5B242, 0xB12D0980, 0x522C31FA, 0x9AE77BEE, 0x0B016FD6},
25668 {0x615741E3, 0x1AD50284, 0x6755C29B, 0x1EC28A08, 0x8CE9149D, 0xFBB8B6EA, 0xE3EB70EE, 0x112F46E3} } } ,
25669 { { {0x7B46CF20, 0xC5FC540E, 0x830E7409, 0x6294DA7D, 0x606736B1, 0x75D6D2DE, 0x3ADBB95D, 0x1E9EEA05},
25670 {0x67E8EB5F, 0xC18985CF, 0xA5DCBDB6, 0x8A09A984, 0xC18239F6, 0x23316805, 0x49863343, 0x20FAF5CA} } ,
25671 { {0xB5B6E620, 0x4EADDD60, 0x68B6D08F, 0x19E054BE, 0xE022F5D2, 0x3CBBECD5, 0x808BAF1E, 0x24AA7E1A},
25672 {0x279A0CAA, 0x04A4AC02, 0x2B43F1EC, 0x176CA772, 0x85B8ACF0, 0xA78FCF5B, 0x93110846, 0x0ABB039B} } } ,
25673 { { {0x3F84D201, 0x551E443D, 0xBBAC6800, 0x062D9513, 0xAA4B5191, 0x6B103898, 0x58486DC8, 0x21D16872},
25674 {0x5968E796, 0x91A42437, 0xCB84ADF8, 0x4227D944, 0x296899E4, 0x4C37B736, 0x50EFF107, 0x234AADB6} } ,
25675 { {0xD9BAFCDF, 0xEF34B33D, 0xD5574B60, 0xA6898DC8, 0x9A69D793, 0xF92FC938, 0x1BBA8A14, 0x047D2789},
25676 {0xACFB8C32, 0x49BDA941, 0x650CB16B, 0xBE3D69CC, 0x02AE78A3, 0xD9682B7F, 0x75943AC6, 0x248D9CC5} } } } ;
25677 static const fp12_t var_expected = { { { {0x7675F1D7, 0x831DEC8D, 0x791281EA, 0x2E19F2C8, 0xA4C6F6D0, 0xF63AD5FB, 0x1FA4EF21, 0x2216B2B3},
25678 {0x7C76C6BF, 0x8FCE1942, 0x9E530CFF, 0x7B4D7501, 0xB7B700D8, 0x22500B24, 0xA0D45298, 0x1E0735A6} } ,
25679 { {0x426B538C, 0x444FCF1C, 0x99158AD8, 0xE4A13B7E, 0x2FB492E2, 0x825A6ABD, 0x9AAD93BE, 0x06F41B98},
25680 {0xAE2D700B, 0xFEDC9380, 0xFC5037B2, 0x1A8722CA, 0xEC3CE24D, 0x83504B2B, 0xC432B5C0, 0x0F60C2D8} } } ,
25681 { { {0x9EF9B8C0, 0x91AE3F96, 0x93CA69E8, 0x507B9D86, 0xD9F6555B, 0xACD0594B, 0x9E97B1D0, 0x0653E950},
25682 {0x3822670F, 0x67508F03, 0xFD40F7EC, 0x32BBA815, 0x243224E7, 0xCFD70AF0, 0x313F6EDC, 0x12DDC8B9} } ,
25683 { {0xDD65F12B, 0x130C1AC3, 0x80516670, 0xA40EACD9, 0xF91A1969, 0x1FE1DF77, 0x2D5814E0, 0x0C9660F8},
25684 {0x7D703F94, 0x3787BFE3, 0xF87F615F, 0x278B2908, 0x4D9F9221, 0x07E58B58, 0x80E58A5C, 0x202E3B20} } } ,
25685 { { {0x252186A0, 0xE3F72F3D, 0xFF8475F9, 0xC4258B74, 0xB620A19C, 0xC580EFAF, 0x138051FC, 0x1C48FB8B},
25686 {0x254F8D04, 0x8966C597, 0x60C524F2, 0x2F5452BA, 0xC0F7AAD9, 0x9B4245A7, 0xAD580DD0, 0x0542838B} } ,
25687 { {0x6631EE0F, 0x971A5F1D, 0x9B28CE60, 0x36AA58F5, 0xAB457D3B, 0x85CC7BEF, 0xC097AECA, 0x114BEC90},
25688 {0x8BB3B5C7, 0x0E919771, 0x8049AA70, 0xB7C47F29, 0x03FD42D5, 0x1B362852, 0xF458E043, 0x0F0449E0} } } } ;
25690 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4433 a000");
25691 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4434 a001");
25692 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4435 a010");
25693 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4436 a011");
25694 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4437 a100");
25695 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4438 a101");
25696 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4439 a110");
25697 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4440 a111");
25698 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4441 a200");
25699 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4442 a201");
25700 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4443 a210");
25701 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4444 a211");
25704 static const fp12_t var_a = { { { {0x1779148D, 0x032ABBC9, 0x7CDA3038, 0x6DF8402C, 0xF30E8182, 0x5052BE54, 0x7ABF4C77, 0x12390115},
25705 {0x51EE2149, 0x7F87905A, 0xBACFF61D, 0xB8C3819A, 0x4ED73F3C, 0x5E7C5111, 0x0C671300, 0x1E42F9D0} } ,
25706 { {0x33D44818, 0x80173B2F, 0x315D525B, 0xBF4466F9, 0x739627CE, 0x318963D4, 0xE6BE861B, 0x00A82578},
25707 {0xF3F7F52F, 0x65165BEE, 0xBFA2B275, 0x3730DD0C, 0x00E128B4, 0xB5B8B547, 0x0152AEFD, 0x1F276F63} } } ,
25708 { { {0x0509188D, 0x8904CB5C, 0x7BA60505, 0x77E4E1E7, 0x35B120CA, 0xCA2E916F, 0x85E84353, 0x15F95237},
25709 {0x5FC33A92, 0x4E0D5FCC, 0x82BBDAEA, 0xB06A54CB, 0xD3F86FCB, 0x8A21DCDE, 0xA9748452, 0x01DD0722} } ,
25710 { {0xD9832D59, 0x514B7709, 0x0AE83521, 0x962D4922, 0x40C86F91, 0x4E513BE1, 0xE537454F, 0x0BECF358},
25711 {0x723EFADF, 0xDDA246FC, 0x37D7246F, 0x6C8B26C8, 0x3F970410, 0x9D77B24D, 0xE0EA4DAD, 0x066ADCEB} } } ,
25712 { { {0xFB3672E1, 0x989128C2, 0x44ADC210, 0x80A6BC14, 0x7D02ED36, 0xD26DDE66, 0xBC3D12C8, 0x226CEA5B},
25713 {0x574419C6, 0xFDED42FA, 0x9DC39641, 0x16A71B63, 0x1A8476D4, 0xB3B8A08E, 0xB1AFD1F4, 0x22CAFF0F} } ,
25714 { {0x17CB127F, 0x4B06C899, 0x789F5D91, 0x8F6AE149, 0x8091C799, 0x2498ED73, 0x43E370AB, 0x1701DFE5},
25715 {0x241DB608, 0x6ACB3E30, 0x7E3536A5, 0x2C68527D, 0x83DD690E, 0xBDF995F7, 0xB01DE69A, 0x03D06C82} } } } ;
25716 static const fp12_t var_expected = { { { {0x9AAB81B2, 0x518FBAFC, 0x6F12E1E3, 0xED6511E3, 0x7D90453A, 0xBCE9EFD4, 0xE15037F3, 0x19A53DBF},
25717 {0x0C05D6BD, 0xD25861A8, 0x0443BEC7, 0x75E456F0, 0xEA5B23E1, 0x74E2AEB6, 0x27D5E222, 0x1742B5EE} } ,
25718 { {0xF543B86E, 0x9546269C, 0x7DBE26EE, 0xABC6142F, 0xF20113B5, 0x35AFF929, 0xE098362E, 0x075ECDB3},
25719 {0x0EB39622, 0x2C60A011, 0x62B2C208, 0xD9AC3552, 0x6CB11DED, 0xE0ED9A86, 0x35750E05, 0x17E101DE} } } ,
25720 { { {0x11A4669C, 0x3F6B3A9C, 0x85039294, 0x6AF5A1BA, 0xD6EFCFC6, 0x112C5D07, 0xF18614AF, 0x027A75A4},
25721 {0xA34D6E0D, 0xF7FC79C8, 0x0CFC8924, 0x2568F86E, 0x18A09955, 0xFF68C666, 0x1F4FA14C, 0x115D2BD8} } ,
25722 { {0x2BF9F186, 0x4C4C22D1, 0x5A2D8FAF, 0xA6C95C7B, 0x58678341, 0xA9A7CC31, 0xD2ECC89E, 0x12FFAA4E},
25723 {0x8DEE3052, 0x07E0CC04, 0x3AEDF395, 0xCD7A5D5F, 0xB1A46651, 0x6188F885, 0xF104EC51, 0x03390AAA} } } ,
25724 { { {0xC3CEA132, 0x0807CEF2, 0x6D7CBE5F, 0x4855BEA5, 0xB0C60058, 0xE5F77F4C, 0x36D921AB, 0x178D2875},
25725 {0x9F2A27A5, 0xA9CB7D87, 0x48045CA5, 0x9BF89740, 0x81B838F9, 0xAC88BC2C, 0xC199A49C, 0x12CB8CB0} } ,
25726 { {0xA5A3C142, 0x3EC52273, 0x24FFAB75, 0x4A2DE055, 0xEEAD890C, 0x9F989043, 0xADF82011, 0x19144522},
25727 {0x834D64D4, 0xB5225C3A, 0xF5775C1E, 0x61A75C95, 0x86E32A54, 0x869C41F4, 0x8309A307, 0x12EAC62D} } } } ;
25729 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4445 a000");
25730 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4446 a001");
25731 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4447 a010");
25732 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4448 a011");
25733 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4449 a100");
25734 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4450 a101");
25735 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4451 a110");
25736 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4452 a111");
25737 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4453 a200");
25738 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4454 a201");
25739 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4455 a210");
25740 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4456 a211");
25743 static const fp12_t var_a = { { { {0x19108D89, 0x3F1806BF, 0xB2688BBD, 0x1AD99B9C, 0xD937DAAF, 0xDD56400B, 0x0DDDCD9E, 0x13D9158F},
25744 {0x3A510373, 0xB24ABCCF, 0x2A1DFBCA, 0xA244E837, 0x436BA66A, 0x26DB3B61, 0x5F454436, 0x0750A6A6} } ,
25745 { {0x1CEB8056, 0x516DDCED, 0x965B0EDE, 0x8D983D24, 0xA287C17F, 0x51E94C05, 0xA51A483A, 0x0952604F},
25746 {0x929436FA, 0x1158FEEA, 0xFFC2B01F, 0x53775579, 0x9E18395F, 0x5082309F, 0x0398FA80, 0x126366CD} } } ,
25747 { { {0x77DD87D5, 0xECDC7AEF, 0xDC38318C, 0x2F14A9F0, 0xF2C08865, 0xC3D8F3D4, 0x62E9ADD4, 0x004C15BC},
25748 {0x2525BE99, 0xB85907A6, 0x514E9A79, 0x0FA03CE1, 0xA2EABF4D, 0xA8D35538, 0xD28BEDFB, 0x120310EF} } ,
25749 { {0x5F0723B8, 0xE1B615E8, 0x2217A181, 0x90BDAACD, 0xE484B5E1, 0x8EC9C028, 0x4D31868A, 0x0351E5F0},
25750 {0x95A6B6E1, 0xB535CC23, 0x6C168361, 0xDD5E5A14, 0x7E892F2A, 0xDD4109E5, 0x6B71581D, 0x1C6D800F} } } ,
25751 { { {0xFC5B7CDE, 0x9E06FFC6, 0x2F8E90CC, 0x2FF24EC7, 0x92EC71BE, 0x1FCC4E58, 0x7F299385, 0x1836A480},
25752 {0x28210F0A, 0x663A6C69, 0xDAAA7A5A, 0xE6192F27, 0x3A493477, 0x876599C9, 0xA3478600, 0x0E86E392} } ,
25753 { {0xCD60FEE1, 0x48BAAEAE, 0x6D7A62E9, 0x01FC4460, 0x367EB8ED, 0x873F26AF, 0x1E965407, 0x140EFE66},
25754 {0xCBBAFAF2, 0x78BE61E6, 0xC40D4D24, 0x0C3714C5, 0x16C6F307, 0x2DD449FB, 0xCF481B3F, 0x039D5050} } } } ;
25755 static const fp12_t var_expected = { { { {0x97A52E5F, 0x9F32A8F5, 0x1215EA19, 0x9BC22E60, 0xBB57E1B3, 0x12F819E2, 0x29264BC9, 0x0FC5FD06},
25756 {0xE7EB0CF9, 0x65E04BDB, 0x8B4CDBA6, 0x57E11604, 0xE3BAB1CD, 0x9505635E, 0x0FE0D2D7, 0x09DCF546} } ,
25757 { {0xA423781F, 0x5D09357D, 0x3DAD1443, 0x235BF0D1, 0x96047080, 0xE3D74DFA, 0xC41B8A80, 0x1109F1C0},
25758 {0x90DF0498, 0xE916287A, 0x96784702, 0xC35F112E, 0x42D37032, 0xBA8F8711, 0x4C7F41E3, 0x00E8BBB2} } } ,
25759 { { {0xE2DDB3C6, 0xBAE7AB7B, 0xFA4F53D0, 0xBDF8569B, 0x9693A93C, 0x2A637E07, 0x69531E2B, 0x01D4A3FF},
25760 {0x1C0D637D, 0xE4715E3D, 0xB9B84493, 0x98B1E6DE, 0xBBBC6A49, 0x5C7BB637, 0x2976A975, 0x007D9906} } ,
25761 { {0xB3B3724A, 0x9EEAB56F, 0x2AB8DA32, 0xBBF5007F, 0x5655F075, 0x85A2FE9E, 0x8FD4ABBD, 0x137FE1E1},
25762 {0x056FF1AE, 0x876D6B20, 0x49C8B426, 0xB9BB8EF8, 0x93DD27E7, 0xAF2F3620, 0x2AC978BB, 0x1D5504B3} } } ,
25763 { { {0xC1559E79, 0x55D4928D, 0xA111016C, 0xC1C16101, 0xB89A1341, 0x2E558E99, 0x02964001, 0x12A51771},
25764 {0xCFD71B61, 0x2DF75467, 0x3F07B825, 0x4C737670, 0x6228072C, 0x97B786C4, 0x829E90FF, 0x028E2755} } ,
25765 { {0xB3919771, 0xB4FAB65A, 0xBB9BCA8F, 0x71FC6D76, 0xDDEF6667, 0xC8EF313F, 0x7239CC63, 0x02600821},
25766 {0xAD064941, 0x99C9173A, 0xE3838315, 0xF2D35D5D, 0x2DED9289, 0xDBABE735, 0x8E5A8366, 0x094B9985} } } } ;
25768 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4457 a000");
25769 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4458 a001");
25770 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4459 a010");
25771 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4460 a011");
25772 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4461 a100");
25773 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4462 a101");
25774 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4463 a110");
25775 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4464 a111");
25776 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4465 a200");
25777 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4466 a201");
25778 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4467 a210");
25779 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4468 a211");
25782 static const fp12_t var_a = { { { {0x415A580B, 0x10D01815, 0xA2995CA8, 0x31A7C726, 0x76FD9F82, 0x5CD72225, 0xC4B559E1, 0x07D7C217},
25783 {0xDB9F98F2, 0x04E9A06B, 0x9730FE81, 0x9B2AF863, 0x568AB2DE, 0x24A1FC46, 0x5B236A59, 0x25025510} } ,
25784 { {0xED4C31E7, 0x534473D8, 0xA8D39728, 0x1296260C, 0x9983FFCA, 0x39913EA4, 0x5A238EF0, 0x16A0C21E},
25785 {0x9D3009AF, 0xC58EF36C, 0x6143946E, 0xD5EE09AD, 0xD7FE64BE, 0xF6B41008, 0xA31D6179, 0x11394C7D} } } ,
25786 { { {0x90CBDAC5, 0xC1A47DE3, 0xB773D5B8, 0x4A485369, 0x4AEAC4CB, 0xD3BA0882, 0xCC962CA1, 0x08504418},
25787 {0x1934FDF2, 0x737B52F9, 0xFBFA94D8, 0xEA2F69A6, 0x90F20F28, 0xC5305438, 0x785DF43F, 0x162D891A} } ,
25788 { {0x45CBBF02, 0x7305F7AF, 0xA75C5573, 0xF3B09ECC, 0xA3AD2911, 0xC4F7D4F3, 0xCBC19E3D, 0x0427395B},
25789 {0x921B0C44, 0xE059936F, 0x2FBBAEFF, 0xDF94B746, 0x85C1C284, 0x10A5E811, 0x2BB7DDB1, 0x040398EE} } } ,
25790 { { {0x21380A92, 0xA65AA329, 0xE85778CF, 0xFA26DE16, 0x427081CF, 0x80B89023, 0x41B32066, 0x0B13128C},
25791 {0x17308042, 0xB82057E1, 0x77245B44, 0x39E41318, 0xF554D8E7, 0x2B2CB1C8, 0x57FC05AC, 0x04D4AD58} } ,
25792 { {0x3EE36D28, 0x31C8C112, 0x7EBEBEE1, 0x7C296FD0, 0x9A8CCB45, 0x3A45FBD5, 0xF6F6CBF6, 0x01C24F2D},
25793 {0x423F1105, 0xC881C5B1, 0x9DF59A71, 0xAE2F39DE, 0x3E248794, 0x943D29A6, 0xBB3B7462, 0x22B5751A} } } } ;
25794 static const fp12_t var_expected = { { { {0xCE67553B, 0xE87C7B9D, 0x454EB3A6, 0xF389A0F1, 0x23D2C000, 0x3B28816E, 0xA5E562F5, 0x1A4FB81A},
25795 {0x5519CC76, 0x7DCAEE96, 0x7FDAA7BA, 0x9791369B, 0x6224478F, 0x2896CE3D, 0xC6B468F0, 0x0CB37E1F} } ,
25796 { {0x20749CA6, 0xF7008EB1, 0x7EE39561, 0xF1EA8F95, 0xFBFADA1D, 0xC2EDD0E8, 0x75972EFE, 0x01F6CC21},
25797 {0x0D81CD3E, 0xABBEAFC9, 0xE9C952BE, 0x1C1E61CA, 0x60C396A0, 0x390F4EF2, 0xD1B68ED6, 0x14E055B9} } } ,
25798 { { {0x318679C6, 0x2B003968, 0x6F0592B1, 0x6CF3DCDC, 0x8E595B7C, 0x516494B6, 0x50290EE6, 0x15F8CD1E},
25799 {0x2A887F78, 0xD530CE42, 0x43F6E9DD, 0x82563C2A, 0xE0EE41A2, 0x81407235, 0x7AD75859, 0x1DBDDD42} } ,
25800 { {0xF01AEE6D, 0x79008419, 0x4469DA88, 0x5E5D79C5, 0xF5B22C89, 0xE27C493E, 0x1E277117, 0x040ACA5D},
25801 {0x2D787938, 0x549C08BF, 0xCE9BB80A, 0x1FA8DBE6, 0x3DB80EA5, 0xD14C6857, 0xE74ED5D7, 0x00BA9C5B} } } ,
25802 { { {0x8A77252F, 0xDCC8F4BB, 0x7F201386, 0x6E3E28C2, 0xC61B6EAC, 0x1D93732D, 0x169967AB, 0x1EA1EAF7},
25803 {0x955D95BC, 0xCC65F050, 0x241BEFCE, 0x32854FB1, 0x2519E29E, 0xB8A7525B, 0xDA8C38D6, 0x24F413DD} } ,
25804 { {0x3F03553D, 0x115DA0FE, 0x6E24B641, 0x39550A38, 0xAE8D30BF, 0x2EFE359B, 0x07AA42E3, 0x038D1E39},
25805 {0x0389E9D8, 0x35FB9853, 0x3A66605B, 0x5D1CF1AC, 0xA5FB9E66, 0x1A4F44B5, 0x5FA51911, 0x169EFCF4} } } } ;
25807 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4469 a000");
25808 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4470 a001");
25809 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4471 a010");
25810 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4472 a011");
25811 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4473 a100");
25812 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4474 a101");
25813 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4475 a110");
25814 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4476 a111");
25815 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4477 a200");
25816 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4478 a201");
25817 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4479 a210");
25818 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4480 a211");
25821 #elif (BNCURVE == BN158)
25822 #ifdef MONTGOMERY_ARITHMETIC
25825 static const fp12_t var_a = { { { {0x9EA7BF1A, 0x296CCAED, 0x9A7B2DDD, 0x1789A91F, 0x1ADBAFBB},
25826 {0xDA8296B1, 0xF4D5E893, 0x0D33C3DD, 0x0764802A, 0x1144AD7B} } ,
25827 { {0x9E397A93, 0xF4BA7AFD, 0x011B4B66, 0xE8941809, 0x14F10DFF},
25828 {0xF8260169, 0x51735F01, 0xCEE916D0, 0x4E45148D, 0x12274B99} } } ,
25829 { { {0xE318176F, 0x7FB912CB, 0x6BDC352F, 0x473910D1, 0x23A954D8},
25830 {0x0ED347D6, 0x38CB67A6, 0xA211D48C, 0x56081D09, 0x005E87C9} } ,
25831 { {0x7CEA35BB, 0x2E34F729, 0x3944C063, 0x9BB52308, 0x14E038C6},
25832 {0x35D27319, 0xDF6D75D0, 0xAD93E966, 0x76905FAC, 0x15631145} } } ,
25833 { { {0x80505025, 0xE4BC45C3, 0xC65B499D, 0x2DFCA061, 0x061B75F9},
25834 {0x34518397, 0xD2A60BD3, 0xC48E25B1, 0x72AD6C2F, 0x08C293F3} } ,
25835 { {0xEE4987A7, 0x6C12209F, 0x7F22D943, 0x707ADD31, 0x200FE3A2},
25836 {0xAC6B000F, 0x6C2386DB, 0xABA37FC2, 0xF33803CE, 0x1CEC8376} } } } ;
25837 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25838 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25839 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25840 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25841 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25842 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25843 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25844 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25845 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25846 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25847 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25848 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25850 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1937 a000");
25851 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1938 a001");
25852 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1939 a010");
25853 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1940 a011");
25854 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1941 a100");
25855 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1942 a101");
25856 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1943 a110");
25857 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1944 a111");
25858 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1945 a200");
25859 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1946 a201");
25860 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1947 a210");
25861 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1948 a211");
25863 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1949 a000");
25864 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1950 a001");
25865 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1951 a010");
25866 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1952 a011");
25867 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1953 a100");
25868 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1954 a101");
25869 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1955 a110");
25870 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1956 a111");
25871 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1957 a200");
25872 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1958 a201");
25873 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1959 a210");
25874 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1960 a211");
25877 static const fp12_t var_a = { { { {0x350E9BD0, 0xA46D45AE, 0x52560EB2, 0x8FD89A46, 0x1B785396},
25878 {0x55585182, 0x5D71CD6F, 0x47A3FE4B, 0xA1607878, 0x03EBACB0} } ,
25879 { {0x98788094, 0x01D5A3ED, 0xAE762030, 0x5E5F68DD, 0x1CF11D70},
25880 {0x67162954, 0x2CBC353E, 0xE0372B7A, 0x1360C610, 0x112FEF67} } } ,
25881 { { {0xCCE9BE03, 0xE92A39A1, 0x2CD4E401, 0x8F62994E, 0x135B182F},
25882 {0x0E23A8F6, 0xE932BC1C, 0xEC555BDD, 0x10525830, 0x23FE783C} } ,
25883 { {0xF6AC8F8E, 0x279A2546, 0x0A81F331, 0x7CCFD4C9, 0x1C30FA29},
25884 {0x3EB38001, 0x9D4BCE5E, 0x12794D44, 0x0766B4FB, 0x149AA6D8} } } ,
25885 { { {0x471D6407, 0x3C50ED22, 0x01845E98, 0x9DF08B46, 0x0DC71929},
25886 {0xAC6E7D48, 0xDFA667D0, 0xCC61E0D3, 0xEA5A3215, 0x1E9BBA89} } ,
25887 { {0xC46177CB, 0x5EE37524, 0xEA9ADF7F, 0x9F7AA995, 0x08811FA9},
25888 {0x22FB391A, 0x05C210B7, 0x116EE000, 0x34ED8DEA, 0x20D3C282} } } } ;
25889 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25890 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25891 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25892 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25893 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25894 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25895 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25896 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25897 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25898 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25899 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25900 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25902 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1961 a000");
25903 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1962 a001");
25904 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1963 a010");
25905 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1964 a011");
25906 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1965 a100");
25907 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1966 a101");
25908 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1967 a110");
25909 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1968 a111");
25910 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1969 a200");
25911 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1970 a201");
25912 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1971 a210");
25913 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1972 a211");
25915 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1973 a000");
25916 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1974 a001");
25917 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1975 a010");
25918 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 1976 a011");
25919 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 1977 a100");
25920 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 1978 a101");
25921 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 1979 a110");
25922 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 1980 a111");
25923 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 1981 a200");
25924 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 1982 a201");
25925 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 1983 a210");
25926 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 1984 a211");
25929 static const fp12_t var_a = { { { {0x766E5AAB, 0x8B7E8B0B, 0xFD195E42, 0x82154497, 0x1BC5FF75},
25930 {0x3A47F61D, 0x84C0E321, 0x5DF02143, 0x1C2813FB, 0x01DB7DD8} } ,
25931 { {0x2D678753, 0xCC489A52, 0x89FB7EF1, 0x5DBB8310, 0x23A208A8},
25932 {0x6109C7D1, 0x6AFA4001, 0x627B9548, 0x70B5F929, 0x08BE5EE7} } } ,
25933 { { {0x1B23355C, 0xA46C9631, 0x81471B27, 0x243621A9, 0x035E0AC7},
25934 {0xEA3F8456, 0xC6ADE810, 0x45CF65E3, 0xB9FE8C0B, 0x1A15108C} } ,
25935 { {0x6D33C258, 0x3DD30358, 0x3C7D8205, 0x779FDD3D, 0x0AF498B2},
25936 {0x5FC9E7C7, 0xC68C97C1, 0x60E3FB9D, 0xAEBD848E, 0x03BA7B45} } } ,
25937 { { {0xBBE852FB, 0xE8B7370C, 0xA09DD3BD, 0x599F684D, 0x139C277E},
25938 {0x192F6ACD, 0x551E3175, 0x9ED71B18, 0xE0386397, 0x079B4D06} } ,
25939 { {0xD520F268, 0x85CCEC53, 0x42501E01, 0x66D0AEB5, 0x12276A23},
25940 {0x0D68AAF0, 0x89F31782, 0x98C20BD6, 0x3F28B921, 0x05618794} } } } ;
25941 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25942 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25943 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25944 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25945 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25946 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25947 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25948 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25949 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25950 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25951 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25952 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
25954 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 1985 a000");
25955 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 1986 a001");
25956 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 1987 a010");
25957 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 1988 a011");
25958 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 1989 a100");
25959 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 1990 a101");
25960 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 1991 a110");
25961 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 1992 a111");
25962 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 1993 a200");
25963 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 1994 a201");
25964 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 1995 a210");
25965 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 1996 a211");
25967 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 1997 a000");
25968 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 1998 a001");
25969 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 1999 a010");
25970 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2000 a011");
25971 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2001 a100");
25972 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2002 a101");
25973 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2003 a110");
25974 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2004 a111");
25975 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2005 a200");
25976 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2006 a201");
25977 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2007 a210");
25978 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2008 a211");
25981 static const fp12_t var_a = { { { {0xD2F15BF8, 0xAE69DC75, 0x024D1F79, 0x60CF66CB, 0x14F06E17},
25982 {0xA37A9B0D, 0x4D535A46, 0x66F7000D, 0x7D27F7CE, 0x007B3560} } ,
25983 { {0x9D2BF931, 0x1115B800, 0x7F46A930, 0x6BF76BD9, 0x0728AEB9},
25984 {0x09549B88, 0xD3188ECF, 0x1D93180B, 0x8803D9B0, 0x07F8715F} } } ,
25985 { { {0x4C6BF643, 0x48E12F81, 0x38B550F5, 0xA75EA4BF, 0x02D3C34B},
25986 {0x3B1F0C25, 0x715F6487, 0x6EDFA389, 0x5B6B3DBE, 0x104ECD2C} } ,
25987 { {0x0CFE44C4, 0x6BEAB283, 0x86F545C7, 0x73DE99C2, 0x1F7BF4B9},
25988 {0x52574565, 0xA815519A, 0x408793EB, 0xB2F1ECAB, 0x1CC3FD6E} } } ,
25989 { { {0x11482434, 0x1ABC294C, 0xC5C7D168, 0x4F71B50C, 0x1B336818},
25990 {0x392804B5, 0x6D137251, 0x6DD32E7A, 0xE2655B07, 0x12339A2A} } ,
25991 { {0xC4E4A6B1, 0xBFC4EA63, 0x5397E409, 0x570F0A55, 0x06F4E711},
25992 {0x0A4E0D5D, 0xD63DA95C, 0x69DAE569, 0x60515FC3, 0x05BCEDB9} } } } ;
25993 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25994 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25995 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25996 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
25997 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
25998 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
25999 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26000 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26001 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26002 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26003 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26004 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26006 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2009 a000");
26007 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2010 a001");
26008 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2011 a010");
26009 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2012 a011");
26010 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2013 a100");
26011 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2014 a101");
26012 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2015 a110");
26013 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2016 a111");
26014 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2017 a200");
26015 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2018 a201");
26016 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2019 a210");
26017 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2020 a211");
26019 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2021 a000");
26020 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2022 a001");
26021 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2023 a010");
26022 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2024 a011");
26023 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2025 a100");
26024 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2026 a101");
26025 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2027 a110");
26026 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2028 a111");
26027 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2029 a200");
26028 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2030 a201");
26029 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2031 a210");
26030 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2032 a211");
26033 static const fp12_t var_a = { { { {0x3E1BC053, 0x905EA1DB, 0xAFC0FD9E, 0xD8F8C562, 0x0A7F7DC6},
26034 {0xE7E39CE8, 0x27FF7AEF, 0x98DD692D, 0x0E0B1CA3, 0x1DD1DDB3} } ,
26035 { {0xCF123FC2, 0x94378E09, 0x5A06B8C8, 0xDDFEAC7C, 0x0B1553FE},
26036 {0x1C34E747, 0x101CA30A, 0x328BA5E3, 0x6AADB627, 0x0EC319D2} } } ,
26037 { { {0xE502DA79, 0x3CD6094E, 0x74591D4C, 0x23222B49, 0x22DB40AA},
26038 {0x6840D367, 0xD7E5A5CC, 0xE5104528, 0xCD349CC9, 0x1AF10FD7} } ,
26039 { {0x32A2A08C, 0x54ABEB3B, 0xDBFC77A4, 0xC3D0AECE, 0x1AC46F31},
26040 {0xF2575A40, 0xBEB237C9, 0xD6BC57AA, 0x09941FD8, 0x0F59D533} } } ,
26041 { { {0x92A3C549, 0x63FF1572, 0xC45D3BD2, 0x04EF075C, 0x13876E0C},
26042 {0xA5EBC4B2, 0x317DBAF2, 0xF38A3FF3, 0xCE2DABEB, 0x09CBBCB3} } ,
26043 { {0xAA0DD8EF, 0x38C0C08C, 0xD663D2FE, 0x2E4CA2A6, 0x0010AD20},
26044 {0xF2D6007C, 0x139A09FA, 0x44F63778, 0x19141E06, 0x1E01BEDD} } } } ;
26045 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26046 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26047 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26048 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26049 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26050 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26051 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26052 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26053 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26054 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26055 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26056 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26058 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2033 a000");
26059 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2034 a001");
26060 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2035 a010");
26061 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2036 a011");
26062 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2037 a100");
26063 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2038 a101");
26064 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2039 a110");
26065 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2040 a111");
26066 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2041 a200");
26067 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2042 a201");
26068 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2043 a210");
26069 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2044 a211");
26071 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2045 a000");
26072 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2046 a001");
26073 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2047 a010");
26074 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2048 a011");
26075 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2049 a100");
26076 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2050 a101");
26077 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2051 a110");
26078 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2052 a111");
26079 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2053 a200");
26080 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2054 a201");
26081 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2055 a210");
26082 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2056 a211");
26085 static const fp12_t var_a = { { { {0x2B39E5AF, 0x76F3D684, 0xF7E25453, 0x7BF42023, 0x1CC82CB4},
26086 {0xFBF55001, 0x7AF22F37, 0x904F8DBB, 0xC7A08854, 0x0F7F643F} } ,
26087 { {0xCAB35423, 0xC1CF3B39, 0xE237877D, 0x49D4474F, 0x0C1AE474},
26088 {0x8ADC5A45, 0xB52680A4, 0xF86E8EFA, 0x24BE4210, 0x191BD453} } } ,
26089 { { {0x98978580, 0x30D15050, 0x722DE42E, 0x4EA36D2B, 0x2229075C},
26090 {0x6134CDD6, 0xD51B9778, 0x9ED20AE2, 0x19749845, 0x16FA6D7B} } ,
26091 { {0x4A5E690F, 0x827856CA, 0xF3A73626, 0x96AB694B, 0x0BC4F955},
26092 {0x338B4608, 0xF7C68CC1, 0x0E8526E0, 0x80821381, 0x0A2EB2AE} } } ,
26093 { { {0xB48D57EE, 0xF81B9E35, 0x4BEC3E0C, 0xEC040A7B, 0x10143FF6},
26094 {0xDC767BF6, 0x0767B56F, 0x57015E19, 0x604BB678, 0x15705B66} } ,
26095 { {0x7B35E660, 0x3D89710A, 0x51183901, 0x9778465D, 0x0B16FFFE},
26096 {0xD8AF6C83, 0x8E1B6E18, 0x81573BCD, 0xBABDFBCD, 0x0021AC0A} } } } ;
26097 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26098 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26099 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26100 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26101 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26102 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26103 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26104 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26105 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26106 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26107 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26108 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26110 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2057 a000");
26111 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2058 a001");
26112 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2059 a010");
26113 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2060 a011");
26114 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2061 a100");
26115 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2062 a101");
26116 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2063 a110");
26117 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2064 a111");
26118 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2065 a200");
26119 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2066 a201");
26120 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2067 a210");
26121 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2068 a211");
26123 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2069 a000");
26124 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2070 a001");
26125 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2071 a010");
26126 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2072 a011");
26127 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2073 a100");
26128 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2074 a101");
26129 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2075 a110");
26130 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2076 a111");
26131 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2077 a200");
26132 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2078 a201");
26133 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2079 a210");
26134 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2080 a211");
26137 static const fp12_t var_a = { { { {0x8F427BC6, 0x2513827B, 0x8935027B, 0x83F04610, 0x03D326A1},
26138 {0x0C3F98CC, 0xCEB8F7E0, 0x98E4C9A0, 0x8A822C76, 0x0632EE82} } ,
26139 { {0xC1DD63CE, 0x485C002F, 0xDFD15C63, 0xC2822EC9, 0x13F7E1E3},
26140 {0xD91D05A4, 0x0A183F91, 0x223AC0C8, 0x7810BFB2, 0x15A958BD} } } ,
26141 { { {0x7E93B24D, 0xF1949A6A, 0x7948EB02, 0xEE9A3265, 0x0C800000},
26142 {0x77B043E7, 0xA504DC06, 0x2D4ECB4C, 0xE29FD4CE, 0x013DEA6B} } ,
26143 { {0x6A0F566C, 0x52A7874B, 0x37FBD1DE, 0x47C96C5B, 0x0E69304C},
26144 {0x33C8D207, 0xFD77D144, 0x7CD79DE5, 0x972C0D61, 0x1BBF8421} } } ,
26145 { { {0xD0E47007, 0xC2E52AD1, 0x299A1608, 0xC86FD73C, 0x10BE5263},
26146 {0x8C5F9498, 0x07FA90FF, 0x1608F472, 0x7788F73B, 0x1B44F1A0} } ,
26147 { {0x15925D7C, 0x0747EFE1, 0xC9489D29, 0xC34B24D8, 0x1CA72308},
26148 {0x70DE142F, 0x1678E554, 0x26061457, 0x85244896, 0x0C57F2E0} } } } ;
26149 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26150 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26151 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26152 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26153 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26154 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26155 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26156 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26157 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26158 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26159 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26160 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26162 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2081 a000");
26163 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2082 a001");
26164 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2083 a010");
26165 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2084 a011");
26166 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2085 a100");
26167 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2086 a101");
26168 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2087 a110");
26169 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2088 a111");
26170 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2089 a200");
26171 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2090 a201");
26172 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2091 a210");
26173 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2092 a211");
26175 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2093 a000");
26176 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2094 a001");
26177 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2095 a010");
26178 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2096 a011");
26179 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2097 a100");
26180 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2098 a101");
26181 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2099 a110");
26182 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2100 a111");
26183 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2101 a200");
26184 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2102 a201");
26185 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2103 a210");
26186 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2104 a211");
26189 static const fp12_t var_a = { { { {0x5CDF773E, 0xE66FE16A, 0x7D1113E4, 0xD6719F41, 0x069ED040},
26190 {0x00876254, 0x54538A29, 0x3191F121, 0xC2CFC08C, 0x17CFB82D} } ,
26191 { {0xB66B64F4, 0xC7FE2832, 0xF5492514, 0x62AC0923, 0x11BFEE33},
26192 {0x2C9E7228, 0x92D13916, 0x4CB5524C, 0xC3C730DC, 0x0D0E88A2} } } ,
26193 { { {0x20730558, 0xDB83C362, 0x6CBAC72D, 0x4FBC790D, 0x1CFBD3A3},
26194 {0x09158CED, 0x9F007392, 0x1B54BD35, 0xB04C4C07, 0x07526DDF} } ,
26195 { {0x87E0FD56, 0x41338DB9, 0xF6C7BD07, 0x8B672227, 0x0D322850},
26196 {0x304E3A28, 0x1A7DD745, 0xC512CCFC, 0xBCD2DC51, 0x0825C261} } } ,
26197 { { {0x3A466ED8, 0x8915C41C, 0xD493E37A, 0x15C09900, 0x03511BBD},
26198 {0x17764655, 0x100EAC6D, 0x790DA44E, 0x1D785D46, 0x1E3C4847} } ,
26199 { {0x67EEDFC0, 0xCECBAB75, 0x17B92CFF, 0x0C2D2884, 0x1CF9FE16},
26200 {0xC549009B, 0x3007E73B, 0xC8D06DBA, 0x26877B9F, 0x20CB2042} } } } ;
26201 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26202 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26203 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26204 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26205 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26206 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26207 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26208 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26209 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26210 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26211 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26212 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26214 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2105 a000");
26215 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2106 a001");
26216 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2107 a010");
26217 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2108 a011");
26218 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2109 a100");
26219 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2110 a101");
26220 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2111 a110");
26221 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2112 a111");
26222 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2113 a200");
26223 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2114 a201");
26224 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2115 a210");
26225 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2116 a211");
26227 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2117 a000");
26228 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2118 a001");
26229 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2119 a010");
26230 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2120 a011");
26231 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2121 a100");
26232 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2122 a101");
26233 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2123 a110");
26234 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2124 a111");
26235 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2125 a200");
26236 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2126 a201");
26237 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2127 a210");
26238 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2128 a211");
26241 static const fp12_t var_a = { { { {0xABD4DCF6, 0xE69BC063, 0x32D69DDE, 0x2C60B288, 0x14302762},
26242 {0x1D03065C, 0xA3B2BB03, 0x3E058F58, 0xFFFFF128, 0x1995952C} } ,
26243 { {0x9A1C6DC1, 0x3C4913BA, 0xE1E87491, 0x2860B92A, 0x0F5ADFD9},
26244 {0x37619E6A, 0x5695270F, 0x7BAA24AF, 0xE014EAD6, 0x023762CD} } } ,
26245 { { {0xFA1E450F, 0x5A58DE64, 0x09ABCFDB, 0x0C12BD03, 0x1705ED56},
26246 {0x2EF3640D, 0x22CF80A9, 0x85717D1B, 0xAF469C03, 0x18BC01C4} } ,
26247 { {0x5E9F4E93, 0x5B98DF17, 0x5E1A0FAE, 0xBBA6BDAE, 0x0EB826A8},
26248 {0x82DC4586, 0xB52C8370, 0x543C88B7, 0x96EDD06A, 0x1297CB4C} } } ,
26249 { { {0xDCCF297A, 0xD7F7F6EE, 0xF004820B, 0x13E39B67, 0x0197477E},
26250 {0x92FF081B, 0x85B4E754, 0x5374DC8B, 0xE205D8DE, 0x12384626} } ,
26251 { {0xBE3F2C8F, 0x266CB207, 0xE59F7BBC, 0xD2B9BFC3, 0x08815AF3},
26252 {0x44032CB0, 0x994A4F1B, 0x457FD5C0, 0xF773403C, 0x0F467DEF} } } } ;
26253 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26254 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26255 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26256 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26257 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26258 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26259 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26260 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26261 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26262 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26263 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26264 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26266 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2129 a000");
26267 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2130 a001");
26268 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2131 a010");
26269 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2132 a011");
26270 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2133 a100");
26271 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2134 a101");
26272 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2135 a110");
26273 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2136 a111");
26274 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2137 a200");
26275 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2138 a201");
26276 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2139 a210");
26277 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2140 a211");
26279 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2141 a000");
26280 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2142 a001");
26281 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2143 a010");
26282 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2144 a011");
26283 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2145 a100");
26284 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2146 a101");
26285 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2147 a110");
26286 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2148 a111");
26287 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2149 a200");
26288 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2150 a201");
26289 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2151 a210");
26290 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2152 a211");
26293 static const fp12_t var_a = { { { {0x3BB7C13B, 0x4351E1B1, 0x642EDA11, 0x3EBFF859, 0x127E6F5D},
26294 {0xAA208A68, 0x969DE1EA, 0xFC51F27F, 0xC0A5A2A9, 0x07561094} } ,
26295 { {0x28439265, 0xF4B0D499, 0x8CE9AC85, 0xEB75D024, 0x10707AC7},
26296 {0x42FA92FB, 0xDE5EBF8D, 0xB12046B8, 0xAB41DF80, 0x168D6CE4} } } ,
26297 { { {0x16D0ADE6, 0xDB9EB829, 0xD66FE523, 0xABE85B66, 0x1C190017},
26298 {0x349D2B48, 0x1232F9A0, 0x708CF684, 0x0650B7DD, 0x01D54321} } ,
26299 { {0xBA150DD5, 0xC359A76E, 0x273267FC, 0xAE74008B, 0x1DDB2126},
26300 {0x6CCD95E4, 0x5B22150D, 0x01F034C4, 0xA024DF6B, 0x0C39FCF7} } } ,
26301 { { {0xA1787F9A, 0x9F2C6601, 0xBEFC78F3, 0x6F46EFA1, 0x06FFB99F},
26302 {0x653C8B4C, 0xD6A3B487, 0x2897368A, 0xC300BD52, 0x0943E6C2} } ,
26303 { {0xB474AD94, 0xDB50B859, 0x027A43DD, 0x30C12CB4, 0x0880B927},
26304 {0x6765CEF3, 0x04F9C886, 0xB7C8425A, 0x39E2DDEC, 0x07F23BDF} } } } ;
26305 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26306 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26307 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26308 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26309 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26310 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26311 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26312 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26313 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26314 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26315 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26316 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26318 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2153 a000");
26319 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2154 a001");
26320 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2155 a010");
26321 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2156 a011");
26322 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2157 a100");
26323 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2158 a101");
26324 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2159 a110");
26325 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2160 a111");
26326 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2161 a200");
26327 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2162 a201");
26328 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2163 a210");
26329 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2164 a211");
26331 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2165 a000");
26332 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2166 a001");
26333 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2167 a010");
26334 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2168 a011");
26335 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2169 a100");
26336 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2170 a101");
26337 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2171 a110");
26338 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2172 a111");
26339 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2173 a200");
26340 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2174 a201");
26341 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2175 a210");
26342 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2176 a211");
26345 static const fp12_t var_a = { { { {0x7E7B099B, 0x074B5CDD, 0x848D01D9, 0xCFB235E6, 0x054B0B80},
26346 {0x647E6F88, 0x396EE7AE, 0x7853B8A1, 0x6D844AD7, 0x20DF8F48} } ,
26347 { {0xE2642862, 0xD02586CD, 0xD97DAB0A, 0x8E77C89D, 0x10B81D0D},
26348 {0xB6625169, 0xC20EA821, 0x49A7B2CF, 0x6DA41443, 0x173EA2E2} } } ,
26349 { { {0x3D8EBAB8, 0x43C35922, 0xB9007CFD, 0xA71E77A5, 0x03555875},
26350 {0xB0C5DE65, 0x46981A0B, 0x198D99FB, 0x6E34ED8E, 0x2133B1A5} } ,
26351 { {0x253DA558, 0x1AAAFDA3, 0xC0126E31, 0xDE94C72D, 0x0A1FB335},
26352 {0xA3C9762A, 0xBDA44265, 0x12D32CDB, 0x8C245F52, 0x069E7B2F} } } ,
26353 { { {0xD27FC40B, 0x87EAC7C3, 0x4FA5F0DE, 0xF287C4BA, 0x04948D4D},
26354 {0xBE3A155C, 0x96072FD4, 0x33D2A83D, 0x322BF943, 0x1CBC14CF} } ,
26355 { {0x2F0C1F2E, 0xBB90336F, 0x37A6A390, 0xDFCB5C39, 0x06E06D92},
26356 {0xC206E628, 0x14FAA39F, 0x5157560A, 0xEEB1CD27, 0x081B12F7} } } } ;
26357 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26358 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26359 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26360 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26361 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26362 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26363 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26364 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26365 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26366 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26367 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26368 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26370 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2177 a000");
26371 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2178 a001");
26372 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2179 a010");
26373 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2180 a011");
26374 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2181 a100");
26375 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2182 a101");
26376 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2183 a110");
26377 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2184 a111");
26378 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2185 a200");
26379 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2186 a201");
26380 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2187 a210");
26381 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2188 a211");
26383 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2189 a000");
26384 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2190 a001");
26385 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2191 a010");
26386 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2192 a011");
26387 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2193 a100");
26388 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2194 a101");
26389 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2195 a110");
26390 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2196 a111");
26391 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2197 a200");
26392 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2198 a201");
26393 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2199 a210");
26394 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2200 a211");
26397 static const fp12_t var_a = { { { {0xDF83D7F2, 0x870C6BD6, 0x526289A5, 0x027161CD, 0x02418709},
26398 {0xE7094463, 0x14694E81, 0x33DC6230, 0xDB13BFEC, 0x1B6F3EEC} } ,
26399 { {0x1BEE3DCC, 0xF20C1502, 0x81BA1624, 0x7AF42FD9, 0x16928E1E},
26400 {0x538CA945, 0xAFCAE068, 0x9F40A345, 0x429A7DA4, 0x0325479B} } } ,
26401 { { {0x6F2D518C, 0x2AF054F1, 0x2627B69A, 0x84AC9B98, 0x0788324F},
26402 {0xF398E403, 0x4CCB023B, 0x1E861775, 0x50476BDF, 0x1DC9CAEB} } ,
26403 { {0xB89AC0D3, 0x2B5799D0, 0xFEC8B49F, 0x1CE5073C, 0x09FD89AB},
26404 {0xD777717A, 0xD2E7055E, 0x4DB56A6E, 0x43D7034C, 0x06B27961} } } ,
26405 { { {0x2D89F455, 0x77110926, 0x5ABAC81C, 0x55472524, 0x1639EDA9},
26406 {0xA8D7C823, 0xF2E3EEAC, 0xBE817C9F, 0xA88AFEE5, 0x1DA570FF} } ,
26407 { {0x3014E852, 0x7C6A2C46, 0x70DDB993, 0x14BDDBEC, 0x006AB06D},
26408 {0xEA324A46, 0x762A2717, 0x60CD14B7, 0x8D8022FA, 0x10F6D0F4} } } } ;
26409 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26410 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26411 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26412 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26413 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26414 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26415 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26416 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26417 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26418 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26419 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26420 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26422 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2201 a000");
26423 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2202 a001");
26424 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2203 a010");
26425 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2204 a011");
26426 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2205 a100");
26427 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2206 a101");
26428 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2207 a110");
26429 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2208 a111");
26430 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2209 a200");
26431 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2210 a201");
26432 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2211 a210");
26433 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2212 a211");
26435 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2213 a000");
26436 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2214 a001");
26437 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2215 a010");
26438 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2216 a011");
26439 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2217 a100");
26440 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2218 a101");
26441 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2219 a110");
26442 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2220 a111");
26443 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2221 a200");
26444 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2222 a201");
26445 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2223 a210");
26446 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2224 a211");
26449 static const fp12_t var_a = { { { {0xFEBA9F4B, 0x896EA04C, 0x30667511, 0x02EA3DF7, 0x16F4D71E},
26450 {0xEDD574C2, 0x57C346C4, 0xD44A24B5, 0xB6AD79CE, 0x232E3904} } ,
26451 { {0x885EF4D5, 0xC2C48D94, 0x656CCA68, 0xE28C208D, 0x14277EA6},
26452 {0x54661B8B, 0x5BFD83B1, 0x6955E8D2, 0xD0ABF18F, 0x0B24BD8A} } } ,
26453 { { {0xAF362689, 0xA0AD75CC, 0x9D9F0805, 0xCADCD7E7, 0x06609DF0},
26454 {0xCD5F7D4F, 0xFFB57C58, 0x73AE583E, 0x72580135, 0x08CDEF86} } ,
26455 { {0x66F3DFFD, 0x04926A79, 0xA3B68A98, 0x4CDF7960, 0x22A7B658},
26456 {0x82E909A6, 0xBC578730, 0x8FE1D55D, 0xF31E7CB5, 0x0D1D3E37} } } ,
26457 { { {0x1CB6A172, 0xFA3104AB, 0x6B8B4B90, 0x9436823D, 0x0274B058},
26458 {0xA87F1BFA, 0x6E2EC2C5, 0xDF6DD311, 0x12C218AA, 0x127F5367} } ,
26459 { {0x6EE49AD7, 0x0BACD256, 0xE2F28D10, 0xAFAB0C44, 0x13383238},
26460 {0x936BB44D, 0x3C8D3A17, 0xD14C6BF7, 0x5C6BF8F9, 0x1FD5AB32} } } } ;
26461 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26462 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26463 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26464 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26465 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26466 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26467 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26468 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26469 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26470 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26471 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26472 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26474 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2225 a000");
26475 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2226 a001");
26476 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2227 a010");
26477 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2228 a011");
26478 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2229 a100");
26479 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2230 a101");
26480 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2231 a110");
26481 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2232 a111");
26482 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2233 a200");
26483 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2234 a201");
26484 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2235 a210");
26485 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2236 a211");
26487 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2237 a000");
26488 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2238 a001");
26489 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2239 a010");
26490 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2240 a011");
26491 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2241 a100");
26492 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2242 a101");
26493 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2243 a110");
26494 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2244 a111");
26495 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2245 a200");
26496 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2246 a201");
26497 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2247 a210");
26498 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2248 a211");
26501 static const fp12_t var_a = { { { {0x8EFD6144, 0xCE6FDA05, 0xD0DE7CDC, 0x8B994FF8, 0x2135D877},
26502 {0xCC004825, 0x7294E65B, 0x74D45352, 0x79D6C329, 0x075BC0D2} } ,
26503 { {0x727A7338, 0x6756EF1A, 0x2AC8C7C9, 0xC4D8A3EF, 0x221E264C},
26504 {0x272A4A7C, 0x79F56C11, 0x69740F33, 0xF49B05A3, 0x05F2129D} } } ,
26505 { { {0x94150E2D, 0xF9C74FEA, 0xBB069FB4, 0x7E87A8D0, 0x23A14712},
26506 {0x7DCC846A, 0x370B0F82, 0x8EAD8895, 0x69722DA1, 0x04F995FC} } ,
26507 { {0x062210F0, 0x46ACBC65, 0x900B143B, 0xE502A41E, 0x20B73358},
26508 {0xEAC63D52, 0x0C91FDFF, 0x143A6FBA, 0x28FC22B8, 0x222D672C} } } ,
26509 { { {0xCA012A11, 0x4DA195D7, 0xDA66AA49, 0x74A8D593, 0x059DFCA2},
26510 {0xDDCB5D63, 0x8B6BC7C7, 0x43023BB2, 0x0D0075A8, 0x19FB663C} } ,
26511 { {0xE352055D, 0xD4957E81, 0xD7D79E9E, 0xA6194AF9, 0x16F0A204},
26512 {0x74B57CF0, 0x4122BE56, 0x1372B7B1, 0xF5536357, 0x08AD22D3} } } } ;
26513 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26514 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26515 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26516 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26517 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26518 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26519 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26520 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26521 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26522 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26523 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26524 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26526 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2249 a000");
26527 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2250 a001");
26528 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2251 a010");
26529 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2252 a011");
26530 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2253 a100");
26531 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2254 a101");
26532 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2255 a110");
26533 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2256 a111");
26534 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2257 a200");
26535 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2258 a201");
26536 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2259 a210");
26537 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2260 a211");
26539 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2261 a000");
26540 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2262 a001");
26541 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2263 a010");
26542 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2264 a011");
26543 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2265 a100");
26544 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2266 a101");
26545 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2267 a110");
26546 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2268 a111");
26547 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2269 a200");
26548 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2270 a201");
26549 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2271 a210");
26550 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2272 a211");
26553 static const fp12_t var_a = { { { {0xEE919166, 0x4D075EDE, 0xF29A7925, 0xEFC23C63, 0x0AB3F1EA},
26554 {0x809FB28B, 0x812BEF11, 0x96FE1D36, 0x57F68578, 0x0619699E} } ,
26555 { {0x79C0BDBD, 0x52C9D07F, 0x1A4AF59D, 0xE1D8DF5D, 0x213DBE2A},
26556 {0x25CC21AB, 0x53B9D9AF, 0x1DF5BB96, 0x2310A6BD, 0x1959239E} } } ,
26557 { { {0xF16BD260, 0x2F22BCE9, 0x3D579336, 0xEB684FF9, 0x10ED1049},
26558 {0x1549CD35, 0x1B70A6D1, 0xAC570F69, 0xE24ACF2B, 0x11545762} } ,
26559 { {0xB838750C, 0x5F497BA6, 0x88432117, 0xE1E02D20, 0x02C3CD57},
26560 {0x0BF84B3B, 0x69316CCD, 0x05BEE7C4, 0xC38ED460, 0x177133CB} } } ,
26561 { { {0x6987E560, 0x4487836D, 0xAAA182B6, 0xCBD4C6E8, 0x1CDB70A0},
26562 {0x87BB5D9D, 0xCD63BE68, 0xFC1F1F90, 0x77783885, 0x16435950} } ,
26563 { {0x1C76F908, 0x5714D3F1, 0x538E9BD9, 0x0A8584F3, 0x13544872},
26564 {0x58EF737D, 0xC694FB30, 0x7527F6E4, 0x5FA0B1B8, 0x09A10BFA} } } } ;
26565 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26566 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26567 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26568 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26569 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26570 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26571 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26572 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26573 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26574 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26575 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26576 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26578 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2273 a000");
26579 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2274 a001");
26580 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2275 a010");
26581 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2276 a011");
26582 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2277 a100");
26583 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2278 a101");
26584 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2279 a110");
26585 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2280 a111");
26586 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2281 a200");
26587 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2282 a201");
26588 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2283 a210");
26589 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2284 a211");
26591 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2285 a000");
26592 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2286 a001");
26593 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2287 a010");
26594 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2288 a011");
26595 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2289 a100");
26596 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2290 a101");
26597 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2291 a110");
26598 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2292 a111");
26599 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2293 a200");
26600 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2294 a201");
26601 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2295 a210");
26602 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2296 a211");
26605 static const fp12_t var_a = { { { {0xF5F59860, 0xE78DC24A, 0xD905B7D8, 0x0CB00AEA, 0x06BC4E9F},
26606 {0xF9ECA147, 0xAAC539F2, 0x669B3E1F, 0x2EB82218, 0x1152C5B4} } ,
26607 { {0x4D79B6D1, 0x08944281, 0xF49E0820, 0x5C5F1B81, 0x1187E042},
26608 {0xFE334493, 0x6AD0770C, 0x85C805F7, 0xFC80393A, 0x0FB0A93E} } } ,
26609 { { {0x8EEBBBDD, 0x108D4126, 0x5B165B9B, 0xEE5DD920, 0x0C239AE4},
26610 {0x941E2E6F, 0x2E3492C9, 0x42305DAF, 0xE9369E24, 0x0FEBC790} } ,
26611 { {0xF7042CB2, 0xEB50280C, 0x0323FADF, 0x309F641D, 0x2033F550},
26612 {0x94C45AEA, 0x44DF5EC1, 0xA5E96991, 0x57BB865A, 0x00AE2449} } } ,
26613 { { {0xF21EDEEA, 0x1800AE5C, 0xDBF41220, 0xBBC3F3DF, 0x19519B5D},
26614 {0xD5B551AE, 0x8168D37F, 0xE178195C, 0xCA31A53A, 0x108F3307} } ,
26615 { {0xFDA6B27E, 0x21AEC266, 0x9332D719, 0xFA8FB461, 0x0CD343D2},
26616 {0x0E3092A3, 0x912FDF82, 0x2EFAB5F3, 0xCDB633F1, 0x02D62B2A} } } } ;
26617 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26618 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26619 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26620 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26621 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26622 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26623 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26624 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26625 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26626 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26627 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26628 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26630 assert_bi_equal(var_a[0][0][0], var_tmp[0][0][0],
"fp12_clear 2297 a000");
26631 assert_bi_equal(var_a[0][0][1], var_tmp[0][0][1],
"fp12_clear 2298 a001");
26632 assert_bi_equal(var_a[0][1][0], var_tmp[0][1][0],
"fp12_clear 2299 a010");
26633 assert_bi_equal(var_a[0][1][1], var_tmp[0][1][1],
"fp12_clear 2300 a011");
26634 assert_bi_equal(var_a[1][0][0], var_tmp[1][0][0],
"fp12_clear 2301 a100");
26635 assert_bi_equal(var_a[1][0][1], var_tmp[1][0][1],
"fp12_clear 2302 a101");
26636 assert_bi_equal(var_a[1][1][0], var_tmp[1][1][0],
"fp12_clear 2303 a110");
26637 assert_bi_equal(var_a[1][1][1], var_tmp[1][1][1],
"fp12_clear 2304 a111");
26638 assert_bi_equal(var_a[2][0][0], var_tmp[2][0][0],
"fp12_clear 2305 a200");
26639 assert_bi_equal(var_a[2][0][1], var_tmp[2][0][1],
"fp12_clear 2306 a201");
26640 assert_bi_equal(var_a[2][1][0], var_tmp[2][1][0],
"fp12_clear 2307 a210");
26641 assert_bi_equal(var_a[2][1][1], var_tmp[2][1][1],
"fp12_clear 2308 a211");
26643 assert_bi_equal(var_expected[0][0][0], var_tmp[0][0][0],
"fp12_clear 2309 a000");
26644 assert_bi_equal(var_expected[0][0][1], var_tmp[0][0][1],
"fp12_clear 2310 a001");
26645 assert_bi_equal(var_expected[0][1][0], var_tmp[0][1][0],
"fp12_clear 2311 a010");
26646 assert_bi_equal(var_expected[0][1][1], var_tmp[0][1][1],
"fp12_clear 2312 a011");
26647 assert_bi_equal(var_expected[1][0][0], var_tmp[1][0][0],
"fp12_clear 2313 a100");
26648 assert_bi_equal(var_expected[1][0][1], var_tmp[1][0][1],
"fp12_clear 2314 a101");
26649 assert_bi_equal(var_expected[1][1][0], var_tmp[1][1][0],
"fp12_clear 2315 a110");
26650 assert_bi_equal(var_expected[1][1][1], var_tmp[1][1][1],
"fp12_clear 2316 a111");
26651 assert_bi_equal(var_expected[2][0][0], var_tmp[2][0][0],
"fp12_clear 2317 a200");
26652 assert_bi_equal(var_expected[2][0][1], var_tmp[2][0][1],
"fp12_clear 2318 a201");
26653 assert_bi_equal(var_expected[2][1][0], var_tmp[2][1][0],
"fp12_clear 2319 a210");
26654 assert_bi_equal(var_expected[2][1][1], var_tmp[2][1][1],
"fp12_clear 2320 a211");
26657 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26658 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26659 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26660 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26661 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26662 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26663 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26664 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26665 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26666 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26667 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26668 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26669 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26670 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26671 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26672 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26673 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26674 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26675 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26676 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26677 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26678 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26679 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26680 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26681 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26682 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26683 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26684 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26685 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26686 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26687 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26688 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26689 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26690 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26691 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26692 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26694 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2321 a000");
26695 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2322 a001");
26696 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2323 a010");
26697 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2324 a011");
26698 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2325 a100");
26699 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2326 a101");
26700 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2327 a110");
26701 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2328 a111");
26702 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2329 a200");
26703 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2330 a201");
26704 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2331 a210");
26705 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2332 a211");
26708 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26709 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26710 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26711 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26712 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26713 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26714 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26715 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26716 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26717 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26718 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26719 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26720 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26721 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26722 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26723 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26724 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26725 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26726 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26727 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26728 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26729 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26730 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26731 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26732 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26733 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26734 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26735 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26736 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26737 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26738 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26739 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26740 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26741 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26742 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26743 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26745 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2333 a000");
26746 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2334 a001");
26747 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2335 a010");
26748 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2336 a011");
26749 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2337 a100");
26750 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2338 a101");
26751 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2339 a110");
26752 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2340 a111");
26753 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2341 a200");
26754 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2342 a201");
26755 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2343 a210");
26756 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2344 a211");
26759 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26760 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26761 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26762 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26763 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26764 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26765 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26766 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26767 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26768 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26769 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26770 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26771 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26772 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26773 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26774 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26775 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26776 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26777 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26778 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26779 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26780 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26781 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26782 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26783 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26784 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26785 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26786 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26787 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26788 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26789 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26790 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26791 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26792 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26793 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26794 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26796 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2345 a000");
26797 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2346 a001");
26798 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2347 a010");
26799 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2348 a011");
26800 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2349 a100");
26801 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2350 a101");
26802 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2351 a110");
26803 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2352 a111");
26804 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2353 a200");
26805 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2354 a201");
26806 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2355 a210");
26807 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2356 a211");
26810 static const fp12_t var_a = { { { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
26811 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26812 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26813 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26814 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26815 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26816 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26817 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26818 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26819 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26820 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26821 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26822 static const fp12_t var_b = { { { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
26823 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26824 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26825 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26826 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26827 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26828 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26829 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26830 { { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
26831 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26832 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26833 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26834 static const fp12_t var_expected = { { { {0x4C505259, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
26835 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26836 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26837 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26838 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26839 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26840 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26841 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
26842 { { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
26843 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
26844 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
26845 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
26847 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2357 a000");
26848 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2358 a001");
26849 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2359 a010");
26850 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2360 a011");
26851 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2361 a100");
26852 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2362 a101");
26853 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2363 a110");
26854 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2364 a111");
26855 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2365 a200");
26856 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2366 a201");
26857 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2367 a210");
26858 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2368 a211");
26861 static const fp12_t var_a = { { { {0x8A0A265E, 0x6D3E9EA0, 0x719AA3A2, 0x444447DF, 0x01B383C0},
26862 {0x96461DAA, 0x3D3D4D31, 0x9A494078, 0x34CC5BAD, 0x1C18F5C4} } ,
26863 { {0x5338147C, 0x9868E938, 0x686DB7E8, 0x1C0AF987, 0x1DA8C4A6},
26864 {0x60C09EF7, 0x7FF97872, 0xF772D897, 0x44E99DA2, 0x02A649CF} } } ,
26865 { { {0x587B0546, 0x5018CD15, 0x842F1542, 0x1D4B50A1, 0x17A936A5},
26866 {0x0036611B, 0x0B520F28, 0x29452ABB, 0x3C1C3888, 0x034EC212} } ,
26867 { {0xA248C352, 0x5C22E751, 0xCE72432C, 0xAB8BD754, 0x0EA95718},
26868 {0x65C9CDCB, 0x1CEB784C, 0x6376C396, 0xB9202CDA, 0x101AF184} } } ,
26869 { { {0xF106301C, 0x9DA27C32, 0x8EB36630, 0xA5B64621, 0x01E56685},
26870 {0x4327A4B6, 0x335B18F6, 0xE6600F6C, 0xF4AE6BDB, 0x21FC7717} } ,
26871 { {0x0AA24966, 0xB1CFF655, 0x95F88D7A, 0x7017FB52, 0x15E35AD9},
26872 {0xC5C7E0EE, 0x8B2C9D93, 0x55E45F03, 0x7E596854, 0x02EFD87A} } } } ;
26873 static const fp12_t var_b = { { { {0xB50AA378, 0xEF7A3ACD, 0x19DA104E, 0xC2431E98, 0x0BAC0A73},
26874 {0x108F0F24, 0xDF809A07, 0xE4E753DE, 0x451902D7, 0x0173C088} } ,
26875 { {0xDCD90E8D, 0x9F849E69, 0x6110BBD2, 0x57D1D4E9, 0x0E1DE907},
26876 {0x66C0D7BA, 0xE4BB7D6D, 0x02591BC1, 0xBB7DDB8D, 0x10170D6A} } } ,
26877 { { {0x2CE88A5D, 0xE6BBD0AD, 0x3101ACAB, 0xB7BB2466, 0x17B3BF3D},
26878 {0xA6EBC117, 0x924E9BC5, 0x493F7A9E, 0xCA93DD03, 0x0D1F227F} } ,
26879 { {0x4268EDC0, 0x7A0A5244, 0xE34607DC, 0x689B971A, 0x209EFAAB},
26880 {0xA7C3518D, 0x4654587D, 0x3A4C86CB, 0x962747CD, 0x06096012} } } ,
26881 { { {0xB9F899CB, 0xCA40DDE1, 0x0E4AD1ED, 0xC2BB2273, 0x0D80855E},
26882 {0xD9F97B99, 0x59917F02, 0x74C70B18, 0xF123BD8B, 0x1738012C} } ,
26883 { {0x028A8BDD, 0x51968C92, 0x6532DBDE, 0xF869DE93, 0x1815AF22},
26884 {0xCF57AFBD, 0x8815FBA0, 0xA3DC34B2, 0xA5A23383, 0x19F54903} } } } ;
26885 static const fp12_t var_expected = { { { {0x3F14C9D6, 0x5CB8D96E, 0x8B74B3F1, 0x06876677, 0x0D5F8E34},
26886 {0xA6D52CCE, 0x1CBDE738, 0x7F309457, 0x79E55E85, 0x1D8CB64C} } ,
26887 { {0xE3C0D0AE, 0x19C03301, 0x9033B31D, 0xC486728A, 0x07C58DA9},
26888 {0xC78176B1, 0x64B4F5DF, 0xF9CBF459, 0x0067792F, 0x12BD573A} } } ,
26889 { { {0x39133D48, 0x18A74922, 0x7BE60150, 0x25B01921, 0x0B5BD5DF},
26890 {0xA7222232, 0x9DA0AAED, 0x7284A559, 0x06B0158B, 0x106DE492} } ,
26891 { {0x98615EB7, 0xB7FFE4F5, 0x786D8A6A, 0x64D11289, 0x0B4731C0},
26892 {0x0D8D1F58, 0x633FD0CA, 0x9DC34A61, 0x4F4774A7, 0x16245197} } } ,
26893 { { {0xAAFEC9E7, 0x67E35A14, 0x9CFE381E, 0x68716894, 0x0F65EBE4},
26894 {0xD0D0CDF4, 0x6EBF4358, 0x21DC59E6, 0x367BCD81, 0x15335841} } ,
26895 { {0xC0DC82E8, 0xE5392E46, 0xC1E0A8BA, 0xB92B7DFF, 0x09F7E9F8},
26896 {0x951F90AB, 0x13429934, 0xF9C093B6, 0x23FB9BD7, 0x1CE5217E} } } } ;
26898 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2369 a000");
26899 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2370 a001");
26900 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2371 a010");
26901 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2372 a011");
26902 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2373 a100");
26903 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2374 a101");
26904 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2375 a110");
26905 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2376 a111");
26906 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2377 a200");
26907 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2378 a201");
26908 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2379 a210");
26909 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2380 a211");
26912 static const fp12_t var_a = { { { {0xAA7BA3C5, 0x2306C611, 0x3C1862F2, 0x90C8B3C9, 0x0FDDD394},
26913 {0xAD3B9FB0, 0x22C8C7DA, 0xE6BD4259, 0x58C17917, 0x1F9E2FE1} } ,
26914 { {0xCDD3220C, 0xA622DBC7, 0xD130FBA3, 0x0CF6E054, 0x21016BB0},
26915 {0xE4FF10DB, 0xB4826713, 0x1B1CE1F0, 0x81FA7D7D, 0x22F4CC17} } } ,
26916 { { {0x26E9A571, 0x3BF93CBA, 0xD09274DA, 0x0A43568B, 0x0E19C888},
26917 {0x5CB21871, 0x0177C605, 0x094456BE, 0xD8FD9FD4, 0x1199376F} } ,
26918 { {0x4A98C7E5, 0xDEC00534, 0xD66C715F, 0x4D8ACB12, 0x10224835},
26919 {0x0F003EEE, 0x0166DA28, 0xBC824B22, 0x082F6C04, 0x15CDC3D4} } } ,
26920 { { {0xD283C1BC, 0x06D9F470, 0xD22725DA, 0x81BE159F, 0x15A08B15},
26921 {0x91B21430, 0x24810C53, 0x612382E7, 0x25F51B8C, 0x0401E786} } ,
26922 { {0x9ED701F3, 0x31E41C68, 0x029F6C78, 0x65185718, 0x11CA63A4},
26923 {0x2059256A, 0xA01C71B4, 0x2A77885A, 0xCEAAE8B5, 0x1987304A} } } } ;
26924 static const fp12_t var_b = { { { {0x6C52987D, 0xF4654A89, 0x23CFC3E0, 0x0DF7915C, 0x214953D7},
26925 {0xA83671AE, 0xAC79909D, 0xA91B3ABA, 0x26CDE4B9, 0x1FBC1AC7} } ,
26926 { {0xD41A86AC, 0x7C7CD8FA, 0xBA3EFB08, 0x0D028C6C, 0x15513377},
26927 {0xD0F9D609, 0x99790E31, 0x613A3782, 0x324766CA, 0x057F36C0} } } ,
26928 { { {0xE6CC64E2, 0x30C9748C, 0x57E0F7BC, 0xB94C8894, 0x21C8050A},
26929 {0xF70AAEAF, 0x84BA8D9C, 0x3DA375DE, 0x4CB86245, 0x0609CAD8} } ,
26930 { {0x6871D45E, 0x8C6D9344, 0x0E139394, 0xEF96471C, 0x167DD962},
26931 {0x80036712, 0x62C526F1, 0x7FC3B8C5, 0xFE0C9EAD, 0x078464A9} } } ,
26932 { { {0xEBE92EAE, 0xB4933225, 0xAFDBD290, 0xFEC07147, 0x08A8BDE3},
26933 {0xEA55178F, 0xB34BED66, 0xA373C969, 0x44C3A8F5, 0x011EF4EE} } ,
26934 { {0xB5849D50, 0x3EC47FE7, 0x87044897, 0x7BDA49A0, 0x1C3C7EA0},
26935 {0x9A22DD21, 0x11B17067, 0x1EC3BB92, 0x9AE7C8FB, 0x166EB0E5} } } } ;
26936 static const fp12_t var_expected = { { { {0xCA7DE9E7, 0xF93EBBFA, 0x269D6634, 0xEF69E93F, 0x0D260767},
26937 {0x0921BF03, 0xB11503D8, 0x568DBC75, 0xD03901EB, 0x1B592AA4} } ,
26938 { {0x559D565D, 0x04726022, 0x5225360E, 0x6AA310DB, 0x12517F23},
26939 {0x69A89489, 0x2FCE20A5, 0x430C58D5, 0x04EB8861, 0x0472E2D4} } } ,
26940 { { {0xC165B7F8, 0x4E955CA6, 0xEF28ABF8, 0x14398339, 0x0BE0AD8F},
26941 {0x53BCC720, 0x863253A2, 0x46E7CC9C, 0x25B60219, 0x17A30248} } ,
26942 { {0x66BA49E8, 0x4D0043D8, 0xAB354456, 0x8DCAB648, 0x029F0194},
26943 {0x8F03A600, 0x642C0119, 0x3C4603E7, 0x063C0AB2, 0x1D52287E} } } ,
26944 { { {0xBE6CF06A, 0xBB6D2696, 0x8202F86A, 0x807E86E7, 0x1E4948F9},
26945 {0x7C072BBF, 0xD7CCF9BA, 0x04974C50, 0x6AB8C482, 0x0520DC74} } ,
26946 { {0x080B4CE8, 0x527B47B0, 0x5058F471, 0x319C44D2, 0x0A05C241},
26947 {0x6E2BB030, 0x93A08D7B, 0x0FF0834E, 0xBA3C55CA, 0x0BF4C12C} } } } ;
26949 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2381 a000");
26950 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2382 a001");
26951 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2383 a010");
26952 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2384 a011");
26953 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2385 a100");
26954 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2386 a101");
26955 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2387 a110");
26956 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2388 a111");
26957 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2389 a200");
26958 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2390 a201");
26959 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2391 a210");
26960 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2392 a211");
26963 static const fp12_t var_a = { { { {0xDE7AB3CB, 0xCE353F06, 0xFB295FB8, 0x188D68BD, 0x028B30FF},
26964 {0xECC27F2A, 0x220C12FB, 0x9505FEB1, 0xE2C67599, 0x0C185A14} } ,
26965 { {0xFEDE95CA, 0x4340B43A, 0x759D128E, 0x4C39A814, 0x0596C377},
26966 {0xD4D05EB0, 0x77FA78E0, 0x96F4590C, 0x38606F1D, 0x219927C0} } } ,
26967 { { {0x84D6C5B0, 0x18486EEC, 0x8ECD38CE, 0xDE407FBC, 0x17B99BB0},
26968 {0x5651C465, 0x92DA04BA, 0x11325432, 0xADFF0F44, 0x0F5B9AD6} } ,
26969 { {0x6CFF9A8C, 0x94C32AD0, 0xD7F4F4A0, 0x43B41A7E, 0x07F5014E},
26970 {0x76090C81, 0xC7545EEA, 0x9C4F6AC3, 0xFA93956E, 0x1A32DCDC} } } ,
26971 { { {0x7DE96CED, 0x55C6CBE3, 0xA41CC31F, 0x0F84C53B, 0x1EE6B77C},
26972 {0x468DEF05, 0xA7886F40, 0x6FCB6390, 0xE6ECA712, 0x20C71143} } ,
26973 { {0x58BB2950, 0x41A67ED8, 0x76C9ECA5, 0x0DC295CD, 0x00E0162A},
26974 {0xE35F8381, 0xB146BDEB, 0x2A392C09, 0xE350BF04, 0x142381CA} } } } ;
26975 static const fp12_t var_b = { { { {0x6FE2546C, 0x8F05885A, 0x4D503C3A, 0x056120DE, 0x08F12488},
26976 {0xAD01FEFC, 0x697CEA0D, 0x28C4F1CE, 0x193B99B9, 0x1D4C7A3D} } ,
26977 { {0x12D01403, 0xAEC3C186, 0xB77C303C, 0x494CBDBC, 0x0617A8F0},
26978 {0x87865415, 0x06AD3A81, 0xAB633301, 0x96258A1C, 0x01079327} } } ,
26979 { { {0x7EB20CE3, 0xB9753D93, 0x3577E17D, 0xEFD37A3D, 0x0B60DED2},
26980 {0x934F5E61, 0xCE9EE804, 0x9D8CA48A, 0x02D2E4A4, 0x0CDF3511} } ,
26981 { {0xB2C2BEB4, 0x0BA9AD80, 0x4E96AE1F, 0x040268B9, 0x05AF8D70},
26982 {0xEE0C182C, 0x84A073F4, 0x745C8D22, 0x4719DBED, 0x17B81ED7} } } ,
26983 { { {0x8EC0D73C, 0x09F0B27B, 0x07F9249A, 0x384C0413, 0x1E0A9F66},
26984 {0x3DC18007, 0x8648AFCE, 0x558278AC, 0x2E9C2E02, 0x14215025} } ,
26985 { {0x19BD12F9, 0x714BF50E, 0xCD79F00B, 0x88454AB9, 0x09055926},
26986 {0xCD0247AA, 0xA92873D2, 0x2F5DB41E, 0xCA8687C6, 0x1DEFA9C8} } } } ;
26987 static const fp12_t var_expected = { { { {0x4E5D0837, 0x5D3AC761, 0x48799BF3, 0x1DEE899C, 0x0B7C5587},
26988 {0x4D742BCB, 0x6D5BA869, 0x84802FE1, 0x4CABB36C, 0x0563B44E} } ,
26989 { {0x11AEA9CD, 0xF20475C1, 0x2D1942CA, 0x958665D1, 0x0BAE6C67},
26990 {0x5C56B2C5, 0x7EA7B362, 0x42578C0D, 0xCE85F93A, 0x22A0BAE7} } } ,
26991 { { {0x0388D293, 0xD1BDAC80, 0xC4451A4B, 0xCE13F9F9, 0x231A7A83},
26992 {0xE9A122C6, 0x6178ECBE, 0xAEBEF8BD, 0xB0D1F3E8, 0x1C3ACFE7} } ,
26993 { {0x1FC25940, 0xA06CD851, 0x268BA2BF, 0x47B68338, 0x0DA48EBE},
26994 {0x17C4D252, 0x2DC77E3F, 0xD7613748, 0x92571575, 0x0DE9DBB0} } } ,
26995 { { {0xC059F1CE, 0x418A29BE, 0x72CB271B, 0x987A6D68, 0x18F036DE},
26996 {0x37FF1CB1, 0x0FA3CA6E, 0x8C031B9F, 0x6632792E, 0x10E74165} } ,
26997 { {0x72783C49, 0xB2F273E6, 0x4443DCB0, 0x9607E087, 0x09E56F50},
26998 {0x641178D0, 0x3C41DD1E, 0x204C1F8A, 0xFE80EAE4, 0x0E120B8F} } } } ;
27000 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2393 a000");
27001 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2394 a001");
27002 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2395 a010");
27003 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2396 a011");
27004 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2397 a100");
27005 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2398 a101");
27006 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2399 a110");
27007 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2400 a111");
27008 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2401 a200");
27009 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2402 a201");
27010 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2403 a210");
27011 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2404 a211");
27014 static const fp12_t var_a = { { { {0xF5BB04E4, 0xCD2BEEB1, 0x36C17D77, 0xAF0B1E47, 0x12BD8D13},
27015 {0xA5467A36, 0x8654422B, 0xC2F29E63, 0x5AFA5F84, 0x0A7EFF90} } ,
27016 { {0xFBECA88E, 0xEC7EF797, 0xAACEC525, 0x24B097E8, 0x0C8217FD},
27017 {0x37BC8418, 0x65E10D19, 0x776BA9D4, 0x3C3FB121, 0x04733DAA} } } ,
27018 { { {0xDB72372E, 0xD54895DA, 0x9C85888B, 0x2EC5E4B3, 0x0F057AA6},
27019 {0x4E69002B, 0x9E6D744D, 0xAAD9E7C2, 0x7234CA92, 0x0F3D5393} } ,
27020 { {0xF9AD13BA, 0x4BBCEB37, 0xBD465FD2, 0xD7E42FAD, 0x04FD5769},
27021 {0x50067B12, 0x4B64D494, 0x2EBFFACB, 0x048952E1, 0x13AEAB2D} } } ,
27022 { { {0xEC959ACA, 0x0D495BAE, 0x6652BF23, 0xFDF40708, 0x0FD265BB},
27023 {0xE0D5C053, 0x25ACDC9B, 0x26187470, 0x299CEB50, 0x1CB081B1} } ,
27024 { {0xB5D0416E, 0xE838C07C, 0x6BE14E7B, 0x55706895, 0x1142D032},
27025 {0x73FAF4F2, 0xCA63939B, 0x2F5669B6, 0x324DB2C5, 0x144FF12E} } } } ;
27026 static const fp12_t var_b = { { { {0x5009B5E4, 0x0B92975A, 0xBFA2EDD5, 0x394A2C9E, 0x09D98652},
27027 {0xABC34392, 0xF38EA88C, 0xEABDA528, 0x0969C8C8, 0x100F765F} } ,
27028 { {0xC3A0308F, 0x4AD56479, 0xF319BB00, 0x5B5CD05D, 0x02578AA9},
27029 {0xE6046D31, 0x9F861CD5, 0x7AE7BFD7, 0x4EF52ABD, 0x1FDAD1D7} } } ,
27030 { { {0x4FB6D95A, 0xE6B50624, 0x92679492, 0x0BAC5375, 0x0E312973},
27031 {0xE8DC79DD, 0x6643FACA, 0x2225F750, 0xFBDCE210, 0x1C45CBFD} } ,
27032 { {0xE736F968, 0x231DD471, 0xC500DD9A, 0x092CAA47, 0x10F9C448},
27033 {0x41EA0865, 0x4CC87A0F, 0xCA62F06E, 0x559F3578, 0x23FD7C44} } } ,
27034 { { {0x2A01FC9F, 0x3CE559B9, 0x817315E8, 0x05782918, 0x0C4672E0},
27035 {0x3CABEEC1, 0x75A5A6EB, 0x5ADFED33, 0x3A0E224D, 0x0D53FC30} } ,
27036 { {0xCE35E561, 0x823C6CDA, 0x8EDAEF8C, 0x6C0CE33F, 0x06F800E6},
27037 {0xF0912AF5, 0x8033E8FE, 0xE7CC949B, 0x5EBEFBA0, 0x20428E54} } } } ;
27038 static const fp12_t var_expected = { { { {0x45C4BAC8, 0xD8BE860C, 0xF6646B4C, 0xE8554AE5, 0x1C971365},
27039 {0x5109BDC8, 0x79E2EAB8, 0xADB0438C, 0x6464284D, 0x1A8E75EF} } ,
27040 { {0xBF8CD91D, 0x37545C11, 0x9DE88026, 0x800D6846, 0x0ED9A2A6},
27041 {0xD1709EEE, 0xE739D54E, 0xB908A90D, 0xDBDE7FF8, 0x004CEF7D} } } ,
27042 { { {0x2B291088, 0xBBFD9BFF, 0x2EED1D1E, 0x3A723829, 0x1D36A419},
27043 {0xEAF527AD, 0xE6841A77, 0x93B51E74, 0xBEBB50BC, 0x0781FF8D} } ,
27044 { {0xE0E40D22, 0x6EDABFA9, 0x82473D6C, 0xE110D9F5, 0x15F71BB1},
27045 {0x45A0311C, 0x79FFFA03, 0xBFD82A9B, 0xAAD22C73, 0x13AB076D} } } ,
27046 { { {0x16979769, 0x4A2EB568, 0xE7C5D50B, 0x036C3020, 0x1C18D89C},
27047 {0xD1315CB9, 0x7D252EE6, 0x47ADA105, 0xB454B1B7, 0x06035DDD} } ,
27048 { {0x840626CF, 0x6A752D57, 0xFABC3E08, 0xC17D4BD4, 0x183AD118},
27049 {0x183BCD8C, 0x2C6A27FA, 0xDDD83DB4, 0xE1B6527F, 0x10915F7E} } } } ;
27051 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2405 a000");
27052 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2406 a001");
27053 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2407 a010");
27054 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2408 a011");
27055 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2409 a100");
27056 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2410 a101");
27057 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2411 a110");
27058 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2412 a111");
27059 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2413 a200");
27060 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2414 a201");
27061 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2415 a210");
27062 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2416 a211");
27065 static const fp12_t var_a = { { { {0xD08CFFE4, 0xF4B1D207, 0xD663BB19, 0x0BAA20A9, 0x2134CA06},
27066 {0xEA14A795, 0x9AD93E93, 0xF1532FBA, 0x4ECC10BE, 0x15130DFB} } ,
27067 { {0x432E6590, 0x4BBC3C21, 0xAE43205E, 0x6FDC40E7, 0x03490210},
27068 {0xE172A953, 0x05AE701B, 0x58A064B0, 0x2DEE22AD, 0x00DF2562} } } ,
27069 { { {0x0632E116, 0xE8C2AB0B, 0xD05ED94D, 0x2603A67B, 0x17E42EAA},
27070 {0x325EAC5B, 0x8661FABF, 0x8423DE1E, 0xDE11F20F, 0x22C0E989} } ,
27071 { {0xEE430761, 0x2D3D5A5A, 0x625BE04C, 0x9DB3FF67, 0x01A3F207},
27072 {0xA1350C14, 0xB32BC880, 0xD4E36F9A, 0xAB790676, 0x219AB766} } } ,
27073 { { {0x78E9E938, 0xB5BB2206, 0xF882EF7F, 0xCF443CAC, 0x0BF1E3B6},
27074 {0x9F3D7DD9, 0x946BE614, 0x168282BC, 0xA2B366F9, 0x0C5E9832} } ,
27075 { {0x793C47F2, 0xF7460C96, 0xCA289792, 0x8A30BD4A, 0x04478459},
27076 {0x7D963FF3, 0x32DEA235, 0x1CC38B5B, 0xFDD8E012, 0x1B792A05} } } } ;
27077 static const fp12_t var_b = { { { {0x0AE471D4, 0x21FB8E1E, 0x31C7F23C, 0x410074EF, 0x1B0677CB},
27078 {0x3F901A25, 0xF7FCEAEE, 0xFE378824, 0x8FAE30A8, 0x1DCFAAAD} } ,
27079 { {0x43178606, 0x2E1DA254, 0x72A9B073, 0x0630E7D0, 0x0A67DA3F},
27080 {0x6A4444D9, 0x35BDFBF0, 0xAAFCF6C2, 0x7D1A1AFD, 0x15A06A9B} } } ,
27081 { { {0xCAF3D13A, 0x8C9AA112, 0x95B69255, 0x9F2AAC53, 0x0A33481F},
27082 {0x5B644695, 0x336B0AAF, 0x43CE47EC, 0xD9BDB9B7, 0x009265A3} } ,
27083 { {0x6B31E0A6, 0x7DF490A0, 0x2620DAB1, 0xD1D43E5C, 0x0CF9D5A2},
27084 {0x0429CE85, 0x07D6CF25, 0x5181EE4A, 0x7A3CDBD2, 0x01086B85} } } ,
27085 { { {0xC49BEE57, 0xE9FADC73, 0x07A754E2, 0xE0214E96, 0x0BE4113A},
27086 {0x9A1C44C3, 0x57FEAEEB, 0x51793B15, 0x64D5E529, 0x1604DA5F} } ,
27087 { {0x08F97679, 0xA28ED59F, 0xB2DB18F4, 0x775C8724, 0x0519154B},
27088 {0x887273FC, 0xF0E41D2A, 0x5E34541C, 0xE384FBAE, 0x1C54B27B} } } } ;
27089 static const fp12_t var_expected = { { { {0x8F211F5D, 0xF8800B85, 0xCEE0ECB7, 0x9D5439B2, 0x183A21CD},
27090 {0xDD546F5F, 0x74A8D4E1, 0xB63FF741, 0x2F23E581, 0x0EE198A5} } ,
27091 { {0x8645EB96, 0x79D9DE75, 0x20ECD0D1, 0x760D28B8, 0x0DB0DC4F},
27092 {0x4BB6EE2C, 0x3B6C6C0C, 0x039D5B72, 0xAB083DAB, 0x167F8FFD} } } ,
27093 { { {0xD126B250, 0x755D4C1D, 0x66156BA3, 0xC52E52CF, 0x221776C9},
27094 {0x8DC2F2F0, 0xB9CD056E, 0xC7F2260A, 0xB7CFABC6, 0x23534F2D} } ,
27095 { {0x5974E807, 0xAB31EAFB, 0x887CBAFD, 0x6F883DC3, 0x0E9DC7AA},
27096 {0xA55EDA99, 0xBB0297A5, 0x26655DE4, 0x25B5E249, 0x22A322EC} } } ,
27097 { { {0x3D85D78F, 0x9FB5FE7A, 0x002A4462, 0xAF658B43, 0x17D5F4F1},
27098 {0x3959C29C, 0xEC6A9500, 0x67FBBDD1, 0x07894C22, 0x22637292} } ,
27099 { {0x8235BE6B, 0x99D4E235, 0x7D03B087, 0x018D446F, 0x096099A5},
27100 {0xB9B86194, 0x05956ABF, 0x41AD1EDA, 0x32077FDA, 0x13CCBC7E} } } } ;
27102 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2417 a000");
27103 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2418 a001");
27104 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2419 a010");
27105 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2420 a011");
27106 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2421 a100");
27107 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2422 a101");
27108 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2423 a110");
27109 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2424 a111");
27110 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2425 a200");
27111 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2426 a201");
27112 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2427 a210");
27113 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2428 a211");
27116 static const fp12_t var_a = { { { {0x7BC009EB, 0x1650CAA5, 0xD398870A, 0xCC8E0441, 0x168B2D11},
27117 {0x04B061D9, 0x32D2A3A4, 0xB65F2B55, 0x3200EBB8, 0x1FA68594} } ,
27118 { {0x7D72BD0A, 0x60088CA1, 0x1C385CCA, 0x4CBFD71C, 0x194C141C},
27119 {0xAF5D819E, 0xCCCF28A8, 0x301FEB0B, 0x91EB97FD, 0x04A55838} } } ,
27120 { { {0xC7B96542, 0x4169245E, 0x2BF1F49D, 0x2DF4092F, 0x1A94049F},
27121 {0x903E0906, 0xE5A6B37F, 0x838A8906, 0x8E379A6C, 0x1B63C30C} } ,
27122 { {0x6C2C3DD1, 0xB53D415F, 0xC65AB649, 0x27ED8237, 0x110FB8E6},
27123 {0x19CDB4A7, 0x127033B9, 0x1F1558C3, 0x42B916BE, 0x1CB928CB} } } ,
27124 { { {0x3ECDB2C4, 0x9CFDFA55, 0xD7D41205, 0x0BBA32FF, 0x20A726CF},
27125 {0xD3392950, 0x11F78C4C, 0x69914B83, 0xC20CD4A5, 0x022DF147} } ,
27126 { {0x05F2AEBB, 0x17D18BE7, 0x84956E4B, 0x1E4DA02C, 0x18E82E42},
27127 {0xDA413B1A, 0xDE2C123E, 0xF05D0622, 0xF4850F28, 0x1788A7F9} } } } ;
27128 static const fp12_t var_b = { { { {0x2D027F44, 0xB97344C5, 0xAAE53B20, 0x3467E1E4, 0x0F5B3AD6},
27129 {0x2489E471, 0x0F22DC25, 0x6D682571, 0x7B774F30, 0x1A59C876} } ,
27130 { {0x8B07F55F, 0x28404A4D, 0x1943B99D, 0x6B6B3BE5, 0x21935A0B},
27131 {0xCD5AB5D2, 0x69CBEF06, 0x043CF5DF, 0xDF37214B, 0x01BBC267} } } ,
27132 { { {0x02711F81, 0x462E0833, 0xD5086A39, 0x695879E3, 0x053D8D6C},
27133 {0x5832FA49, 0x853A3323, 0xEF8EA145, 0xC1630FD4, 0x194B86D1} } ,
27134 { {0x96B58BC4, 0xD135CEB9, 0xD0A45289, 0x96EE2BA1, 0x0809C15C},
27135 {0xE8A3F8B4, 0x38B6BF51, 0x1242D339, 0x2C22EF33, 0x039B03C8} } } ,
27136 { { {0x8B10AD72, 0xA63CF4CF, 0x63D17940, 0xDEC19E5C, 0x0CDF6C7F},
27137 {0xA993041B, 0x4051B7D8, 0x14B40FC8, 0x93F71663, 0x1FC2051C} } ,
27138 { {0x4AFBBE68, 0xF77FCF3B, 0x69DD7C6B, 0x91500F07, 0x07A12C01},
27139 {0x7C38C1C7, 0x5719C471, 0xD599020B, 0xDE000D21, 0x099A98D1} } } } ;
27140 static const fp12_t var_expected = { { { {0x5C7236D4, 0xB196BACA, 0x4533018C, 0x519F8A40, 0x01E547E4},
27141 {0xDCE9F3EF, 0x23C82B28, 0xEA7C9028, 0xFE21DF02, 0x15FF2E06} } ,
27142 { {0xBC2A600E, 0x6A1B824E, 0xFC3155C9, 0x08D4B71A, 0x16DE4E24},
27143 {0x7CB83770, 0x369B17AF, 0x345CE0EB, 0x7122B948, 0x06611AA0} } } ,
27144 { { {0xCA2A84C3, 0x87972C91, 0x00FA5ED6, 0x974C8313, 0x1FD1920B},
27145 {0x9C20B0F4, 0x4CB39202, 0x39CE69AE, 0xA0444E5B, 0x10AE29DA} } ,
27146 { {0x02E1C995, 0x86731019, 0x96FF08D3, 0xBEDBADD9, 0x19197A42},
27147 {0x0271AD5B, 0x4B26F30B, 0x31582BFC, 0x6EDC05F1, 0x20542C93} } } ,
27148 { { {0x7D8E0DDB, 0x250D9A84, 0x025ACAA8, 0x3B257576, 0x0985734B},
27149 {0x7CCC2D6B, 0x52494425, 0x7E455B4B, 0x5603EB08, 0x21EFF664} } ,
27150 { {0x50EE6D23, 0x0F515B22, 0xEE72EAB7, 0xAF9DAF33, 0x20895A43},
27151 {0x5679FCE1, 0x3545D6B0, 0xC5F6082E, 0xD2851C4A, 0x212340CB} } } } ;
27153 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2429 a000");
27154 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2430 a001");
27155 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2431 a010");
27156 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2432 a011");
27157 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2433 a100");
27158 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2434 a101");
27159 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2435 a110");
27160 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2436 a111");
27161 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2437 a200");
27162 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2438 a201");
27163 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2439 a210");
27164 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2440 a211");
27167 static const fp12_t var_a = { { { {0x5C0D71B7, 0xC4BDD091, 0xFAEC9614, 0xFB5639F8, 0x10890A5B},
27168 {0xA9F44936, 0xD6B4BDA9, 0xC7234396, 0x5467877E, 0x00BD308A} } ,
27169 { {0xD46B5E49, 0x2CC780C3, 0x0312CC93, 0x38933728, 0x02817C99},
27170 {0xFF548EA8, 0xF97E8CF6, 0x4D744359, 0x0AB88E97, 0x0D6E6441} } } ,
27171 { { {0x3B0FAB34, 0xE0837558, 0x958F9867, 0x27EAE3D0, 0x205FF714},
27172 {0x2272B93D, 0x17334CBF, 0x4C2CD47C, 0x80331B26, 0x117E5E5E} } ,
27173 { {0x6DE4D42B, 0x6E1FC80A, 0x35CEBAA0, 0x6B3B0707, 0x04CBB4A0},
27174 {0x56B89B3B, 0x32AD9F23, 0x50633F74, 0x0AEAEDB1, 0x1D389D96} } } ,
27175 { { {0xD675C35F, 0xBC915AFA, 0x5428DE2B, 0x029780F1, 0x2389E6FD},
27176 {0xEB9C255E, 0x6A9CBC27, 0xCCA98FAA, 0x10CB6789, 0x0735BFBF} } ,
27177 { {0xFDF8EA46, 0xC330CCA8, 0xFE0B6854, 0xE6D7193E, 0x1FD700DB},
27178 {0x3E693BDC, 0x352864A7, 0x1CD35068, 0xED502349, 0x219034B8} } } } ;
27179 static const fp12_t var_b = { { { {0x583B6A30, 0xA9CAE9C5, 0x430CE9D4, 0x29404A99, 0x11507E67},
27180 {0x488C0C0E, 0x1D2E52D1, 0xDFE8324B, 0x5F5BC9B9, 0x19200C6D} } ,
27181 { {0x06E17785, 0x46C42062, 0xEBA43F80, 0x7E1CED42, 0x1DE1EEB8},
27182 {0x5BC94627, 0x272954A6, 0x269CA6A6, 0x0DA28916, 0x2261F6C0} } } ,
27183 { { {0xD457154A, 0xD531C890, 0xCD298538, 0x8617CCB1, 0x1F86CEA2},
27184 {0xF7A888BF, 0x5366BE91, 0x65308EC1, 0xDFDA5EDF, 0x08E166F7} } ,
27185 { {0xFCBB3AE7, 0x88BD21C2, 0x2DE51D0B, 0x5E84745D, 0x0D3998BE},
27186 {0x6DC9B239, 0x7DECA934, 0xDC6F452C, 0x86CB14BE, 0x1606DC48} } } ,
27187 { { {0x748A980D, 0x792B1934, 0x579BC104, 0x84575E55, 0x077EF586},
27188 {0x23ABC0F8, 0x1DC97351, 0x9FC7F70A, 0x146DED15, 0x1B0C181F} } ,
27189 { {0x5A8EB618, 0x52E69D8E, 0x7EF91CAE, 0xCBB58EC5, 0x1EE3E577},
27190 {0xDFDF81EF, 0x8173148F, 0x3A08D27A, 0x171C7157, 0x11B787A7} } } } ;
27191 static const fp12_t var_expected = { { { {0xB448DBE7, 0x6E88BA56, 0x3DF97FE9, 0x24968492, 0x21D988C3},
27192 {0xF2805544, 0xF3E3107A, 0xA70B75E1, 0xB3C35138, 0x19DD3CF7} } ,
27193 { {0xDB4CD5CE, 0x738BA125, 0xEEB70C13, 0xB6B0246A, 0x20636B51},
27194 {0x0ECD8274, 0x027A8CFD, 0x3AC62962, 0x6904BBC7, 0x0BCF3AFD} } } ,
27195 { { {0xC3166E23, 0x9787E948, 0x296E5D02, 0xFEAC549C, 0x1BE5A5B2},
27196 {0x1A1B41FC, 0x6A9A0B51, 0xB15D633D, 0x600D7A05, 0x1A5FC556} } ,
27197 { {0x6AA00F12, 0xF6DCE9CD, 0x63B3D7AB, 0xC9BF7B64, 0x12054D5E},
27198 {0x7831FB19, 0x926CF3B7, 0xF387C402, 0xE25FA689, 0x0F3E59DA} } } ,
27199 { { {0xFEB00911, 0x178F1F8E, 0x7279DE92, 0xD7988360, 0x0707BC7F},
27200 {0x0F47E656, 0x88662F79, 0x6C7186B4, 0x2539549F, 0x2241D7DE} } ,
27201 { {0x0C374E03, 0xF7EA1597, 0x43B9C464, 0x03364C1E, 0x1AB9C650},
27202 {0xD1F86B70, 0x986E2496, 0x1D916244, 0x551638BA, 0x0F469C5C} } } } ;
27204 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2441 a000");
27205 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2442 a001");
27206 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2443 a010");
27207 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2444 a011");
27208 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2445 a100");
27209 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2446 a101");
27210 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2447 a110");
27211 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2448 a111");
27212 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2449 a200");
27213 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2450 a201");
27214 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2451 a210");
27215 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2452 a211");
27218 static const fp12_t var_a = { { { {0xA122785F, 0xA2725176, 0x62FE0CEC, 0x112A5E00, 0x135388C2},
27219 {0x1F730CBB, 0xB489BC10, 0xEEF66BF8, 0x3A8E08A2, 0x0FADFE2D} } ,
27220 { {0xA44A71AF, 0xB289781C, 0x54F5EB90, 0x45282175, 0x06DF741C},
27221 {0x41D12E56, 0x607D678B, 0xDEFA90D5, 0x6F85A3DD, 0x03369486} } } ,
27222 { { {0xEC77C6EB, 0xD68D0B81, 0x0A01630D, 0x45601014, 0x0FBFEEBC},
27223 {0x4E0CB3E9, 0x56D0F8F5, 0x3C74B11F, 0xDE02F63D, 0x0FE1FEC2} } ,
27224 { {0x8BFCE8CF, 0x9AC9BFDA, 0xFC05D731, 0xF88EF240, 0x11088305},
27225 {0x4F34B100, 0x7F6A1F64, 0x97A17D42, 0xE1A035FD, 0x03834283} } } ,
27226 { { {0x752948F4, 0x90E78438, 0x81485A8B, 0xC54AF14C, 0x0D0E5F0C},
27227 {0xF0FAA75C, 0xC77A6A37, 0x2F5FCD89, 0x84DDFB73, 0x05431EE3} } ,
27228 { {0xF2DEB0D0, 0x37E2AAEC, 0x9FB9498F, 0xB0C967A9, 0x2302680C},
27229 {0x5E1CE671, 0x004D587F, 0x8D9BE109, 0x4844D613, 0x0F09D1C7} } } } ;
27230 static const fp12_t var_b = { { { {0xF1BF4EB1, 0x9ED08F5B, 0x8100157B, 0x51631A11, 0x2166FB95},
27231 {0x544D9B5F, 0x2BAEAD4E, 0x645BA26A, 0x6B13B267, 0x2217406D} } ,
27232 { {0x29D2C8BE, 0x2622A81F, 0x1CF6B164, 0x54930D92, 0x238DAB53},
27233 {0xCAD97617, 0x18A170BB, 0x04768719, 0xCD455814, 0x1220AC0D} } } ,
27234 { { {0xBE981566, 0xEE578CDB, 0xA39174BA, 0x199D3ACB, 0x05779052},
27235 {0x5E5ECCA7, 0xFE30301D, 0x538BA91F, 0xE14B8C14, 0x06E746DC} } ,
27236 { {0xA15A7A37, 0xB16D515C, 0x7124A876, 0x061F9057, 0x125BADDA},
27237 {0x50A1ACF5, 0xAB365A3C, 0x8A9E8644, 0x6F0398A4, 0x0A85B15A} } } ,
27238 { { {0x99CFAF2D, 0x8EAEC445, 0xBE4D2202, 0xCA861155, 0x16018A18},
27239 {0x8A0A7ACB, 0xEA8D872B, 0x89BE0A39, 0x8752F3F3, 0x221ABCA5} } ,
27240 { {0x53653D99, 0x47DA33D5, 0xC2D0E92F, 0xFB6BB7BB, 0x040B2844},
27241 {0xD329AFB5, 0x7E47478A, 0xE56D81A8, 0x5398CA62, 0x02A30D6C} } } } ;
27242 static const fp12_t var_expected = { { { {0x469174B5, 0x23158C32, 0xAAB361CA, 0xB3371C2B, 0x10B96453},
27243 {0x277055BF, 0xC20B14BE, 0x1A074DC4, 0xF64B5F24, 0x0DC41E96} } ,
27244 { {0x81CCE812, 0xBA7ECB9B, 0x38A1DC56, 0xEA64D321, 0x066BFF6B},
27245 {0x0CAAA46D, 0x791ED847, 0xE37117EE, 0x3CCAFBF1, 0x15574094} } } ,
27246 { { {0xAB0FDC51, 0xC4E4985D, 0xAD92D7C8, 0x5EFD4ADF, 0x15377F0E},
27247 {0xAC6B8090, 0x55012912, 0x90005A3F, 0xBF4E8251, 0x16C9459F} } ,
27248 { {0x2D576306, 0x4C371137, 0x6D2A7FA8, 0xFEAE8298, 0x236430DF},
27249 {0x9FD65DF5, 0x2AA079A0, 0x22400387, 0x50A3CEA2, 0x0E08F3DE} } } ,
27250 { { {0x0EF8F821, 0x1F96487E, 0x3F957C8E, 0x8FD102A2, 0x230FE925},
27251 {0x2EB4CFCC, 0x93DA9CC3, 0x7FD31725, 0x5CDA9380, 0x035CBB85} } ,
27252 { {0xF9F39C0E, 0x618F8A21, 0x293F7220, 0xFCDEC37F, 0x030C704D},
27253 {0x31469626, 0x7E94A00A, 0x730962B1, 0x9BDDA076, 0x11ACDF33} } } } ;
27255 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2453 a000");
27256 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2454 a001");
27257 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2455 a010");
27258 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2456 a011");
27259 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2457 a100");
27260 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2458 a101");
27261 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2459 a110");
27262 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2460 a111");
27263 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2461 a200");
27264 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2462 a201");
27265 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2463 a210");
27266 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2464 a211");
27269 static const fp12_t var_a = { { { {0x3E081380, 0xCED34A75, 0x7F52B646, 0x951C997B, 0x10E0195A},
27270 {0x20681303, 0x825B600A, 0xDF604699, 0x6F174A6D, 0x214214AA} } ,
27271 { {0x4229121A, 0xB4066D38, 0xD582B5AE, 0x2104F901, 0x0C62A442},
27272 {0x1964F618, 0xAF358723, 0x6E8404DD, 0xDBF61771, 0x1F876A22} } } ,
27273 { { {0x227CF127, 0x7EED787C, 0x73A39EB3, 0xA4274F57, 0x06D3CACC},
27274 {0x4760309A, 0xD866906D, 0xAF358A5D, 0x3615057F, 0x129022A5} } ,
27275 { {0xD996E812, 0x9FBF4497, 0xE983E62D, 0x406C9685, 0x0E5F2E8D},
27276 {0x20140384, 0x61C45933, 0x7DE3CCD6, 0x7C4D3E71, 0x19F91DEB} } } ,
27277 { { {0x2CB53FD6, 0xA01D390D, 0x8930BF6D, 0x7B179B81, 0x22AF271E},
27278 {0xB5784FEF, 0x154AE6DB, 0x03E75EFF, 0x5B5447C3, 0x2194EBF0} } ,
27279 { {0x6BC6F4E7, 0x915BF75F, 0x48B4260E, 0xD93BE596, 0x04D4F137},
27280 {0xCD2C135E, 0x278E2A23, 0x29E61B46, 0xDDDB9B86, 0x1801DDDB} } } } ;
27281 static const fp12_t var_b = { { { {0x3D729648, 0xBE2523AB, 0x19D1FC29, 0x1C974B19, 0x04E5C44E},
27282 {0x7CAD5F11, 0xAC4AC614, 0xB51BFEC6, 0xDE13B8E7, 0x030C7383} } ,
27283 { {0xA6E99352, 0x51417853, 0x59514F8E, 0xF9CC2FCD, 0x050329E9},
27284 {0xB057DAB3, 0x80453507, 0xDADBE790, 0x43647C64, 0x17D4582B} } } ,
27285 { { {0xF7C6C945, 0x6AD802D5, 0x9A29EC40, 0xFB16D1C5, 0x1C27B24C},
27286 {0xB8E1255C, 0xABDCE91C, 0xC37A1FF9, 0xD33FA4A7, 0x16774B4C} } ,
27287 { {0x954BF4C6, 0x6B74458B, 0xB0F2DA85, 0xA2CB6A0C, 0x0F07A3C3},
27288 {0x3A2240FC, 0xF6CC404F, 0x988807F5, 0xB1436734, 0x0D24EA7E} } } ,
27289 { { {0x1750873D, 0xA80FB9F9, 0xD6E03541, 0x205F44E7, 0x1974451C},
27290 {0xE4DD0B07, 0xCB54766B, 0x65AA5E28, 0x36D60C5F, 0x14F6B101} } ,
27291 { {0xBF91AA58, 0x8E16F828, 0x87CCFED5, 0xD887513C, 0x122D74F1},
27292 {0xC9AD2D17, 0x460AEC88, 0xF2F94383, 0xB5EB19E4, 0x0AC2D477} } } } ;
27293 static const fp12_t var_expected = { { { {0x7B7AA9C8, 0x8CF86E20, 0x9924B270, 0xB1B3E494, 0x15C5DDA8},
27294 {0x50C51FB9, 0x1078D17E, 0x5B3184C2, 0x9DD4A76F, 0x004D682A} } ,
27295 { {0xE912A56C, 0x0547E58B, 0x2ED4053D, 0x1AD128CF, 0x1165CE2C},
27296 {0x7D6C7E70, 0x114D678A, 0x10152BD0, 0x700437F0, 0x135AA24A} } } ,
27297 { { {0x1A43BA6C, 0xE9C57B52, 0x0DCD8AF3, 0x9F3E211D, 0x22FB7D19},
27298 {0xB3F1039B, 0x661624E9, 0x3964E9B9, 0x59FE4E41, 0x05064DEE} } ,
27299 { {0x6EE2DCD8, 0x0B338A23, 0x9A76C0B3, 0xE3380092, 0x1D66D250},
27300 {0x0DE5F225, 0x3A6344E2, 0xDD21142E, 0x7E3A49BF, 0x031CE866} } } ,
27301 { { {0xF7B574B8, 0x29FF9E65, 0x26C63411, 0xEC208483, 0x18224C36},
27302 {0x4E05089B, 0xC27208A7, 0x3046FC89, 0xE2D3F83C, 0x128A7CED} } ,
27303 { {0x2B589F3F, 0x1F72EF88, 0xD08124E4, 0xB1C336D2, 0x17026629},
27304 {0x96D94075, 0x6D9916AC, 0x1CDF5EC9, 0x93C6B56B, 0x22C4B253} } } } ;
27306 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2465 a000");
27307 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2466 a001");
27308 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2467 a010");
27309 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2468 a011");
27310 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2469 a100");
27311 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2470 a101");
27312 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2471 a110");
27313 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2472 a111");
27314 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2473 a200");
27315 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2474 a201");
27316 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2475 a210");
27317 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2476 a211");
27320 static const fp12_t var_a = { { { {0xC42C91FB, 0x34CD5461, 0x36E011D7, 0x3B422DEC, 0x1B63528F},
27321 {0xF7C524A0, 0x6CA9772A, 0x262B27E6, 0xD792C54E, 0x207269DF} } ,
27322 { {0x6A544058, 0x6CA2A685, 0x0F5AA432, 0xD5B81E46, 0x228F4D19},
27323 {0x975B0184, 0x44230A75, 0x70760BE5, 0xF4F6AC62, 0x0D9B56F3} } } ,
27324 { { {0x6ECC93F8, 0x577C2FCE, 0x7227F5DE, 0x23E337DB, 0x1112746F},
27325 {0xF2F3AF58, 0xB17D3690, 0xBD5B6957, 0x4A883D79, 0x07DE5312} } ,
27326 { {0x024B5B4E, 0xF3C3DFC5, 0x48A7BE52, 0x035E4D82, 0x0456F2C3},
27327 {0x0E3EAA3B, 0xCCC9FDF1, 0xD8910CFA, 0xC32B5CFC, 0x10924905} } } ,
27328 { { {0x9BFC54F5, 0x7F22A5AC, 0x1385E261, 0x9B234393, 0x03127846},
27329 {0x10575AFF, 0x62431D1B, 0x8BD1A905, 0xE44A0214, 0x1767236B} } ,
27330 { {0x2780375B, 0xCF167311, 0x13168AAE, 0x657C9ADD, 0x03D90488},
27331 {0xD5129E91, 0xD10B7C79, 0x12B575D0, 0x5B2E554A, 0x0B0C94FA} } } } ;
27332 static const fp12_t var_b = { { { {0xC0EADEC4, 0x9BC82697, 0x50617F36, 0x8279CD38, 0x0A7A9553},
27333 {0x9D791FB9, 0x3A3FF1FE, 0x27504505, 0xF0D50E5A, 0x1DF0805F} } ,
27334 { {0x575A3C6E, 0x59CB37D3, 0x8E1595C5, 0xB1883D0C, 0x125FDC9E},
27335 {0xF6871068, 0xEB340F16, 0xF0D1B5E0, 0x4D13222D, 0x0CEF3927} } } ,
27336 { { {0xE9FCD592, 0x816FFC66, 0x4A67A751, 0x4787734F, 0x05778B49},
27337 {0x36593B05, 0xB9DE0AD9, 0x24A76FA7, 0xC28AF9AC, 0x04D742C1} } ,
27338 { {0x8EB71B43, 0xC17E1D97, 0x7AE2A2F6, 0x00E660B1, 0x14CB5FCA},
27339 {0x59A55BF0, 0x47FE91E5, 0x3F14FC69, 0x43B698AA, 0x22F5B5A8} } } ,
27340 { { {0x55A333A2, 0x4DE3A23F, 0x1D0A8EAA, 0x043BAD93, 0x0AA366E6},
27341 {0x56FA3C58, 0x0F949D5F, 0x9B505A7A, 0x6E981C0B, 0x170033BD} } ,
27342 { {0x00F7C010, 0x3B76003C, 0x47603D35, 0x4B9B544D, 0x002F4B36},
27343 {0x11900CE5, 0x6941D612, 0xCA49BDB1, 0xC2201282, 0x05B3D114} } } } ;
27344 static const fp12_t var_expected = { { { {0x38C71E64, 0xB2682659, 0x4DF6D06F, 0x0E659F3E, 0x01DCC7DF},
27345 {0x48EDF1FE, 0x88BC1489, 0x1430AC4D, 0x191177C2, 0x1A61CA3C} } ,
27346 { {0x755E2A6B, 0xA84089B8, 0x64257959, 0xD7E9FF6C, 0x10EE09B4},
27347 {0x8DE211EC, 0x2F57198C, 0x6147C1C6, 0x4209CE90, 0x1A8A901B} } } ,
27348 { { {0x58C9698A, 0xD8EC2C35, 0xBC8F9D2F, 0x6B6AAB2A, 0x1689FFB8},
27349 {0x294CEA5D, 0x6B5B416A, 0xE202D8FF, 0x0D133725, 0x0CB595D4} } ,
27350 { {0x91027691, 0xB541FD5C, 0xC38A6149, 0x0444AE33, 0x1922528D},
27351 {0x1B93B3D0, 0xF69B3B36, 0xDE5B48C5, 0x578B99C0, 0x0F86DEAA} } } ,
27352 { { {0xF19F8897, 0xCD0647EB, 0x3090710B, 0x9F5EF126, 0x0DB5DF2C},
27353 {0x1B0144FC, 0x53AA65DA, 0xEDD742E1, 0xA38BC239, 0x0A663725} } ,
27354 { {0x2877F76B, 0x0A8C734D, 0x5A76C7E4, 0xB117EF2A, 0x04084FBE},
27355 {0xE6A2AB76, 0x3A4D528B, 0xDCFF3382, 0x1D4E67CC, 0x10C0660F} } } } ;
27357 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2477 a000");
27358 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2478 a001");
27359 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2479 a010");
27360 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2480 a011");
27361 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2481 a100");
27362 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2482 a101");
27363 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2483 a110");
27364 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2484 a111");
27365 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2485 a200");
27366 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2486 a201");
27367 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2487 a210");
27368 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2488 a211");
27371 static const fp12_t var_a = { { { {0x8314BE06, 0xDFF86997, 0x886E4212, 0x6C7BC650, 0x029F24C7},
27372 {0x3F3774D9, 0x0F90F840, 0x9472A6EE, 0xF87829C0, 0x17DE6952} } ,
27373 { {0xF079B2C0, 0x55086AFD, 0x790908F4, 0x1BD54F41, 0x1E7AE81A},
27374 {0x3E009278, 0x494EB59C, 0xE02F3DCA, 0xD4C8E5B0, 0x20FAF1D1} } } ,
27375 { { {0x1CBFB515, 0xFB7E5FB0, 0x57586DE2, 0xB7FD695E, 0x09A4BA0C},
27376 {0xF840E802, 0xC4EE1E6F, 0x6ED1B96A, 0xBD300A81, 0x03AA6F6F} } ,
27377 { {0xDF1034F4, 0xE625AA29, 0x72409272, 0x5C6DD737, 0x1223114D},
27378 {0x306519C9, 0x5E59C18E, 0x96AB6BAA, 0x47B79DC2, 0x17EBEA77} } } ,
27379 { { {0x0EDBC234, 0x580D5D04, 0xF814EBCE, 0xEE481A33, 0x0D26827D},
27380 {0xAAB6D99A, 0x1FD31359, 0x17DEB5DD, 0xFD4E7528, 0x133A44B8} } ,
27381 { {0x8B08004F, 0xB29C7A75, 0x593616D2, 0x3536A2D2, 0x0F12F093},
27382 {0x0BF54256, 0x5F736765, 0x3AFBF9F4, 0xE29726DA, 0x0042B746} } } } ;
27383 static const fp12_t var_b = { { { {0xAB34754D, 0xF2C06DD8, 0xE976F2FF, 0xD442E0EF, 0x21186504},
27384 {0xF575BCD6, 0x5E840D8E, 0xCEF91D8A, 0x32F2359E, 0x07E780E5} } ,
27385 { {0x19BCA91D, 0x7A9C6007, 0x7C169DDC, 0xCFC14625, 0x1BABF249},
27386 {0x40895CC3, 0xA522C738, 0x778036BE, 0xB9DB6DCD, 0x17C52BA1} } } ,
27387 { { {0xD03BFF96, 0x63BAB236, 0xFBB6190E, 0x9664C2C7, 0x15A9A953},
27388 {0x9C1F0543, 0xB95096C4, 0xED85157A, 0x55DF1325, 0x16B25F94} } ,
27389 { {0xAB78D958, 0x1E9F9E65, 0x80F023F3, 0x4E38B944, 0x207F6050},
27390 {0x68A10714, 0xCAA6A261, 0x4FE4FACC, 0xAB846513, 0x226CF587} } } ,
27391 { { {0x7CDE0A2A, 0x51294424, 0xF93118F4, 0xE0B11B54, 0x1CF55A13},
27392 {0xB011E1F5, 0xD486F30A, 0xB0C710C9, 0xBE2A3EA1, 0x12B10D49} } ,
27393 { {0x8759A305, 0x92AAA313, 0x2F910A0F, 0xAA216887, 0x02E5D059},
27394 {0xA75306BC, 0xB26F8CF7, 0xD4C1D9FA, 0x8CFB4615, 0x1B382FDD} } } } ;
27395 static const fp12_t var_expected = { { { {0x2E493353, 0xD2B8D770, 0x71E53512, 0x40BEA740, 0x23B789CC},
27396 {0x34AD31AF, 0x6E1505CF, 0x636BC478, 0x2B6A5F5F, 0x1FC5EA38} } ,
27397 { {0xBDE60982, 0xB1777664, 0xBBD4E632, 0x3C403980, 0x1625BA60},
27398 {0x32399CE0, 0xD0442834, 0x1E64B3EA, 0xDF4DF798, 0x14BEFD6F} } } ,
27399 { { {0xECFBB4AB, 0x5F3911E6, 0x530E86F1, 0x4E622C26, 0x1F4E6360},
27400 {0x945FED45, 0x7E3EB534, 0x5C56CEE5, 0x130F1DA7, 0x1A5CCF04} } ,
27401 { {0x3E38BBF1, 0xE697F3EF, 0xB9E5F5C7, 0xFB503495, 0x0EA15199},
27402 {0x4CB5CE82, 0x0AD30F4F, 0xAD45A5D9, 0x43E5A6EF, 0x1657BFFB} } } ,
27403 { { {0x3F697A03, 0x8B094C88, 0xB7FB4424, 0x1FA2D9A2, 0x061ABC8E},
27404 {0x0E786934, 0xD62CB1C4, 0x8F5B0608, 0x0C2257E3, 0x01EA31FF} } ,
27405 { {0x1261A354, 0x45471D89, 0x88C720E2, 0xDF580B59, 0x11F8C0EC},
27406 {0xB3484912, 0x11E2F45C, 0x0FBDD3EF, 0x6F926CF0, 0x1B7AE724} } } } ;
27408 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2489 a000");
27409 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2490 a001");
27410 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2491 a010");
27411 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2492 a011");
27412 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2493 a100");
27413 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2494 a101");
27414 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2495 a110");
27415 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2496 a111");
27416 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2497 a200");
27417 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2498 a201");
27418 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2499 a210");
27419 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2500 a211");
27422 static const fp12_t var_a = { { { {0x97A96005, 0x77AF297D, 0x3E181127, 0x35C0065E, 0x15B57BB3},
27423 {0x93974B87, 0xE0ABD150, 0xED4E55EA, 0x9F8F9441, 0x12E34DAD} } ,
27424 { {0x86DE1826, 0x1F436764, 0xA5D50555, 0x4C55D51F, 0x1893E617},
27425 {0x41A46F93, 0x142F6348, 0x5478B694, 0x81D443D8, 0x197C90CA} } } ,
27426 { { {0x1583E7BF, 0xE82F39D1, 0xE8566876, 0x0FB3FE8B, 0x0A2B54A7},
27427 {0x6809ADD2, 0x13AEBC6B, 0x992E7CC5, 0x0B354464, 0x1D6FB575} } ,
27428 { {0xE992074C, 0xA42B42A9, 0xFC8A6E21, 0xD78E43B8, 0x2145014A},
27429 {0x8AF819D8, 0x286A6D80, 0x86633455, 0xC898C945, 0x04C3CA46} } } ,
27430 { { {0x923D03A6, 0xA88D2EE5, 0x31D4683F, 0x761D668B, 0x22628592},
27431 {0x0A4DD4B3, 0x983F5AFB, 0xE7E4A2E5, 0x5BEB6797, 0x1131D0F0} } ,
27432 { {0x4F25A3F3, 0x87DD6605, 0x0841C38B, 0xC773BB76, 0x0CC10D84},
27433 {0xFC104A7C, 0x6A06E808, 0x037E33B2, 0x9D71A7D8, 0x0584B0EE} } } } ;
27434 static const fp12_t var_b = { { { {0xAAF134C1, 0xDD9A8351, 0x69FAE4DD, 0x1E89E3FB, 0x188CF73C},
27435 {0xC77F81BE, 0xB885D4B1, 0x29286D80, 0xA49B6E25, 0x083C8F53} } ,
27436 { {0x781FE159, 0x8598434A, 0x49D06E09, 0x4E03AEA6, 0x2175AC8F},
27437 {0x94308E8B, 0xEAF7086F, 0x3134E6B5, 0x5DB04E43, 0x23798214} } } ,
27438 { { {0xF697E7DE, 0x997BED87, 0xB1C63C5D, 0x7B402F25, 0x1560590A},
27439 {0x47078F0D, 0xDD4339DC, 0xABB56416, 0x69D3F4C7, 0x0D545700} } ,
27440 { {0xED4585D8, 0xF566FF03, 0x588BFA1B, 0x828616D1, 0x0D5DE8AB},
27441 {0x3FFF3E42, 0x9B6AEC60, 0xCBD6AF3A, 0xFDBCA87A, 0x0448EBFE} } } ,
27442 { { {0xFCC8881B, 0x789698D2, 0x4DB66CB9, 0x0A2FA82F, 0x06903B6A},
27443 {0x6451F2BE, 0x9E5202BA, 0xA147EF5A, 0x6CBE573F, 0x1AA20F67} } ,
27444 { {0x4EF2ACEA, 0xE9CC6BB5, 0x1F81BEB6, 0xEC5F636D, 0x1F134E38},
27445 {0xFCE01F2D, 0x91CF9972, 0x03C45EF8, 0x0EE34A26, 0x056F5E11} } } } ;
27446 static const fp12_t var_expected = { { { {0xF64A426B, 0x371C582E, 0x6EC83567, 0xA4F38E73, 0x0A4152EB},
27447 {0x5B16CD45, 0x9931A602, 0x1676C36B, 0x442B0267, 0x1B1FDD01} } ,
27448 { {0xB2ADA724, 0x86AE560E, 0xB65AB2C0, 0xEB0327DF, 0x160872A2},
27449 {0x8984ABC3, 0xE0F91717, 0x4C62DCAB, 0x302E3635, 0x18F4F2DB} } } ,
27450 { { {0x0C1BCF9D, 0x81AB2759, 0x9A1CA4D4, 0x8AF42DB1, 0x1F8BADB1},
27451 {0x62C0EA84, 0xD2C4A1A7, 0x0B99203D, 0xC5B2DD46, 0x06C2EC71} } ,
27452 { {0x8A873AC9, 0x7B64ED0D, 0x1BCBA79F, 0xAABDFEA4, 0x0AA1C9F2},
27453 {0xCAF7581A, 0xC3D559E0, 0x5239E38F, 0xC65571C0, 0x090CB645} } } ,
27454 { { {0x42B53966, 0x02F67318, 0x4640145B, 0xD0F6B2D4, 0x04F1A0F8},
27455 {0x224F7516, 0x18640915, 0x4FE1D1A2, 0x195362F1, 0x07D2C054} } ,
27456 { {0x51C7FE82, 0x537C7D1A, 0xEE78C1A4, 0x047CC2FC, 0x07D33BBA},
27457 {0xF8F069A9, 0xFBD6817B, 0x074292AA, 0xAC54F1FE, 0x0AF40EFF} } } } ;
27459 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2501 a000");
27460 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2502 a001");
27461 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2503 a010");
27462 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2504 a011");
27463 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2505 a100");
27464 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2506 a101");
27465 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2507 a110");
27466 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2508 a111");
27467 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2509 a200");
27468 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2510 a201");
27469 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2511 a210");
27470 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2512 a211");
27473 static const fp12_t var_a = { { { {0x5014B10F, 0x606B6A93, 0x59435812, 0xC01B5C34, 0x12839AAB},
27474 {0x62BDB4FB, 0x058AB764, 0xDA8A79C2, 0xF76924A7, 0x21BF229E} } ,
27475 { {0xB5608ECC, 0x40935CA6, 0x654051D8, 0x131B36CD, 0x01A41DB2},
27476 {0x6BB558C5, 0x0F6D27AF, 0xC9BCDDBB, 0xB7F772E1, 0x1B4B60A9} } } ,
27477 { { {0x939F8F18, 0x52999CDA, 0x8775F2F6, 0x01802AFD, 0x166C05D3},
27478 {0xCDF9C0EA, 0x1C434C9F, 0x8B84E13F, 0x0F5A8E6A, 0x05DE3686} } ,
27479 { {0x09E9252A, 0xB177BFC6, 0x3DFC0141, 0xC32F2D3A, 0x23936F04},
27480 {0x77C1CACF, 0x20822DB8, 0x34ED739C, 0x61BCEF55, 0x0E7B5287} } } ,
27481 { { {0x91C99B2E, 0x95822E7B, 0xF1DEA36A, 0xB16E59F2, 0x211D027D},
27482 {0xD4FBEA2F, 0xC95EF361, 0xBFBC4FB1, 0xC925BE1C, 0x06F065BB} } ,
27483 { {0xF510500A, 0xFCE53567, 0x9A9A3CE5, 0x68718745, 0x22D837C0},
27484 {0x9D90CC71, 0x662B77EE, 0xEF4F5AC6, 0x16A53525, 0x003639CC} } } } ;
27485 static const fp12_t var_b = { { { {0xEFBB9D02, 0x8A246FCC, 0x396FAEB8, 0x618B2CF5, 0x03CEB011},
27486 {0xB3D90A89, 0x09C6166D, 0xB150C54D, 0x758222EC, 0x07136922} } ,
27487 { {0xE2C5B160, 0x51531DB3, 0x95176190, 0x43E0C760, 0x1727987A},
27488 {0x9ADFDE43, 0x71137360, 0xC1BAD4B3, 0x62EF62AA, 0x05374B5B} } } ,
27489 { { {0x62F24503, 0x5EBE5B65, 0x0DA85AF0, 0x6CF405B6, 0x21BB8B1C},
27490 {0xB81EE9C3, 0xC49054B3, 0x98CCCA8C, 0x3181055E, 0x07691135} } ,
27491 { {0x84D8E32B, 0x9F7CECB1, 0xD99BDD71, 0x38580D27, 0x1182CC33},
27492 {0x28CE5336, 0x6D85B9BC, 0xFC7D7885, 0xE8186CF8, 0x038C9F7C} } } ,
27493 { { {0x8499545D, 0x40AF59F3, 0xC99A8E0D, 0x507FC630, 0x03470A33},
27494 {0x28D151D4, 0x55BB195F, 0x7942AE40, 0x163F0027, 0x1A1E1314} } ,
27495 { {0x69BB4769, 0x2433659E, 0xF21DFBE8, 0xCF9FC191, 0x10EB4B56},
27496 {0x73640AA1, 0x9C2EB2ED, 0x7368D62D, 0x00054F9E, 0x1F54313A} } } } ;
27497 static const fp12_t var_expected = { { { {0x3FD04E11, 0xEA8FDA60, 0x92B306CA, 0x21A68929, 0x16524ABD},
27498 {0xCA466D29, 0xF1237931, 0x52907E70, 0xBD94EBAE, 0x04D16BBD} } ,
27499 { {0x9826402C, 0x91E67A5A, 0xFA57B368, 0x56FBFE2D, 0x18CBB62C},
27500 {0x06953708, 0x80809B10, 0x8B77B26E, 0x1AE6D58C, 0x2082AC05} } } ,
27501 { { {0xAA4181C0, 0x932AA39F, 0x5BD38D48, 0xBF1DD4CD, 0x142670EB},
27502 {0x8618AAAD, 0xE0D3A153, 0x2451ABCB, 0x40DB93C9, 0x0D4747BB} } ,
27503 { {0x4271B5FA, 0x32C757D7, 0xDE4D1E15, 0x4C30DE7B, 0x11151B34},
27504 {0xA0901E05, 0x8E07E774, 0x316AEC21, 0x49D55C4E, 0x1207F204} } } ,
27505 { { {0xCA129D30, 0xB80433CE, 0x822E70D9, 0x5297C43D, 0x0062ECAD},
27506 {0xFDCD3C03, 0x1F1A0CC0, 0x38FEFDF2, 0xDF64BE44, 0x210E78CF} } ,
27507 { {0x127B4518, 0x02EB4666, 0x536D7830, 0x88BAECF1, 0x0FC26313},
27508 {0x10F4D712, 0x025A2ADC, 0x62B830F4, 0x16AA84C4, 0x1F8A6B06} } } } ;
27510 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2513 a000");
27511 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2514 a001");
27512 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2515 a010");
27513 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2516 a011");
27514 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2517 a100");
27515 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2518 a101");
27516 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2519 a110");
27517 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2520 a111");
27518 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2521 a200");
27519 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2522 a201");
27520 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2523 a210");
27521 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2524 a211");
27524 static const fp12_t var_a = { { { {0xDB2F905B, 0x0C4992E0, 0xF4FCBCA0, 0x4ACDF753, 0x0069B034},
27525 {0x42F57AC2, 0x7B69F0E8, 0x973AC2F1, 0xBA6842A6, 0x19843774} } ,
27526 { {0x0DC8EED7, 0x0F64D534, 0xC73735FD, 0x4FB751EB, 0x00D8F8C5},
27527 {0x36B88CCA, 0xFCC7369F, 0x13B93421, 0xF69F02E2, 0x21AF3AE5} } } ,
27528 { { {0x6F2F998E, 0x25245AAD, 0xD14939FE, 0x47FB4A68, 0x090F66D4},
27529 {0x10C1B36A, 0x7FA37303, 0x93ED2D46, 0xD3BCBE2C, 0x09875D43} } ,
27530 { {0xD141C90C, 0x13D46512, 0x4F712F96, 0x296A72AE, 0x06CA13B5},
27531 {0x5A5DB04A, 0x7E1270D9, 0x9F1EA228, 0x2BCDCE02, 0x10515699} } } ,
27532 { { {0x26FDA36D, 0x99761806, 0xBEFF4DFA, 0xAC22494B, 0x0DC3DBB7},
27533 {0x9F23F976, 0xCC5213AF, 0x63F25FD0, 0x81ECD9D8, 0x1C54E740} } ,
27534 { {0xC7A7F976, 0xE32A077F, 0x3BE682C6, 0x6CEB531C, 0x21EB8BAB},
27535 {0x59F5C96F, 0x652E6DA6, 0xCEBA4235, 0x78CAFF26, 0x1C21A7D2} } } } ;
27536 static const fp12_t var_b = { { { {0x49F35E3F, 0xF66C4755, 0x97DF739A, 0x700C9C36, 0x00735DF2},
27537 {0x1B577192, 0xDD07427B, 0xD0F269E0, 0xBE55F796, 0x10E62F2C} } ,
27538 { {0x5C323B48, 0x7BC8007E, 0xD180D42C, 0xA37C2C96, 0x23B74839},
27539 {0x82345536, 0x24E6360C, 0x329388E7, 0x3931F48F, 0x1D6E3B2A} } } ,
27540 { { {0x99F1C60F, 0xDF90ABC9, 0xC30C6FCC, 0xA1641931, 0x1A34A417},
27541 {0xB8D51AEF, 0x64F93D5E, 0x9074E26C, 0x89F96794, 0x10DC0005} } ,
27542 { {0x4025E6F5, 0x62E1E101, 0x7F82B3C9, 0x1E31934E, 0x1929B9A0},
27543 {0x3738F6FA, 0x23FBABE4, 0x98F30F49, 0xAA633818, 0x2124BA35} } } ,
27544 { { {0xA285D95B, 0x51E50F3A, 0x0B013234, 0xCE54D4CA, 0x1AE5BC46},
27545 {0x92A9044E, 0x0E2E6D0B, 0xA9D321B7, 0x69948D58, 0x187DA6BD} } ,
27546 { {0x38C5AA2A, 0x8C9B32B2, 0x43E64A5A, 0x78C756AC, 0x04D67B17},
27547 {0x1FEA5AE9, 0xE8A0E02B, 0xF6EF955E, 0x16F7C54C, 0x18E245EF} } } } ;
27548 static const fp12_t var_expected = { { { {0x2522EE9A, 0x02B5DA36, 0x8CDC303B, 0xBADA938A, 0x00DD0E26},
27549 {0x11FC99F9, 0x3A43DEC3, 0x2EE26C34, 0xC967DE57, 0x0669469D} } ,
27550 { {0x1DAAD7C4, 0x6CFF8112, 0x5F6D498B, 0x43DD229C, 0x008F20FB},
27551 {0x6C9C8FA5, 0x0380180B, 0x0D01FC6B, 0x807A9B8B, 0x1B1C560C} } } ,
27552 { { {0x09215F9D, 0x04B50677, 0x9455A9CB, 0xE95F639A, 0x23440AEB},
27553 {0xC996CE59, 0xE49CB061, 0x24620FB2, 0x5DB625C1, 0x1A635D49} } ,
27554 { {0x1167B001, 0x76B64614, 0xCEF3E35F, 0x479C05FC, 0x1FF3CD55},
27555 {0x454654E9, 0x83E0C81D, 0xFEC6F0D3, 0x26DAAA34, 0x0D74F0CB} } } ,
27556 { { {0x7D332A6D, 0xCD2DD2A0, 0x90B5BF90, 0xCB20C22F, 0x04A877FA},
27557 {0xE57CAB69, 0xBC532C1A, 0xD47AC0E9, 0x3C2B0B4A, 0x10D16DFA} } ,
27558 { {0xB41D5145, 0x5197E591, 0x46820C83, 0x365C4DE2, 0x02C0E6BF},
27559 {0x2D8FD1FD, 0x2FA1F931, 0x8C5F16F6, 0xE06C688D, 0x1102CDBD} } } } ;
27561 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2525 a000");
27562 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2526 a001");
27563 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2527 a010");
27564 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2528 a011");
27565 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2529 a100");
27566 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2530 a101");
27567 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2531 a110");
27568 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2532 a111");
27569 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2533 a200");
27570 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2534 a201");
27571 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2535 a210");
27572 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2536 a211");
27575 static const fp12_t var_a = { { { {0xD3C7E836, 0x809B4CEC, 0x8FDB4762, 0x4CDC335E, 0x1A1CD13B},
27576 {0xA47FAD6E, 0x9339DB95, 0xCB5A6492, 0x4A2CCFA0, 0x0995440A} } ,
27577 { {0x0FBAB3E5, 0x797CB958, 0xA2A346AA, 0x01316C70, 0x11E54C75},
27578 {0x20C1AC05, 0xA39A4C22, 0x01AE3872, 0x94450386, 0x14C70231} } } ,
27579 { { {0xB4A3C960, 0x594E931C, 0xAA63AA3A, 0xCE47385E, 0x12798CC2},
27580 {0xA5D0D3DF, 0x2E0AB83A, 0x09FE38A6, 0x8F509C06, 0x0D383CDA} } ,
27581 { {0xEFC657A0, 0x3957A5B6, 0x0E7CEF7F, 0xFDFFAD7F, 0x04D415A7},
27582 {0xC65973E3, 0xEB1936DF, 0x68ADFB84, 0x83783CD3, 0x178C5178} } } ,
27583 { { {0x2ACD6576, 0xC53F4C18, 0x2121FC40, 0x6FC4FB07, 0x0573D872},
27584 {0xEDCB6450, 0x5545B691, 0x7C98132B, 0x725A3D8C, 0x185040A5} } ,
27585 { {0xC278A07C, 0x9DCD1E58, 0x1A08A472, 0x2E8668F1, 0x20BABC36},
27586 {0xC94FFF8B, 0x6B85BC87, 0x6A680BB5, 0x1C54F131, 0x03F79A15} } } } ;
27587 static const fp12_t var_b = { { { {0x0F344574, 0x019A9A01, 0x6B4BCC75, 0x38462AF9, 0x0A22FD70},
27588 {0x24F75B60, 0x71D5820D, 0x45394E68, 0x907AC031, 0x1FD4AAE8} } ,
27589 { {0x0F381493, 0xC00CC4A8, 0x589B7DE7, 0x879EBB03, 0x1B1487B5},
27590 {0x19E44BD8, 0x982DE306, 0xAD95FAEC, 0x8095166A, 0x1DD69418} } } ,
27591 { { {0x62EB5CAB, 0x312A2F77, 0xC2A5222D, 0xF14623A2, 0x1AD41DA8},
27592 {0xD905A7FD, 0xB9F6D1AB, 0xCF6F5C38, 0x5CEAF62B, 0x0F70BBA3} } ,
27593 { {0x4E2F3E21, 0xE111CFB4, 0xF1BC1B61, 0x4BA2C2B3, 0x00578E93},
27594 {0x790495CC, 0x4DB4C901, 0x0714205E, 0x028E26DA, 0x1F47DA5C} } } ,
27595 { { {0x46E5BC41, 0x83B20262, 0x92955E89, 0x36659202, 0x012A649F},
27596 {0x225BFD51, 0xA90EB080, 0x2E785F97, 0x44C4D03C, 0x09AA6321} } ,
27597 { {0x83B17ACA, 0x1E44A77D, 0xE9172750, 0x83F71651, 0x003BC398},
27598 {0x21CE2D01, 0xF92BB7F5, 0x6760801D, 0x04738943, 0x0CE82606} } } } ;
27599 static const fp12_t var_expected = { { { {0x96ABDB4F, 0x6408924D, 0xC1DC5339, 0xD5CC0271, 0x003EAEA7},
27600 {0x7D26B673, 0xE6E20902, 0xD748F25C, 0x2B5133EB, 0x0568CEEF} } ,
27601 { {0xD2A2761D, 0x1B5C295F, 0xC1F403F4, 0xD979CB8D, 0x08F8B426},
27602 {0xEE55A582, 0x1D9ADA87, 0x75F972C1, 0x6583BE0A, 0x0E9C7646} } } ,
27603 { { {0xCB3ED3B0, 0x6C4B6DF3, 0x33BE0BC9, 0x1037001B, 0x094C8A68},
27604 {0x7ED67BDC, 0xE80189E6, 0xD96D94DE, 0xEC3B9231, 0x1CA8F87D} } ,
27605 { {0x3DF595C1, 0x1A69756B, 0x00390AE1, 0x49A27033, 0x052BA43B},
27606 {0xF30DB754, 0x1AA0AB40, 0x36775B45, 0xD6B007C7, 0x12D30BD0} } } ,
27607 { { {0x71B321B7, 0x48F14E7A, 0xB3B75ACA, 0xA62A8D09, 0x069E3D11},
27608 {0x102761A1, 0xFE546712, 0xAB1072C2, 0xB71F0DC8, 0x21FAA3C6} } ,
27609 { {0x462A1B46, 0xBC11C5D6, 0x031FCBC2, 0xB27D7F43, 0x20F67FCE},
27610 {0xEB1E2C8C, 0x64B1747C, 0xD1C88BD3, 0x20C87A74, 0x10DFC01B} } } } ;
27612 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2537 a000");
27613 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2538 a001");
27614 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2539 a010");
27615 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2540 a011");
27616 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2541 a100");
27617 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2542 a101");
27618 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2543 a110");
27619 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2544 a111");
27620 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2545 a200");
27621 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2546 a201");
27622 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2547 a210");
27623 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2548 a211");
27626 static const fp12_t var_a = { { { {0xA5D7BE94, 0xA4039EB9, 0xB297FD0F, 0xD0DD0546, 0x183A9D73},
27627 {0xA655D4E3, 0xE419A9BA, 0x8D545F10, 0x30C6BB4D, 0x0D4F0487} } ,
27628 { {0x1E6B8ADB, 0x7619EA98, 0xB7AD5920, 0xE4FF238B, 0x0901AE8C},
27629 {0x84CFB8C7, 0x46A3EE95, 0xDACC05BC, 0x0E19BDFC, 0x06A97C90} } } ,
27630 { { {0xDB0AAFC9, 0x57609F24, 0x8661941C, 0x839BDC0B, 0x0FB3AF4D},
27631 {0xA65A9D30, 0x83B09A50, 0xBC1D2795, 0x30184BBB, 0x2146A23D} } ,
27632 { {0x55579205, 0x775FF88A, 0xD0A83D9F, 0x2C29A34D, 0x037F816D},
27633 {0x62F05C08, 0xF4BF116F, 0x2ABFE731, 0x0BDC0419, 0x05281BFA} } } ,
27634 { { {0x0A686DA0, 0x02FDA108, 0xDC64A112, 0x7AB86373, 0x1E5AEB02},
27635 {0x85832BF2, 0x52A94A53, 0xEB3C3DA9, 0xA577BA83, 0x171C0120} } ,
27636 { {0x8E7EE879, 0x64DD08B5, 0x371C0CD2, 0xCDDE9472, 0x1D602F06},
27637 {0xAE9CBDBA, 0xCA16B959, 0x5F1D9CB4, 0x705A4970, 0x17A22EB7} } } } ;
27638 static const fp12_t var_b = { { { {0xFD4C9AAE, 0x186BAB4A, 0xC772198E, 0x94C6DBED, 0x00463D7D},
27639 {0xC5F09CB1, 0xFFB5F790, 0xBFB853A7, 0x61CBADDF, 0x1EF05B45} } ,
27640 { {0x6F76C68A, 0xE2CF268F, 0x68A050A8, 0x8F6E8632, 0x17379C24},
27641 {0x555EE361, 0xA7796AA6, 0xF985B7C2, 0xA29699BA, 0x1E34634E} } } ,
27642 { { {0x7C666352, 0x1FA5913D, 0x6D445CDF, 0x39AC5590, 0x19581576},
27643 {0xCFE4B0F6, 0x140DF70D, 0xA00C5DFC, 0xF9917918, 0x10EB4549} } ,
27644 { {0x07E80555, 0x134D0868, 0x2C5AC421, 0x1CD7A442, 0x063B52EB},
27645 {0xF64C6661, 0x1CF5D448, 0x0069862D, 0xFAFBF710, 0x1AD851E8} } } ,
27646 { { {0x3A36BA33, 0x392BF1AE, 0x48C5A661, 0x31C1D2AD, 0x0C5FBD62},
27647 {0x84CB5FE9, 0x51EA0506, 0xA3FEE5DD, 0x49EC3769, 0x20F46CCC} } ,
27648 { {0xB782BC6A, 0x55C2E511, 0x7B8A0820, 0x46848C39, 0x0580A97C},
27649 {0x8D2EAD00, 0xEDD4F46C, 0xBDA7AD2B, 0x8068411E, 0x23D52981} } } } ;
27650 static const fp12_t var_expected = { { { {0xA3245942, 0xBC6F4A04, 0x7A0A169D, 0x65A3E134, 0x1880DAF1},
27651 {0x1FF61F39, 0xC5A24CAB, 0x13C1F21A, 0xE33C0D47, 0x083E3FC8} } ,
27652 { {0x8DE25165, 0x58E91127, 0x204DA9C9, 0x746DA9BE, 0x20394AB1},
27653 {0x8DDE49CD, 0xCFF0049B, 0x9B06FCE0, 0x0159FBD1, 0x00DCBFDB} } } ,
27654 { { {0x0B20C0C0, 0x58D8DBC2, 0xBA5B305D, 0x0DF1D5B5, 0x050AA4C0},
27655 {0x29EEFBCB, 0x79913CBE, 0x22DEC4F3, 0x7A5368EE, 0x0E30C783} } ,
27656 { {0x5D3F975A, 0x8AAD00F2, 0xFD0301C0, 0x4901478F, 0x09BAD458},
27657 {0x593CC269, 0x11B4E5B8, 0x2B296D5F, 0x06D7FB29, 0x20006DE3} } } ,
27658 { { {0xF84ED578, 0x1DFC3E15, 0xEBDF86D5, 0xFD23DA3A, 0x06B98860},
27659 {0xBDFE3980, 0x8665FAB9, 0x55F062E8, 0x400D9607, 0x140F4DE9} } ,
27660 { {0x4601A4E3, 0xBA9FEDC7, 0xB2A614F2, 0x146320AB, 0x22E0D883},
27661 {0xEF7B185F, 0x99BE5925, 0xE37A8942, 0x416C2EA8, 0x17763835} } } } ;
27663 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_add 2549 a000");
27664 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_add 2550 a001");
27665 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_add 2551 a010");
27666 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_add 2552 a011");
27667 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_add 2553 a100");
27668 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_add 2554 a101");
27669 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_add 2555 a110");
27670 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_add 2556 a111");
27671 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_add 2557 a200");
27672 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_add 2558 a201");
27673 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_add 2559 a210");
27674 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_add 2560 a211");
27677 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27678 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27679 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27680 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27681 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27682 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27683 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27684 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27685 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27686 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27687 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27688 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27689 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27690 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27691 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27692 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27693 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27694 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27695 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27696 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27697 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27698 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27699 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27700 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27701 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27702 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27703 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27704 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27705 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27706 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27707 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27708 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27709 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27710 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27711 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27712 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27714 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2561 a000");
27715 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2562 a001");
27716 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2563 a010");
27717 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2564 a011");
27718 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2565 a100");
27719 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2566 a101");
27720 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2567 a110");
27721 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2568 a111");
27722 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2569 a200");
27723 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2570 a201");
27724 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2571 a210");
27725 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2572 a211");
27728 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27729 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27730 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27731 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27732 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27733 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27734 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27735 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27736 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27737 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27738 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27739 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27740 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27741 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27742 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27743 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27744 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27745 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27746 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27747 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27748 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27749 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27750 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27751 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27752 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27753 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27754 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27755 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27756 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27757 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27758 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27759 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27760 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27761 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27762 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27763 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27765 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2573 a000");
27766 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2574 a001");
27767 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2575 a010");
27768 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2576 a011");
27769 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2577 a100");
27770 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2578 a101");
27771 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2579 a110");
27772 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2580 a111");
27773 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2581 a200");
27774 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2582 a201");
27775 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2583 a210");
27776 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2584 a211");
27779 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27780 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27781 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27782 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27783 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27784 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27785 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27786 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27787 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27788 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27789 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27790 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27791 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27792 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27793 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27794 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27795 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27796 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27797 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27798 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27799 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27800 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27801 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27802 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27803 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27804 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27805 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27806 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27807 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27808 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27809 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27810 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27811 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27812 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27813 { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
27814 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27816 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2585 a000");
27817 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2586 a001");
27818 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2587 a010");
27819 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2588 a011");
27820 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2589 a100");
27821 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2590 a101");
27822 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2591 a110");
27823 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2592 a111");
27824 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2593 a200");
27825 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2594 a201");
27826 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2595 a210");
27827 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2596 a211");
27830 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27831 {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003} } ,
27832 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27833 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27834 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27835 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27836 { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
27837 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27838 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27839 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27840 { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
27841 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27842 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27843 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27844 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27845 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27846 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27847 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27848 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27849 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27850 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27851 {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003} } ,
27852 { {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27853 {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003} } } } ;
27854 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27855 {0x4C505259, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003} } ,
27856 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27857 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27858 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27859 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27860 { {0x4C50525A, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
27861 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
27862 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
27863 {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
27864 { {0x4C505259, 0x1E2D54A0, 0x394AC09E, 0xAF565BE6, 0x24012003},
27865 {0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
27867 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2597 a000");
27868 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2598 a001");
27869 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2599 a010");
27870 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2600 a011");
27871 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2601 a100");
27872 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2602 a101");
27873 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2603 a110");
27874 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2604 a111");
27875 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2605 a200");
27876 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2606 a201");
27877 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2607 a210");
27878 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2608 a211");
27881 static const fp12_t var_a = { { { {0x60892B3A, 0x3958DBED, 0xF43100CD, 0xFD43E963, 0x0B54C9F0},
27882 {0x8359B844, 0x9F54091B, 0xD5F5A9F3, 0x24A96824, 0x073792CD} } ,
27883 { {0x10457319, 0x60A5DF32, 0xB4CA6953, 0xC9450202, 0x0E708548},
27884 {0x0D9112F3, 0x45A458DD, 0x17EE6F7D, 0x6A12BCCC, 0x21E76A4D} } } ,
27885 { { {0x15594ADC, 0xCC1D000C, 0xC7B1FBE3, 0x402F598A, 0x1648CD70},
27886 {0x1BC660CD, 0x2132CE61, 0x4DB40992, 0x4BBEC8B5, 0x0789C6C0} } ,
27887 { {0x7CE9B9CE, 0xF54CE737, 0xBBE7F48E, 0x78C273EF, 0x1CBCA65B},
27888 {0x5963B297, 0xBAD8DE60, 0x64F3A8C2, 0x620A20B6, 0x16BED83D} } } ,
27889 { { {0x8E4DBC5E, 0xBCE56107, 0xADA817FC, 0xF2F13962, 0x06463832},
27890 {0xF832EAF5, 0x48D96B10, 0xDC2F1D11, 0x90D1C22F, 0x0C869758} } ,
27891 { {0xA3D81C31, 0x50091D7A, 0x6D13C76C, 0xAE07F274, 0x1DC4E143},
27892 {0x1FE8178B, 0x0D77B4B6, 0x1B054FBB, 0x54CFE03E, 0x005A6B99} } } } ;
27893 static const fp12_t var_b = { { { {0x560E674A, 0xB45EFDBD, 0xA6807F0A, 0x555BBB45, 0x059A1162},
27894 {0xD95841FE, 0xEDC89A13, 0x5DF80DAE, 0xBEF6C753, 0x15F95E8C} } ,
27895 { {0x20F33D3F, 0x69CEEAED, 0xA66CB328, 0xCD345FAA, 0x14621173},
27896 {0x938FFBA6, 0x59459524, 0x167B027D, 0x7AD2B82E, 0x0004FB00} } } ,
27897 { { {0xB050BB1A, 0x172B4CBA, 0xBBBCE4F5, 0x1155C02E, 0x217A26B9},
27898 {0x679815F1, 0xE8EEFEDC, 0xE400ED2D, 0x6449D60C, 0x1E770AEA} } ,
27899 { {0x7D90E570, 0x409F4289, 0x4C9F0DB1, 0x303666CD, 0x17E0D6AC},
27900 {0x03AA78A1, 0x89164CB3, 0x292286BF, 0xC8B0A9EE, 0x0E69A959} } } ,
27901 { { {0x3EA5A8EF, 0x0EC6419A, 0x3225554D, 0x8D120723, 0x1E4B5BC7},
27902 {0x2966C177, 0x2E7BF042, 0xD683D358, 0xD8090F97, 0x1B1CA6EA} } ,
27903 { {0x9F0A6E3D, 0x31C2AB30, 0xC0D96C1F, 0x0C05721D, 0x23B42651},
27904 {0x5273A33C, 0x65DDDD45, 0x9E15DE83, 0xB8C4F83A, 0x01708EDE} } } } ;
27905 static const fp12_t var_expected = { { { {0x0A7AC3F0, 0x84F9DE30, 0x4DB081C2, 0xA7E82E1E, 0x05BAB88E},
27906 {0xF651C8A1, 0xCFB8C3A7, 0xB1485CE2, 0x1508FCB7, 0x153F5444} } ,
27907 { {0x3BA28835, 0x150448E5, 0x47A876C9, 0xAB66FE3E, 0x1E0F93D8},
27908 {0x7A01174D, 0xEC5EC3B8, 0x01736CFF, 0xEF40049E, 0x21E26F4C} } } ,
27909 { { {0xB158E21D, 0xD31F07F1, 0x453FD78C, 0xDE2FF542, 0x18CFC6BA},
27910 {0x007E9D37, 0x56712425, 0xA2FDDD02, 0x96CB4E8E, 0x0D13DBD9} } ,
27911 { {0xFF58D45E, 0xB4ADA4AD, 0x6F48E6DD, 0x488C0D22, 0x04DBCFAF},
27912 {0x55B939F6, 0x31C291AD, 0x3BD12203, 0x995976C8, 0x08552EE3} } } ,
27913 { { {0x9BF865CA, 0xCC4C740D, 0xB4CD834D, 0x15358E25, 0x0BFBFC6F},
27914 {0x1B1C7BD9, 0x388ACF6F, 0x3EF60A57, 0x681F0E7E, 0x156B1071} } ,
27915 { {0x511E004F, 0x3C73C6EA, 0xE5851BEB, 0x5158DC3C, 0x1E11DAF6},
27916 {0x19C4C6AA, 0xC5C72C11, 0xB63A31D5, 0x4B6143E9, 0x22EAFCBE} } } } ;
27918 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2609 a000");
27919 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2610 a001");
27920 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2611 a010");
27921 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2612 a011");
27922 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2613 a100");
27923 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2614 a101");
27924 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2615 a110");
27925 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2616 a111");
27926 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2617 a200");
27927 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2618 a201");
27928 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2619 a210");
27929 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2620 a211");
27932 static const fp12_t var_a = { { { {0x573BCC41, 0xD6E6CBB4, 0x8CB46D9E, 0xAA3E179C, 0x07CA76FF},
27933 {0x728F8B54, 0x6039BBA2, 0x4CA954E1, 0xB79D0DE0, 0x0C3C6798} } ,
27934 { {0x12C89B1A, 0xFFEEDFAC, 0x3E5AFC3C, 0x26429F9E, 0x0860A3F9},
27935 {0x546F59FB, 0x7D218764, 0x77490337, 0x7A1F5CB7, 0x1D61B7F6} } } ,
27936 { { {0x4BD7A0BC, 0xF4E04B6D, 0x9966C078, 0x8FD02DC9, 0x145A8156},
27937 {0xDB67271A, 0x2D279D91, 0x722F2C2D, 0x95171651, 0x0C112071} } ,
27938 { {0x387918A2, 0x9A3A7047, 0xFF79DFEE, 0x658129DE, 0x1296E4BF},
27939 {0x74C7F9A7, 0xA992E2F6, 0x32C30A0C, 0x9C4A9EAF, 0x08E0B508} } } ,
27940 { { {0x7A279698, 0xF3A9C328, 0x1E6CA58C, 0x1224FA8A, 0x15381E93},
27941 {0x3AF07B4F, 0xFB7EA8AE, 0x4FEA9974, 0x0F4BBDF3, 0x06193629} } ,
27942 { {0x12B36CC8, 0x78580FEB, 0xE1879956, 0x33A3B694, 0x120319DF},
27943 {0xCE7B9DD7, 0x34A8835A, 0xB8F84864, 0xB402954E, 0x06E44CC6} } } } ;
27944 static const fp12_t var_b = { { { {0x488CBED8, 0x1665D033, 0xD1AF30C3, 0xF424C13F, 0x03E0789F},
27945 {0xDD832395, 0xF3E0A63E, 0x127FB136, 0xFB06DA85, 0x034DA895} } ,
27946 { {0x662DF177, 0xD2E87C00, 0x9A91ED71, 0xAD73BC59, 0x0966E574},
27947 {0x84C1569B, 0xA4C3C6B5, 0xC35C9C2E, 0x4716B8D4, 0x01F19D77} } } ,
27948 { { {0x31DD47C0, 0xA24E8B79, 0x24F28980, 0x046BC5A3, 0x0116AA44},
27949 {0x4FA52942, 0x0E54034A, 0x59CB7BE4, 0xDB14CD48, 0x1189B537} } ,
27950 { {0xC2FBD119, 0x3323CBEB, 0x6D340B8F, 0xFB76D8DD, 0x23A1710E},
27951 {0x67CF5BBE, 0xCDCD3266, 0x92CFB56E, 0x5D1C72FF, 0x074634A8} } } ,
27952 { { {0x5AE1E9D2, 0xC2D528FA, 0x089545C6, 0xD13511D8, 0x04E7D561},
27953 {0x525EDEB9, 0x1964924D, 0xA97BEAB9, 0xEEF4D9AE, 0x100BFF0F} } ,
27954 { {0x82B97497, 0x1A128A78, 0xA9E2C298, 0x7B256ADA, 0x06FA7010},
27955 {0x78B6F822, 0xE846AEDC, 0x9ED23FB5, 0x1C5DB982, 0x1CFC4647} } } } ;
27956 static const fp12_t var_expected = { { { {0x0EAF0D69, 0xC080FB81, 0xBB053CDB, 0xB619565C, 0x03E9FE5F},
27957 {0x950C67BF, 0x6C591563, 0x3A29A3AA, 0xBC96335B, 0x08EEBF02} } ,
27958 { {0xF8EAFBFE, 0x4B33B84B, 0xDD13CF69, 0x28253F2A, 0x22FADE88},
27959 {0xCFAE0360, 0xD85DC0AE, 0xB3EC6708, 0x3308A3E2, 0x1B701A7F} } } ,
27960 { { {0x19FA58FC, 0x5291BFF4, 0x747436F8, 0x8B646826, 0x1343D712},
27961 {0xD8125033, 0x3D00EEE7, 0x51AE70E7, 0x6958A4EF, 0x1E888B3D} } ,
27962 { {0xC1CD99E4, 0x8543F8FB, 0xCB9094FD, 0x1960ACE7, 0x12F693B4},
27963 {0x0CF89DE9, 0xDBC5B090, 0x9FF3549D, 0x3F2E2BAF, 0x019A8060} } } ,
27964 { { {0x1F45ACC6, 0x30D49A2E, 0x15D75FC6, 0x40EFE8B2, 0x10504931},
27965 {0x34E1EEF1, 0x00476B01, 0xDFB96F5A, 0xCFAD402A, 0x1A0E571C} } ,
27966 { {0x8FF9F831, 0x5E458572, 0x37A4D6BE, 0xB87E4BBA, 0x0B08A9CE},
27967 {0xA214F810, 0x6A8F291E, 0x5370C94C, 0x46FB37B2, 0x0DE92683} } } } ;
27969 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2621 a000");
27970 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2622 a001");
27971 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2623 a010");
27972 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2624 a011");
27973 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2625 a100");
27974 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2626 a101");
27975 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2627 a110");
27976 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2628 a111");
27977 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2629 a200");
27978 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2630 a201");
27979 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2631 a210");
27980 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2632 a211");
27983 static const fp12_t var_a = { { { {0x6F81C789, 0xEE7D9519, 0xF9419B0F, 0x29713799, 0x16C29E50},
27984 {0x17EBA4BD, 0x733D535F, 0xB108DFC1, 0x51D00B28, 0x197C487B} } ,
27985 { {0x65BBAEF1, 0x8BEB26FD, 0x24ED32BA, 0x0BE35180, 0x159D5204},
27986 {0xC5FF206D, 0x54451AEB, 0xD0680F25, 0x27F15E81, 0x13506D97} } } ,
27987 { { {0x4EA2DFC9, 0xFD36F86F, 0x36EB17D0, 0x7DD2B7D1, 0x23B89E6B},
27988 {0xF28BC1B4, 0x893D7568, 0x688E4E89, 0xC918E027, 0x23036395} } ,
27989 { {0xAE5CD4DB, 0xF8F73D06, 0x35211923, 0x47BC2B88, 0x1BA0DCD7},
27990 {0x63BFFBF1, 0xAF613251, 0x6500DFE9, 0x455B87CA, 0x11980520} } } ,
27991 { { {0xFF204939, 0x580B5D18, 0xBBEEA59C, 0x3BEF1BEC, 0x093977F0},
27992 {0x5C111187, 0xE0856C42, 0xC956B86E, 0x14B146AE, 0x11DE1FCD} } ,
27993 { {0x4C33497A, 0x6AA506D3, 0x79EB0084, 0x13C8FF75, 0x101E35AD},
27994 {0x11A9FAC6, 0x3AD61157, 0xE4A060DF, 0xE5BD1801, 0x0DF6D714} } } } ;
27995 static const fp12_t var_b = { { { {0x51AE042E, 0x4262645D, 0x5233F68E, 0xF931BB95, 0x02ADBB27},
27996 {0xC396B412, 0x90A610E6, 0x278E7426, 0x9202ACD0, 0x1C6FD97E} } ,
27997 { {0x76ADBFBF, 0x4193D819, 0xCDBA5B1E, 0x07BBFF04, 0x11277476},
27998 {0xE71AC1E9, 0xBB37F81A, 0x3079DD0E, 0x3BD5757C, 0x020AEBF9} } } ,
27999 { { {0x24A88B01, 0x46503E42, 0x652AE6D6, 0x69E89E43, 0x07AF42F8},
28000 {0x88D84812, 0x74138200, 0x85F762A2, 0x80BE8883, 0x17AAFAE8} } ,
28001 { {0xF487E5CB, 0x7BA8C0F2, 0x4A03638A, 0x36CE7DAE, 0x1E4142BE},
28002 {0xB171ADC9, 0xAACA47B2, 0x97E37882, 0x1CC2CF7C, 0x0E1B7916} } } ,
28003 { { {0xEE5BFB2C, 0x9B01B59E, 0xE3793FB2, 0xD3A1B49F, 0x0FA92D7A},
28004 {0xA3B690B1, 0xC2FA7AC2, 0x2B9FF167, 0xF87C115D, 0x143CA666} } ,
28005 { {0xF2778FF5, 0xF4322055, 0x857B0F7D, 0x867DBE5F, 0x061E66E5},
28006 {0x20197CE0, 0x9763744E, 0x7005C4C8, 0x9838AFD8, 0x23902E38} } } } ;
28007 static const fp12_t var_expected = { { { {0x1DD3C35B, 0xAC1B30BC, 0xA70DA481, 0x303F7C04, 0x1414E328},
28008 {0xA0A54306, 0x00C49718, 0xC2C52C39, 0x6F23BA3E, 0x210D8F00} } ,
28009 { {0xEF0DEF32, 0x4A574EE3, 0x5732D79C, 0x0427527B, 0x0475DD8E},
28010 {0xDEE45E84, 0x990D22D0, 0x9FEE3216, 0xEC1BE905, 0x1145819D} } } ,
28011 { { {0x29FA54C8, 0xB6E6BA2D, 0xD1C030FA, 0x13EA198D, 0x1C095B73},
28012 {0x69B379A2, 0x1529F368, 0xE296EBE7, 0x485A57A3, 0x0B5868AD} } ,
28013 { {0x0625416B, 0x9B7BD0B4, 0x24687637, 0xC04409C0, 0x2160BA1C},
28014 {0xB24E4E28, 0x0496EA9E, 0xCD1D6767, 0x2898B84D, 0x037C8C0A} } } ,
28015 { { {0x5D14A068, 0xDB36FC1A, 0x11C02687, 0x17A3C333, 0x1D916A79},
28016 {0x04AAD331, 0x3BB84620, 0xD70187A5, 0xCB8B9137, 0x21A29969} } ,
28017 { {0x59BBB985, 0x7672E67D, 0xF46FF106, 0x8D4B4115, 0x09FFCEC7},
28018 {0x3DE0D041, 0xC19FF1A9, 0xADE55CB4, 0xFCDAC40F, 0x0E67C8DF} } } } ;
28020 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2633 a000");
28021 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2634 a001");
28022 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2635 a010");
28023 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2636 a011");
28024 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2637 a100");
28025 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2638 a101");
28026 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2639 a110");
28027 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2640 a111");
28028 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2641 a200");
28029 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2642 a201");
28030 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2643 a210");
28031 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2644 a211");
28034 static const fp12_t var_a = { { { {0x9F7BC6AC, 0x7A5FEEA3, 0xADA338F4, 0x9D444F58, 0x1C404B06},
28035 {0xE55AB7D3, 0xBE79E740, 0x106EFAFF, 0xC981322A, 0x010F1F5C} } ,
28036 { {0x41C0BF92, 0x192128BD, 0xAAC3D3EE, 0x1047A512, 0x22C27688},
28037 {0x8A02720E, 0x30E135A1, 0x55BE9192, 0x6F9D1E74, 0x1AB86A86} } } ,
28038 { { {0x5A81D4E6, 0x7E033E9B, 0x6A8E58D2, 0x19351DEA, 0x0D03155D},
28039 {0xFB3C0720, 0x87082BDD, 0x149A3BC9, 0xB5C35E01, 0x06F37668} } ,
28040 { {0xFC89500A, 0x1E9642BE, 0xB93A92A1, 0x057ECDE7, 0x23D0EC6D},
28041 {0x71EB0249, 0xDB9725A0, 0x5FA7A857, 0xE612D40F, 0x1F38D411} } } ,
28042 { { {0x826285BE, 0x50495684, 0x4AA0BABB, 0xF22610B3, 0x09DC3A22},
28043 {0xD9EF6CB6, 0x241D4D06, 0xE7C7C3B5, 0x73348A6E, 0x1D04CFD9} } ,
28044 { {0x2736058C, 0x1194BBF5, 0x42F8B080, 0x6C96D681, 0x195667F2},
28045 {0xC38793B1, 0xE31DC0E5, 0xA0D41A47, 0x604B80F8, 0x073F8ACE} } } } ;
28046 static const fp12_t var_b = { { { {0xA2A29034, 0xE3447751, 0x94EA4640, 0x8A940EF9, 0x104693ED},
28047 {0xC1FD5302, 0x74C10499, 0xB2126E00, 0x7C1B9F74, 0x0363A0EE} } ,
28048 { {0x74651C2E, 0xC02DA302, 0xA1879990, 0xE3F17276, 0x02D38E9B},
28049 {0x8F89C6E1, 0x705E64CC, 0xA2BA7058, 0x0B0DF561, 0x20E60694} } } ,
28050 { { {0x36782264, 0xA694280A, 0x5446795D, 0xD65DADAA, 0x0FD86BED},
28051 {0xB31EF277, 0x4C88DF22, 0x9375B66C, 0xFFF066B9, 0x09165A38} } ,
28052 { {0x052FC014, 0x885C9EF5, 0x7461E89D, 0xE022FE6D, 0x083F0750},
28053 {0xD938E61C, 0xC3EAC2A2, 0xBADA3431, 0xCDA38260, 0x0664B65A} } } ,
28054 { { {0x59B611FE, 0x58FD558E, 0xA4C473ED, 0xF1B9198F, 0x1C047169},
28055 {0x657DC612, 0x1F96EAD2, 0xA1A9C72D, 0x4329AF4F, 0x03291945} } ,
28056 { {0xBE55A568, 0x994A0A5D, 0x18DEBB60, 0x16A87982, 0x221330C1},
28057 {0xC5446E60, 0xC7497500, 0x2FD44D1D, 0xE7B107A5, 0x23FFF390} } } } ;
28058 static const fp12_t var_expected = { { { {0xFCD93678, 0x971B7751, 0x18B8F2B3, 0x12B0405F, 0x0BF9B719},
28059 {0x6FADB72C, 0x67E63747, 0x97A74D9D, 0xFCBBEE9B, 0x21AC9E71} } ,
28060 { {0xCD5BA364, 0x58F385BA, 0x093C3A5D, 0x2C56329C, 0x1FEEE7EC},
28061 {0x46C8FD88, 0xDEB02575, 0xEC4EE1D7, 0x13E584F8, 0x1DD383F6} } } ,
28062 { { {0x705A04DD, 0xF59C6B31, 0x4F92A012, 0xF22DCC26, 0x212BC972},
28063 {0x946D6704, 0x58ACA15B, 0xBA6F45FB, 0x6529532D, 0x21DE3C33} } ,
28064 { {0xF7598FF6, 0x9639A3C9, 0x44D8AA03, 0x255BCF7A, 0x1B91E51C},
28065 {0x98B21C2D, 0x17AC62FD, 0xA4CD7426, 0x186F51AE, 0x18D41DB7} } } ,
28066 { { {0x74FCC61B, 0x15795596, 0xDF27076C, 0xAFC35309, 0x11D8E8BC},
28067 {0x7471A6A4, 0x04866234, 0x461DFC88, 0x300ADB1F, 0x19DBB694} } ,
28068 { {0xB530B27F, 0x96780637, 0x6364B5BD, 0x0544B8E5, 0x1B445735},
28069 {0x4A9377AC, 0x3A01A085, 0xAA4A8DC8, 0x27F0D539, 0x0740B741} } } } ;
28071 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2645 a000");
28072 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2646 a001");
28073 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2647 a010");
28074 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2648 a011");
28075 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2649 a100");
28076 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2650 a101");
28077 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2651 a110");
28078 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2652 a111");
28079 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2653 a200");
28080 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2654 a201");
28081 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2655 a210");
28082 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2656 a211");
28085 static const fp12_t var_a = { { { {0xA2346476, 0x9EDF8752, 0x02F33905, 0x7E27DFB9, 0x1B2AEC66},
28086 {0x93129E4A, 0xBF0CECAD, 0xF3C70B8D, 0x685DE433, 0x1FB0EE68} } ,
28087 { {0x318A38D0, 0x451B0E70, 0xA61DEC68, 0x67CF9ECC, 0x16D13537},
28088 {0x97DE5FD3, 0x32F32DE0, 0x8F5C1958, 0x3F3FD079, 0x1428CF46} } } ,
28089 { { {0x123F54FB, 0x66F92C55, 0xF232E679, 0x87D77330, 0x1AD212C4},
28090 {0x0C9990A7, 0xF1089270, 0xD1D97624, 0x8AB2FDCC, 0x0A125D45} } ,
28091 { {0x0DA2C3CE, 0xB56780FA, 0xE6A144CA, 0x72C3E9C7, 0x12542E6F},
28092 {0xC2DAE027, 0xEB026D1F, 0x71BC2861, 0x54327E65, 0x01AEEF71} } } ,
28093 { { {0x5FB63307, 0xFEB75D63, 0xF6C3EE06, 0xBE944B47, 0x202372E6},
28094 {0x8D960286, 0x1FDA0906, 0x82C79865, 0x73520EC6, 0x067F2CE9} } ,
28095 { {0x8DB64159, 0x0783DFA0, 0x4CA8022C, 0xB2E00201, 0x022EF080},
28096 {0x69425D97, 0xC326705A, 0x408A820E, 0x285E854D, 0x17564904} } } } ;
28097 static const fp12_t var_b = { { { {0xC629B270, 0xE30138FD, 0x8EFC66EF, 0x541CCBD3, 0x20546690},
28098 {0xF814747B, 0x07ABE750, 0xB8926593, 0xEFEE2B8B, 0x140E3F7B} } ,
28099 { {0x27FCFE51, 0x10416B29, 0x7E5DA3E6, 0xDBCDF50D, 0x16A92214},
28100 {0x3392AE48, 0x315526B4, 0xAF0940A3, 0xC5214F4C, 0x1F5DCD65} } } ,
28101 { { {0xB1E86C82, 0xE7C33034, 0x8F318F10, 0x9FBB2E36, 0x1C87C548},
28102 {0x1638C6C4, 0x29E0380E, 0xB7F4E224, 0x18397672, 0x04473AAA} } ,
28103 { {0x2C2734C0, 0xDA7A2719, 0xCD59C350, 0x1B8653F9, 0x0D1B3ECE},
28104 {0x781C1345, 0x00993743, 0xE6E6A13C, 0x68384065, 0x0E008823} } } ,
28105 { { {0xB47C63F7, 0x6040CAE5, 0x929A50CA, 0x2555B529, 0x14153244},
28106 {0x541A5F57, 0xF847B799, 0x41FDAC3B, 0x2A97DB39, 0x216BA86F} } ,
28107 { {0xB764758B, 0x976F4445, 0x95247A6F, 0x0FF2BFE3, 0x16EF21A3},
28108 {0x96B0AB69, 0xD6B1F785, 0xBC6FC6AB, 0x78382F33, 0x12D53E49} } } } ;
28109 static const fp12_t var_expected = { { { {0x285B0461, 0xDA0BA2F5, 0xAD4192B3, 0xD9616FCB, 0x1ED7A5D9},
28110 {0x9AFE29CF, 0xB761055C, 0x3B34A5FA, 0x786FB8A8, 0x0BA2AEEC} } ,
28111 { {0x098D3A7F, 0x34D9A347, 0x27C04882, 0x8C01A9BF, 0x00281322},
28112 {0xB09C03E6, 0x1FCB5BCC, 0x199D9953, 0x2974DD13, 0x18CC21E4} } } ,
28113 { { {0xACA73AD4, 0x9D6350C0, 0x9C4C1806, 0x9772A0E0, 0x224B6D7F},
28114 {0xF660C9E3, 0xC7285A61, 0x19E49400, 0x7279875A, 0x05CB229B} } ,
28115 { {0xE17B8F0E, 0xDAED59E0, 0x19478179, 0x573D95CE, 0x0538EFA1},
28116 {0x970F1F3D, 0x08968A7C, 0xC42047C4, 0x9B5099E5, 0x17AF8751} } } ,
28117 { { {0xAB39CF10, 0x9E76927D, 0x64299D3C, 0x993E961E, 0x0C0E40A2},
28118 {0x85CBF58A, 0x45BFA60D, 0x7A14ACC7, 0xF8108F73, 0x0914A47D} } ,
28119 { {0x22A21E29, 0x8E41EFFB, 0xF0CE485A, 0x52439E03, 0x0F40EEE1},
28120 {0xD291B22E, 0xEC7478D4, 0x841ABB62, 0xB0265619, 0x04810ABA} } } } ;
28122 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2657 a000");
28123 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2658 a001");
28124 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2659 a010");
28125 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2660 a011");
28126 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2661 a100");
28127 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2662 a101");
28128 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2663 a110");
28129 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2664 a111");
28130 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2665 a200");
28131 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2666 a201");
28132 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2667 a210");
28133 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2668 a211");
28136 static const fp12_t var_a = { { { {0xA67D86A5, 0xF558DB46, 0x206B5777, 0x943C377A, 0x0F9A88F0},
28137 {0x78979C85, 0x102D5439, 0x4EF998CC, 0x24E37D58, 0x17FB6025} } ,
28138 { {0x56F1CC3B, 0x710877B0, 0x5B46D27F, 0x7F892EF8, 0x1E86C802},
28139 {0xC0040FDB, 0xF2B3434C, 0x7C696C24, 0xADFC0057, 0x0CAD4DD5} } } ,
28140 { { {0xC03B0997, 0x346CDF8B, 0x84C60DDD, 0xF8882534, 0x01F3317E},
28141 {0xA9A10C48, 0x87483969, 0x91BA44CD, 0x73B25905, 0x1D6ADC96} } ,
28142 { {0xC96659DA, 0xAEEEB6F1, 0xA3A62F04, 0x1B5BCB13, 0x1D603675},
28143 {0xF5167B1F, 0x452BF3F5, 0x6EA4E806, 0x4B29F880, 0x11F2ABC1} } } ,
28144 { { {0x66B4DC7D, 0xE2B3E1D1, 0x1B5C0251, 0x84C79BE7, 0x1D660A97},
28145 {0x0BFE4005, 0x2D07A9F6, 0x05C19A29, 0xC61729A6, 0x203AEE74} } ,
28146 { {0x6910249C, 0x2897C357, 0xC7ECCC98, 0x70DF7C88, 0x08ADADE2},
28147 {0xB19244DD, 0x7A21FC04, 0xB54DCEE4, 0x65FBF238, 0x19803724} } } } ;
28148 static const fp12_t var_b = { { { {0xDCAA7E62, 0x58E4B595, 0x8331907C, 0x858885CA, 0x0216AAAA},
28149 {0x245188BD, 0x7A7703D4, 0x91FFAF1C, 0xC1972475, 0x05EB1A8E} } ,
28150 { {0xE703ABED, 0xE76BA74C, 0xDD66F840, 0x41110098, 0x2338ACBB},
28151 {0x1BFCAEE6, 0xCC4E40C2, 0x5A8FCDE7, 0x43A6469C, 0x1A7BF511} } } ,
28152 { { {0x07D3A378, 0x89F52F90, 0x3CE70797, 0xB92D7BAC, 0x04CB4C59},
28153 {0x86EB1FBC, 0xBAEEBD23, 0xC0C4B17C, 0x91C0036C, 0x07F5DF83} } ,
28154 { {0xEE7DFBB6, 0x648A82DE, 0x272BC215, 0xBCB46813, 0x18D6EC7D},
28155 {0x97B6B37A, 0x250ED8AC, 0x3403EA2C, 0x4A3B5638, 0x1C1D1446} } } ,
28156 { { {0x3526484A, 0x39A4B790, 0x0D61BE2A, 0xE39E8428, 0x002E1A8F},
28157 {0xD39F987A, 0x2A6CD830, 0x42293084, 0x163DD981, 0x0DAF059F} } ,
28158 { {0x3D6B0AC0, 0x653A29B3, 0x9EB873BD, 0x1FE8B6D9, 0x03528B3C},
28159 {0x7E5E167E, 0x1708A8E3, 0xF2982EF3, 0x2ADA0191, 0x01C73488} } } } ;
28160 static const fp12_t var_expected = { { { {0xC9D30843, 0x9C7425B0, 0x9D39C6FB, 0x0EB3B1AF, 0x0D83DE46},
28161 {0x544613C8, 0x95B65065, 0xBCF9E9AF, 0x634C58E2, 0x12104596} } ,
28162 { {0xBC3E72A9, 0xA7CA2503, 0xB72A9ADC, 0xEDCE8A45, 0x1F4F3B4A},
28163 {0xF057B350, 0x4492572A, 0x5B245EDB, 0x19AC15A1, 0x163278C8} } } ,
28164 { { {0x04B7B87A, 0xC8A5049C, 0x8129C6E3, 0xEEB1056E, 0x21290528},
28165 {0x22B5EC8C, 0xCC597C46, 0xD0F59350, 0xE1F25598, 0x1574FD12} } ,
28166 { {0xDAE85E24, 0x4A643412, 0x7C7A6CEF, 0x5EA76300, 0x048949F7},
28167 {0xA9B01A00, 0x3E4A6FE9, 0x73EBBE78, 0xB044FE2E, 0x19D6B77E} } } ,
28168 { { {0x318E9433, 0xA90F2A41, 0x0DFA4427, 0xA12917BF, 0x1D37F007},
28169 {0x385EA78B, 0x029AD1C5, 0xC39869A5, 0xAFD95024, 0x128BE8D5} } ,
28170 { {0x2BA519DC, 0xC35D99A4, 0x293458DA, 0x50F6C5AF, 0x055B22A6},
28171 {0x33342E5F, 0x63195321, 0xC2B59FF1, 0x3B21F0A6, 0x17B9029C} } } } ;
28173 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2669 a000");
28174 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2670 a001");
28175 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2671 a010");
28176 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2672 a011");
28177 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2673 a100");
28178 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2674 a101");
28179 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2675 a110");
28180 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2676 a111");
28181 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2677 a200");
28182 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2678 a201");
28183 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2679 a210");
28184 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2680 a211");
28187 static const fp12_t var_a = { { { {0x89B2ED67, 0x6CCCB002, 0x78CB6285, 0x3329A3DA, 0x14E8C7E5},
28188 {0x8AD7B5E4, 0x793B9B62, 0x130A588F, 0x8C5F5068, 0x0094DB94} } ,
28189 { {0xFA456907, 0x65E36E45, 0x03DD489E, 0xF91902D9, 0x034FA4AD},
28190 {0xDD398170, 0x0D73D729, 0x1483DC07, 0xA725342F, 0x003648A5} } } ,
28191 { { {0xBFF71AE1, 0x266A35D4, 0x4828AE9C, 0x8E0CB4DE, 0x08EAFB81},
28192 {0xB149E306, 0x3E482EAB, 0xE01A11CD, 0xBBCA287E, 0x04C0E9B8} } ,
28193 { {0xE3DC7EDF, 0x7084F835, 0x9A0FAAE5, 0xA7CFEEA5, 0x0A1FB83A},
28194 {0x8C75945C, 0xD20137F9, 0xD2F21134, 0xF95181CC, 0x21DCE9C6} } } ,
28195 { { {0x59EF7623, 0x652E282C, 0xB1C505EB, 0x0A62903E, 0x1A3E3512},
28196 {0xD018A3DA, 0xE293FD75, 0x78EC9146, 0x72F682AC, 0x23383243} } ,
28197 { {0x59A9E37A, 0x0E0BC6F5, 0x1BBAB21F, 0x07E0AAF9, 0x1592DB04},
28198 {0xF8BCD41F, 0x7229BFED, 0x3F428DD4, 0xD111697F, 0x1F33D2FD} } } } ;
28199 static const fp12_t var_b = { { { {0xF64636E7, 0x010A7F42, 0xED6E0CC0, 0x0A8B1621, 0x1738756F},
28200 {0xCDBD8A1D, 0x3E2C8562, 0x68814A55, 0xF33F0551, 0x1B3FAF79} } ,
28201 { {0xFB0BA62E, 0xA31CDE40, 0x37368E98, 0xCD4CF080, 0x1E40B513},
28202 {0xA3A59C88, 0xF6D900B4, 0xA0A67C06, 0x9F44ED4C, 0x00B88A55} } } ,
28203 { { {0x813BB75E, 0x35976D38, 0x3E776021, 0x154FF7FB, 0x22604CA2},
28204 {0x04523487, 0xA0480834, 0xA72E5453, 0xB92F8C60, 0x056B9423} } ,
28205 { {0xB3C9FF13, 0x3E63346C, 0xD7EFC231, 0x42DB623D, 0x2147F376},
28206 {0x2D7111E0, 0x2C3432C5, 0x1D99B12C, 0xD8C462E1, 0x1D6564FD} } } ,
28207 { { {0x152BF938, 0x2E7DAE35, 0x17A8EE22, 0xED989133, 0x189E8965},
28208 {0x52863EAC, 0xA5AB066A, 0x38AD3487, 0xD7EC6B24, 0x167BD1FB} } ,
28209 { {0x20E8CC5C, 0xC732F38F, 0x9A047456, 0xB39D04A4, 0x1484006D},
28210 {0x527EB5A2, 0x2BBF1737, 0x1D25080B, 0x75CA0BF5, 0x0C4F856C} } } } ;
28211 static const fp12_t var_expected = { { { {0xDFBD08DB, 0x89EF855F, 0xC4A81663, 0xD7F4E99E, 0x21B17279},
28212 {0x096A7E22, 0x593C6AA0, 0xE3D3CED8, 0x4876A6FC, 0x09564C1E} } ,
28213 { {0x4B8A1534, 0xE0F3E4A5, 0x05F17AA3, 0xDB226E3F, 0x09100F9D},
28214 {0x85E43743, 0x34C82B15, 0xAD28209E, 0xB736A2C8, 0x237EDE53} } } ,
28215 { { {0x8B0BB5DE, 0x0F001D3C, 0x42FC0F19, 0x281318C9, 0x0A8BCEE3},
28216 {0xF94800DA, 0xBC2D7B17, 0x72367E17, 0xB1F0F804, 0x23567598} } ,
28217 { {0x7C62D227, 0x504F1869, 0xFB6AA952, 0x144AE84D, 0x0CD8E4C8},
28218 {0x5F04827C, 0xA5CD0534, 0xB5586008, 0x208D1EEB, 0x047784C9} } } ,
28219 { { {0x44C37CEB, 0x36B079F7, 0x9A1C17C9, 0x1CC9FF0B, 0x019FABAC},
28220 {0x7D92652E, 0x3CE8F70B, 0x403F5CBF, 0x9B0A1788, 0x0CBC6047} } ,
28221 { {0x38C1171E, 0x46D8D366, 0x81B63DC8, 0x5443A654, 0x010EDA96},
28222 {0xA63E1E7D, 0x466AA8B6, 0x221D85C9, 0x5B475D8A, 0x12E44D91} } } } ;
28224 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2681 a000");
28225 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2682 a001");
28226 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2683 a010");
28227 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2684 a011");
28228 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2685 a100");
28229 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2686 a101");
28230 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2687 a110");
28231 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2688 a111");
28232 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2689 a200");
28233 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2690 a201");
28234 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2691 a210");
28235 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2692 a211");
28238 static const fp12_t var_a = { { { {0x54A61261, 0x50928780, 0x160A2A5B, 0x4E6B23EE, 0x21235BF6},
28239 {0x56327CC9, 0x38A1F26C, 0x11732BD1, 0x8CFA6E74, 0x0944D70E} } ,
28240 { {0x211A6570, 0x27866B60, 0x5F992057, 0xC845C3DB, 0x067C7528},
28241 {0xE215CDE5, 0x0F966CC0, 0x79BF0E04, 0xA46ACE50, 0x0A501A8C} } } ,
28242 { { {0x16635A67, 0xAB73E772, 0xE584123D, 0xC6445A0B, 0x160D5489},
28243 {0xDCCBC0D8, 0x63C7E729, 0xECDCDC20, 0x99BE762F, 0x052E2196} } ,
28244 { {0xB7227736, 0x12D6C513, 0x739ED13C, 0x4D070345, 0x03DC44CF},
28245 {0xB52C4FE9, 0x98ADB8A4, 0x85687349, 0x2E7CCCCC, 0x204B0664} } } ,
28246 { { {0x002315A7, 0x2F3FC3F5, 0x0EA5B54A, 0x7856C146, 0x0C5903AB},
28247 {0xC031E0CF, 0xB7BDF7EF, 0x3E9B1031, 0x374F53EC, 0x197CACD3} } ,
28248 { {0x5D804862, 0xAE7EBCB9, 0xDB78707A, 0x47606CAB, 0x05D45F2A},
28249 {0x6DDBA8FD, 0xD36E4C5B, 0x7310F81A, 0x141576A8, 0x00522894} } } } ;
28250 static const fp12_t var_b = { { { {0x56A40CCA, 0xAAF5F797, 0x8B60F5CB, 0x007FA552, 0x17FAB2BC},
28251 {0x9253D493, 0x4F0C84E2, 0x197E7AAD, 0x68FBF5E9, 0x117A336F} } ,
28252 { {0xAAA65C8B, 0x87204EFB, 0xAEDD8CD9, 0x0F258605, 0x1E467B8C},
28253 {0xA67BF2D1, 0xF589EA28, 0x5E684C25, 0xE95432CF, 0x1786D649} } } ,
28254 { { {0xB3BD5D57, 0x09E6681B, 0x9B7ED434, 0xA615D6ED, 0x023C6837},
28255 {0xE23453CA, 0x791E4CAE, 0x8F2E6855, 0xD53946D8, 0x162F7052} } ,
28256 { {0xF970F92B, 0xD24776A3, 0xC13728EB, 0xD6CEB9AB, 0x20DB611B},
28257 {0x7C866E82, 0xA2B811C1, 0x708C6778, 0x9BF4A123, 0x16B23830} } } ,
28258 { { {0x8FC6E6EE, 0x052A7BA2, 0x77F02B8E, 0x8C438659, 0x2369B165},
28259 {0x09EDB3DB, 0xE3064306, 0xD3BC4AE9, 0x65B2667F, 0x14B1FEC0} } ,
28260 { {0x575714AD, 0xA17B27A2, 0xCE241019, 0x6390C62D, 0x21043552},
28261 {0xB08E43A8, 0x81C1D000, 0x40FD28A1, 0x66B45794, 0x02BB6117} } } } ;
28262 static const fp12_t var_expected = { { { {0xFE020597, 0xA59C8FE8, 0x8AA9348F, 0x4DEB7E9B, 0x0928A93A},
28263 {0x102EFA91, 0x07C2C22A, 0x313F71C2, 0xD354D471, 0x1BCBC3A2} } ,
28264 { {0xC2C45B40, 0xBE937104, 0xEA06541B, 0x687699BB, 0x0C3719A0},
28265 {0x87EA2D6F, 0x3839D738, 0x54A1827C, 0x6A6CF767, 0x16CA6446} } } ,
28266 { { {0x62A5FD10, 0xA18D7F56, 0x4A053E09, 0x202E831E, 0x13D0EC52},
28267 {0x46E7BF69, 0x08D6EF1B, 0x96F93469, 0x73DB8B3D, 0x12FFD147} } ,
28268 { {0x0A01D066, 0x5EBCA310, 0xEBB268EE, 0x258EA57F, 0x070203B7},
28269 {0x38A5E167, 0xF5F5A6E3, 0x14DC0BD0, 0x92882BA9, 0x0998CE33} } } ,
28270 { { {0xBCAC8114, 0x48429CF2, 0xD0004A5A, 0x9B6996D2, 0x0CF07249},
28271 {0xB6442CF4, 0xD4B7B4E9, 0x6ADEC547, 0xD19CED6C, 0x04CAAE12} } ,
28272 { {0x52798610, 0x2B30E9B7, 0x469F20FF, 0x93260264, 0x08D149DB},
28273 {0x099DB7B0, 0x6FD9D0FB, 0x6B5E9017, 0x5CB77AFA, 0x2197E780} } } } ;
28275 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2693 a000");
28276 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2694 a001");
28277 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2695 a010");
28278 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2696 a011");
28279 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2697 a100");
28280 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2698 a101");
28281 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2699 a110");
28282 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2700 a111");
28283 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2701 a200");
28284 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2702 a201");
28285 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2703 a210");
28286 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2704 a211");
28289 static const fp12_t var_a = { { { {0x98D7F20C, 0xC6FF62B8, 0x39E4E99B, 0x4A86028D, 0x1E5495BD},
28290 {0xB2C151C5, 0xD0115B9A, 0x23AA4800, 0xD52D0628, 0x1BB62D91} } ,
28291 { {0xC86340E5, 0x7D46E803, 0xFD636D11, 0x7F22697D, 0x055F4907},
28292 {0x69D925B5, 0x9A6B7467, 0x012A8E42, 0x775F67FB, 0x18057908} } } ,
28293 { { {0xC1D05071, 0x5153A357, 0x1E003E4F, 0x1C92C2DE, 0x0F3F56B2},
28294 {0xF4F3113D, 0x5C8493B2, 0x4F3D1A1A, 0xB15DCC18, 0x18BEE71D} } ,
28295 { {0x81132540, 0x66E7855B, 0xAEFE3A48, 0xF78521E0, 0x21B16819},
28296 {0x815EB674, 0xF5EF0953, 0xDC5ABFFB, 0x569C8A2A, 0x0D8097A2} } } ,
28297 { { {0xF290923C, 0x54D33F46, 0x0EA760AC, 0xBD05320B, 0x03BC08BC},
28298 {0x863E3BBB, 0x41231711, 0xBCAF9440, 0xCAD73D18, 0x16F0BDC3} } ,
28299 { {0x7174F193, 0xB11D7E2F, 0xC742F183, 0xAD340AAD, 0x21D75632},
28300 {0xC57D185C, 0x4BB981DE, 0x616ADB35, 0x2EF22855, 0x058EF864} } } } ;
28301 static const fp12_t var_b = { { { {0x2915AD88, 0x2766ACBD, 0xD0400F62, 0xF3E1720D, 0x1E5CA467},
28302 {0x3758BD4A, 0x813F48A3, 0xD62C0CBC, 0x55AA0A10, 0x19C701D6} } ,
28303 { {0x6EC32FA3, 0x9BBA97DB, 0xD4AE3863, 0x0AF38394, 0x1853BC65},
28304 {0x71CF1A59, 0x0FD4903C, 0x6C848304, 0xCE477B1C, 0x02507964} } } ,
28305 { { {0x387FC995, 0x24825537, 0x70F29599, 0xCFD31CD0, 0x1288EB9C},
28306 {0xBDB33249, 0x2496EA05, 0xA501176F, 0xEF8688DD, 0x09C70003} } ,
28307 { {0xF20954E0, 0x063AF237, 0x200B836F, 0xB3471E47, 0x22DED3A3},
28308 {0x59C609D4, 0xFDFF34B6, 0x1B9C4104, 0xF8F9CFC9, 0x0F97E397} } } ,
28309 { { {0x9EA02128, 0xCC8F2A2F, 0xE3AC14EC, 0xF1B21990, 0x1E099520},
28310 {0x9BA60322, 0x906A3B3C, 0x2AB25B74, 0x79E38530, 0x1625A252} } ,
28311 { {0x60D92E73, 0xF9B7B18C, 0xCE215B83, 0x564E2E3B, 0x0AD02636},
28312 {0xDABDFCAF, 0xBA86FE2A, 0x69D95FEE, 0x9B2128AD, 0x0281C6E7} } } } ;
28313 static const fp12_t var_expected = { { { {0xBC1296DF, 0xBDC60A9B, 0xA2EF9AD7, 0x05FAEC65, 0x23F91159},
28314 {0x7B68947B, 0x4ED212F7, 0x4D7E3B44, 0x7F82FC17, 0x01EF2BBB} } ,
28315 { {0xA5F0639D, 0xFFB9A4C8, 0x61FFF54B, 0x238541CF, 0x110CACA6},
28316 {0xF80A0B5C, 0x8A96E42A, 0x94A60B3E, 0xA917ECDE, 0x15B4FFA3} } } ,
28317 { { {0xD5A0D937, 0x4AFEA2C0, 0xE6586954, 0xFC1601F3, 0x20B78B18},
28318 {0x373FDEF4, 0x37EDA9AD, 0xAA3C02AB, 0xC1D7433A, 0x0EF7E719} } ,
28319 { {0xDB5A22BB, 0x7ED9E7C3, 0xC83D7777, 0xF3945F7F, 0x22D3B479},
28320 {0x73E8FEFB, 0x161D293D, 0xFA093F95, 0x0CF91647, 0x21E9D40E} } } ,
28321 { { {0xA040C36F, 0xA67169B7, 0x64460C5D, 0x7AA97460, 0x09B3939F},
28322 {0xEA983899, 0xB0B8DBD4, 0x91FD38CB, 0x50F3B7E8, 0x00CB1B71} } ,
28323 { {0x109BC320, 0xB765CCA3, 0xF92195FF, 0x56E5DC71, 0x17072FFC},
28324 {0xEABF1BAD, 0x913283B3, 0xF7917B46, 0x93D0FFA7, 0x030D317C} } } } ;
28326 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2705 a000");
28327 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2706 a001");
28328 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2707 a010");
28329 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2708 a011");
28330 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2709 a100");
28331 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2710 a101");
28332 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2711 a110");
28333 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2712 a111");
28334 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2713 a200");
28335 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2714 a201");
28336 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2715 a210");
28337 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2716 a211");
28340 static const fp12_t var_a = { { { {0x81B429A9, 0xE9541A2D, 0x057547DB, 0xF37D95B3, 0x1BF0605E},
28341 {0xABA45138, 0x42824A86, 0x352C2A6F, 0xFA226246, 0x13135481} } ,
28342 { {0x69F23B78, 0x78C36D2F, 0xC8EE325E, 0xCFBDB9C1, 0x01CE6536},
28343 {0xC4892D79, 0x4E4AB1A7, 0x5F6D3FBD, 0x06CBA4F2, 0x17346ECA} } } ,
28344 { { {0xB2DA4E6A, 0x1FDDF79C, 0xAC9526A6, 0xF053C0E7, 0x003CD776},
28345 {0x37F7773D, 0x23AAB78B, 0xB4EB40E8, 0xF521DBAF, 0x01B68A21} } ,
28346 { {0xF8ECD40B, 0xAB62C7AB, 0xF4CF084A, 0xE4EE8497, 0x1F22E288},
28347 {0x1272966A, 0x5A398A66, 0x5C8D6D0A, 0xF88A6D79, 0x20FF9F26} } } ,
28348 { { {0x7154E3FF, 0x9DB08119, 0x66324842, 0x0A8545D3, 0x00C997D6},
28349 {0x1C33A13D, 0xFCB9BAC4, 0xE2F7D5B3, 0xEF60363B, 0x1DBB8942} } ,
28350 { {0xF5F3516D, 0x47DF0DAB, 0x0C0D8330, 0xF9B30656, 0x082435F3},
28351 {0x667001CE, 0xCAF36ED0, 0x54AFFF81, 0xF6657CE8, 0x123BA10A} } } } ;
28352 static const fp12_t var_b = { { { {0x5C605386, 0x629BA9B9, 0xDB6A56B8, 0x826C0303, 0x1426BCF5},
28353 {0x5A728C85, 0x1333A355, 0x13649DEC, 0xC11762E8, 0x204A8C1F} } ,
28354 { {0x5D48B63A, 0xE33A3ABB, 0x14C7DB9F, 0x1E50728E, 0x02BFC8DE},
28355 {0x224FE51C, 0xE140F8BB, 0x47B1068B, 0xEFEFFCEC, 0x0E7439C9} } } ,
28356 { { {0x01EDD1D5, 0xBBC1225F, 0x88D95354, 0x42F0F149, 0x21126729},
28357 {0x4F7A9370, 0x5EB7FFEE, 0xD1E83DAD, 0x0577B7A3, 0x1131BF43} } ,
28358 { {0xC43E4092, 0xA184A747, 0xA79323EC, 0x9FDEB0F3, 0x0583AB1E},
28359 {0x9BB3A26B, 0x2B221FF5, 0x21F1D094, 0xC8FD8A56, 0x05DD3AA4} } } ,
28360 { { {0xB62835DF, 0x026AADD0, 0x6CA1835A, 0xFC4E14A1, 0x1F83E2BD},
28361 {0x6D97112E, 0x127FC9B1, 0xA71551BC, 0xC4733947, 0x1CA7E3E5} } ,
28362 { {0x44C49607, 0xB9CAF814, 0xA72CEC5E, 0x77E165F0, 0x130D986C},
28363 {0x78504278, 0x7A2B6AB2, 0xCDBDE6FF, 0xA13892D2, 0x21DF42A3} } } } ;
28364 static const fp12_t var_expected = { { { {0x2553D623, 0x86B87074, 0x2A0AF123, 0x711192AF, 0x07C9A369},
28365 {0x9D82170E, 0x4D7BFBD1, 0x5B124D21, 0xE8615B44, 0x16C9E865} } ,
28366 { {0x58F9D799, 0xB3B68714, 0xED71175C, 0x60C3A319, 0x230FBC5C},
28367 {0xA239485D, 0x6D09B8EC, 0x17BC3931, 0x16DBA806, 0x08C03500} } } ,
28368 { { {0xFD3CCEF0, 0x824A29DD, 0x5D0693EF, 0x5CB92B84, 0x032B9051},
28369 {0x34CD3628, 0xE3200C3D, 0x1C4DC3D8, 0x9F007FF2, 0x1485EAE2} } ,
28370 { {0x34AE9379, 0x09DE2064, 0x4D3BE45E, 0x450FD3A4, 0x199F376A},
28371 {0x76BEF3FF, 0x2F176A70, 0x3A9B9C76, 0x2F8CE323, 0x1B226482} } } ,
28372 { { {0x077D007B, 0xB97327E9, 0x32DB8586, 0xBD8D8D18, 0x0546D51B},
28373 {0xAE9C900F, 0xEA39F112, 0x3BE283F7, 0x2AECFCF4, 0x0113A55D} } ,
28374 { {0xFD7F0DC1, 0xAC416A37, 0x9E2B576F, 0x3127FC4B, 0x1917BD8B},
28375 {0x3A7011B1, 0x6EF558BE, 0xC03CD920, 0x048345FB, 0x145D7E6B} } } } ;
28377 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2717 a000");
28378 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2718 a001");
28379 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2719 a010");
28380 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2720 a011");
28381 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2721 a100");
28382 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2722 a101");
28383 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2723 a110");
28384 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2724 a111");
28385 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2725 a200");
28386 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2726 a201");
28387 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2727 a210");
28388 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2728 a211");
28391 static const fp12_t var_a = { { { {0xC7AE0148, 0xAA2762FF, 0xD95B548F, 0x89BA5854, 0x1E4E608C},
28392 {0xA04C3E55, 0xA5360230, 0xFD0CCB84, 0x7AA24ED1, 0x226B58EC} } ,
28393 { {0x01AB3C6B, 0xFF118C8F, 0xE609CCB4, 0xEBB6BE05, 0x161F2C89},
28394 {0x9AB19AAF, 0xED90BCB8, 0x79E99E01, 0xBB08F886, 0x0626D54A} } } ,
28395 { { {0xF3E8F75B, 0xB523701A, 0x7EDFB182, 0xBBD47EBB, 0x215A75CE},
28396 {0xB8B207B3, 0x846B28BE, 0x871E0182, 0xE1EBBE76, 0x09C8D2E3} } ,
28397 { {0xCE47B416, 0xD92343F6, 0x8803BEB4, 0xAAE90A15, 0x0AED9132},
28398 {0x54ACC3AF, 0xE146B795, 0xA8C16DDA, 0x4518DF4D, 0x148AB553} } } ,
28399 { { {0xAB1772C1, 0x51CBA9DE, 0x243A3371, 0x15B760EC, 0x194701C8},
28400 {0x54E3F7F4, 0xF3AE208D, 0xE96DF059, 0xD207517A, 0x02AAFF02} } ,
28401 { {0xC8AB04B8, 0xBDB9A020, 0xE5A46302, 0x31749050, 0x13A6A40C},
28402 {0x022E7E2F, 0x20058B59, 0x2034448F, 0x5C2EEDC9, 0x201684E3} } } } ;
28403 static const fp12_t var_b = { { { {0xB720FF4C, 0xA8BBDE89, 0xF7705A5D, 0x6B67DA5E, 0x1B72AB88},
28404 {0xC37A4BFC, 0xEED12038, 0x62343658, 0x2D32CCC2, 0x20375896} } ,
28405 { {0xE0A43F4E, 0xF061D2BE, 0xA756DBEE, 0x8B23DE4C, 0x1234379F},
28406 {0x9A3CD230, 0x25F4B79D, 0x9CECF42D, 0x31C72A58, 0x0AFFAF2E} } } ,
28407 { { {0x4B68C4FF, 0x24A1A1C8, 0xFF5D7504, 0xCFA7A794, 0x05840FC4},
28408 {0x9D0A0817, 0x24FC028D, 0x09A60FDC, 0xD6D2EB67, 0x1B3B6D07} } ,
28409 { {0xB8742563, 0x79347401, 0xBAE2632C, 0x4579E81D, 0x0F310D7B},
28410 {0x6B891692, 0x3B95D4CA, 0xBAF2FD38, 0x68C92E73, 0x07D21DBE} } } ,
28411 { { {0x218E3546, 0x127D9EC8, 0x68D7A74F, 0x60149822, 0x022A8EE7},
28412 {0x0D8DB628, 0x5B15116C, 0x2EBECB7B, 0x8246015C, 0x0010E7D1} } ,
28413 { {0xB22CF56F, 0x962A6FEC, 0x02ABD39E, 0x39C236B6, 0x1B6AD5EC},
28414 {0x19D6BBB0, 0x8FA7D182, 0xD932F302, 0xC8D2041E, 0x1FB14F7A} } } } ;
28415 static const fp12_t var_expected = { { { {0x108D01FC, 0x016B8476, 0xE1EAFA32, 0x1E527DF5, 0x02DBB504},
28416 {0xDCD1F259, 0xB664E1F7, 0x9AD8952B, 0x4D6F820F, 0x02340056} } ,
28417 { {0x2106FD1D, 0x0EAFB9D0, 0x3EB2F0C6, 0x6092DFB9, 0x03EAF4EA},
28418 {0x4CC51ADA, 0xE5C959BB, 0x16476A72, 0x38982A14, 0x1F284620} } } ,
28419 { { {0xA880325C, 0x9081CE52, 0x7F823C7E, 0xEC2CD726, 0x1BD66609},
28420 {0x67F851F7, 0x7D9C7AD1, 0xB6C2B244, 0xBA6F2EF5, 0x128E85DF} } ,
28421 { {0x6223E10E, 0x7E1C2495, 0x066C1C26, 0x14C57DDE, 0x1FBDA3BB},
28422 {0xE923AD1D, 0xA5B0E2CA, 0xEDCE70A2, 0xDC4FB0D9, 0x0CB89794} } } ,
28423 { { {0x89893D7B, 0x3F4E0B16, 0xBB628C22, 0xB5A2C8C9, 0x171C72E0},
28424 {0x475641CC, 0x98990F21, 0xBAAF24DE, 0x4FC1501E, 0x029A1731} } ,
28425 { {0x62CE61A4, 0x45BC84D4, 0x1C435002, 0xA708B581, 0x1C3CEE23},
28426 {0xE857C27F, 0x905DB9D6, 0x4701518C, 0x935CE9AA, 0x00653568} } } } ;
28428 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2729 a000");
28429 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2730 a001");
28430 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2731 a010");
28431 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2732 a011");
28432 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2733 a100");
28433 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2734 a101");
28434 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2735 a110");
28435 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2736 a111");
28436 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2737 a200");
28437 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2738 a201");
28438 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2739 a210");
28439 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2740 a211");
28442 static const fp12_t var_a = { { { {0x312836B4, 0x88C992D8, 0x0FE52398, 0x1FCC5C53, 0x083E67E5},
28443 {0x9F21B74A, 0x297F7067, 0x62F7AD86, 0x20A9445B, 0x23FE573C} } ,
28444 { {0x5075FF01, 0x888C0DDB, 0x41D9591F, 0xABB2B05C, 0x0BF945E1},
28445 {0x95ACAACE, 0x5B691BA9, 0xD09CB106, 0xBDC4C860, 0x09811E8E} } } ,
28446 { { {0x2D2CFC77, 0x3AB8FA09, 0x797356B4, 0x00CE9FBD, 0x1902A742},
28447 {0x6A917CD7, 0x9C247A4D, 0xD4FF349D, 0xDC211E79, 0x01FC41C8} } ,
28448 { {0xA072C065, 0x8A782468, 0xB2ADDE89, 0x49AF76AD, 0x107BA142},
28449 {0xC5AC0416, 0x23F7050E, 0x77DABCF1, 0x1D47B71B, 0x238FD72B} } } ,
28450 { { {0x6B7C40A4, 0xC653E9E4, 0xA38465E0, 0x8DCEBDFF, 0x21D766F0},
28451 {0xF79C44FC, 0xB4AE42C6, 0x545E27BE, 0x65598921, 0x048811CF} } ,
28452 { {0x5FFD51C5, 0x34463CFC, 0xA29C9ACD, 0x7FBC88C2, 0x1989E5FE},
28453 {0xAAD7C202, 0x6D8D415D, 0xDC377AEE, 0x53155878, 0x06EBF928} } } } ;
28454 static const fp12_t var_b = { { { {0xB13ED516, 0x8EF3979E, 0x8BEA9610, 0xB64D96C6, 0x23B0D61A},
28455 {0xF58A4E91, 0x23CD752D, 0xB8F3C9F1, 0xB082B08B, 0x0ACB940C} } ,
28456 { {0xDE71A11D, 0x7F17BF93, 0x4736E899, 0x7EA555D0, 0x1E55D94B},
28457 {0x31B3BFF6, 0x2D356EB6, 0x02D44F94, 0x766356DF, 0x1E5B71A9} } } ,
28458 { { {0x52E86FA0, 0x36AC2854, 0x1BD03578, 0x71C843D4, 0x0B1928F8},
28459 {0xB231D9E3, 0x54645F40, 0x2BEF53F1, 0x6FEEAC19, 0x10808F6B} } ,
28460 { {0x75F32710, 0x04143D86, 0xBAA76206, 0x773F6836, 0x0EAAD803},
28461 {0x2E5AEF25, 0x797EDEAF, 0x22644363, 0x017BF54F, 0x0A102CF6} } } ,
28462 { { {0xFD3B633C, 0x9BA6DA33, 0x4864E025, 0x7B23AFD8, 0x0FB460CB},
28463 {0x1A688C4A, 0x5C793612, 0x6CBD507A, 0x6DD05AE1, 0x1B2063DD} } ,
28464 { {0x60067B0D, 0xB8A6D340, 0x1CE180FE, 0x3E9B03D9, 0x1BF266C8},
28465 {0xBFA8896B, 0xC5AD1FC7, 0xF2F0F1A4, 0xFAD7CBDD, 0x16E29E92} } } } ;
28466 static const fp12_t var_expected = { { { {0xCC39B3F9, 0x18034FD9, 0xBD454E26, 0x18D52172, 0x088EB1CE},
28467 {0xA99768B9, 0x05B1FB39, 0xAA03E395, 0x702693CF, 0x1932C32F} } ,
28468 { {0xBE54B03F, 0x27A1A2E7, 0x33ED3124, 0xDC63B672, 0x11A48C99},
28469 {0xB0493D33, 0x4C610193, 0x07132210, 0xF6B7CD68, 0x0F26CCE8} } } ,
28470 { { {0xDA448CD7, 0x040CD1B4, 0x5DA3213C, 0x8F065BE9, 0x0DE97E49},
28471 {0x04AFF54F, 0x65ED6FAD, 0xE25AA14A, 0x1B88CE46, 0x157CD261} } ,
28472 { {0x2A7F9955, 0x8663E6E2, 0xF8067C83, 0xD2700E76, 0x01D0C93E},
28473 {0x975114F1, 0xAA78265F, 0x5576798D, 0x1BCBC1CC, 0x197FAA35} } } ,
28474 { { {0x6E40DD68, 0x2AAD0FB0, 0x5B1F85BB, 0x12AB0E27, 0x12230625},
28475 {0x29840B0D, 0x76626155, 0x20EB97E2, 0xA6DF8A26, 0x0D68CDF5} } ,
28476 { {0x4C472913, 0x99CCBE5C, 0xBF05DA6C, 0xF077E0CF, 0x21989F39},
28477 {0x377F8AF2, 0xC60D7636, 0x229149E7, 0x0793E881, 0x140A7A99} } } } ;
28479 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2741 a000");
28480 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2742 a001");
28481 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2743 a010");
28482 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2744 a011");
28483 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2745 a100");
28484 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2746 a101");
28485 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2747 a110");
28486 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2748 a111");
28487 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2749 a200");
28488 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2750 a201");
28489 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2751 a210");
28490 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2752 a211");
28493 static const fp12_t var_a = { { { {0xE9E73BC1, 0x60BF832F, 0x5FBA8E87, 0x80ED386B, 0x1C93BB3E},
28494 {0xD2B691EE, 0xC70F07E8, 0x6FB5718F, 0xC1C86446, 0x1941E488} } ,
28495 { {0x622095CD, 0x47851DBB, 0xA0C124DA, 0x603D4370, 0x047439F3},
28496 {0x08DA4E00, 0x8B2E9003, 0x16F87986, 0x9316200B, 0x1668A13D} } } ,
28497 { { {0x8DAA4A53, 0x04D5258A, 0x09BF8EC5, 0x26E751A8, 0x078114FB},
28498 {0xC9C488C8, 0x3E435787, 0x30A7CAE5, 0x2AD46295, 0x1F808B02} } ,
28499 { {0x02B85B86, 0x45C93C9F, 0x93BF2DA4, 0xF1C18CCA, 0x1C0BBE2C},
28500 {0xAC2F6501, 0x69DE2162, 0x9A866C03, 0x0A2773A4, 0x08CED73B} } } ,
28501 { { {0x10BDE82D, 0x4437291C, 0x1B3D1368, 0x7F0BC61C, 0x172AD452},
28502 {0x37D8EEEE, 0x66A06A9C, 0x228FA722, 0x8CC8B5FB, 0x12E3C873} } ,
28503 { {0x95B3BEBF, 0x412B8395, 0x4F1DC459, 0x63E3BC46, 0x159DFA64},
28504 {0xCBBF238D, 0xB347763B, 0xF31DA954, 0x8AE46C0F, 0x160E9491} } } } ;
28505 static const fp12_t var_b = { { { {0xEACA0FDA, 0xFA22761C, 0x281269ED, 0x5D00FFC3, 0x114EC598},
28506 {0xB6275D02, 0xDCA60993, 0x43FA2FB4, 0xF24B6ED8, 0x08E443AE} } ,
28507 { {0x6CC8D048, 0x66035E3A, 0x60282593, 0xF07B2FC9, 0x101F6F51},
28508 {0x3AA1DDC0, 0xAFA4CA92, 0xE6371425, 0xCA7889E3, 0x158E4DD4} } } ,
28509 { { {0xFD6E286E, 0x4E7B9B01, 0xBA02E3E8, 0x8C2A7230, 0x079F88BF},
28510 {0x2EC93884, 0x5322E2A7, 0x9DB6BF49, 0x28E7056A, 0x217F5A59} } ,
28511 { {0x8B2E65DF, 0x822D7D7A, 0x117C76D5, 0x04605953, 0x0F905DC7},
28512 {0xBA372034, 0x2717F482, 0x586FFF84, 0x0ADA39F7, 0x12A6D208} } } ,
28513 { { {0xE6D64960, 0x656AE195, 0x019FDBE6, 0x885F6C30, 0x0558253D},
28514 {0x563A4B6D, 0xC4DF19DB, 0xC5CCBA3E, 0xA83BF7C0, 0x08237C0B} } ,
28515 { {0x5FCEFF37, 0xCD9206F9, 0x607EE597, 0x246C3CF6, 0x1A770906},
28516 {0x31ACC703, 0xCA0B31E8, 0xD9790B5F, 0xA07763AE, 0x03EA654B} } } } ;
28517 static const fp12_t var_expected = { { { {0xFF1D2BE7, 0x669D0D12, 0x37A82499, 0x23EC38A8, 0x0B44F5A6},
28518 {0x1C8F34EC, 0xEA68FE55, 0x2BBB41DA, 0xCF7CF56E, 0x105DA0D9} } ,
28519 { {0x41A817E0, 0xFFAF1421, 0x79E3BFE4, 0x1F186F8D, 0x1855EAA5},
28520 {0xCE387040, 0xDB89C570, 0x30C16560, 0xC89D9627, 0x00DA5368} } } ,
28521 { { {0xDC8C7440, 0xD486DF28, 0x89076B7A, 0x4A133B5D, 0x23E2AC3F},
28522 {0xE74BA29F, 0x094DC980, 0xCC3BCC3A, 0xB143B910, 0x220250AC} } ,
28523 { {0x7789F5A7, 0xC39BBF24, 0x8242B6CE, 0xED613377, 0x0C7B6065},
28524 {0x3E489728, 0x60F38180, 0x7B612D1D, 0xAEA39593, 0x1A292536} } } ,
28525 { { {0x29E79ECD, 0xDECC4786, 0x199D3781, 0xF6AC59EC, 0x11D2AF14},
28526 {0xE19EA381, 0xA1C150C0, 0x5CC2ECE3, 0xE48CBE3A, 0x0AC04C67} } ,
28527 { {0x823511E3, 0x91C6D13C, 0x27E99F5F, 0xEECDDB36, 0x1F281161},
28528 {0x9A125C8A, 0xE93C4453, 0x19A49DF4, 0xEA6D0861, 0x12242F45} } } } ;
28530 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2753 a000");
28531 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2754 a001");
28532 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2755 a010");
28533 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2756 a011");
28534 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2757 a100");
28535 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2758 a101");
28536 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2759 a110");
28537 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2760 a111");
28538 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2761 a200");
28539 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2762 a201");
28540 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2763 a210");
28541 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2764 a211");
28544 static const fp12_t var_a = { { { {0x6DC7955A, 0xE974ADE2, 0xF089DF2E, 0xCF728FC6, 0x09F18A66},
28545 {0xFE236B55, 0xED561B8A, 0x0CED8D0E, 0x8FD3C9CB, 0x20CCCCBD} } ,
28546 { {0xE1BE0F66, 0xFADC8BB6, 0xF422DF3D, 0xB603B8F4, 0x0AD121F8},
28547 {0x113DBBF2, 0x42FD751A, 0xEBCA9922, 0x9D7C95D8, 0x1C292097} } } ,
28548 { { {0x2B7EF46F, 0x40466E5B, 0x082F0884, 0x27948CE2, 0x05BF1126},
28549 {0x47485385, 0x65F5C243, 0x6181B9D4, 0xC6B71385, 0x123AD053} } ,
28550 { {0x4197C53A, 0xE9BB0CB3, 0xA6D5F72D, 0x56BF2DAD, 0x0F424615},
28551 {0xE12FDD86, 0x75452BE1, 0xF40438EA, 0x452B397C, 0x07665E43} } } ,
28552 { { {0xD5030BE8, 0x0C1E9E85, 0x3B46D9FB, 0x2152BBED, 0x0E5338A8},
28553 {0x46E8E11A, 0x89AE524B, 0x5F736D1B, 0x164C3287, 0x20081422} } ,
28554 { {0xDE75B75E, 0x221F26E6, 0xCB253570, 0xA5055760, 0x1D40C7C6},
28555 {0x215CE12D, 0x43E438AD, 0x421A9CA4, 0x0F15AD2F, 0x1C68F309} } } } ;
28556 static const fp12_t var_b = { { { {0x120C52E3, 0x365FF5F0, 0x7F9A59EC, 0xFB36DA4C, 0x22FFB6E7},
28557 {0xFA1BA759, 0xD5754B3C, 0xA9AEE8C6, 0x1F17F941, 0x22860A98} } ,
28558 { {0x38FC725A, 0x4AFE5A5C, 0x33DBFC8A, 0xB4FD5946, 0x058EF6AC},
28559 {0xF2AABB40, 0x5F0F56B0, 0xAD5EF91A, 0x1EFAEA6E, 0x01702A84} } } ,
28560 { { {0x3F87B0F0, 0x7DF0BF46, 0xEBB2161A, 0x2E51BE53, 0x139BCC0B},
28561 {0x18F0F607, 0x84029771, 0xB5416C8A, 0xF948363E, 0x054A887C} } ,
28562 { {0xCD1B199B, 0x2CD6C063, 0xD6C8F520, 0xF7A6CA2A, 0x15A36912},
28563 {0x36EB662F, 0x942B0385, 0xF4655B63, 0x942351A9, 0x0579E1D5} } } ,
28564 { { {0x4BE67CA6, 0x6A4C9645, 0xA48289E6, 0x67355045, 0x0BE845E1},
28565 {0xC40FE802, 0x9101DE6B, 0x0E32E9DF, 0xB4B3F2A5, 0x0561986E} } ,
28566 { {0xC589C969, 0x5098EFCA, 0x3F6AC2E5, 0x6E71C748, 0x09B1EEEC},
28567 {0x9F973613, 0xEE0CB051, 0x00D3F775, 0x636FA25E, 0x0E95DE88} } } } ;
28568 static const fp12_t var_expected = { { { {0xA80B94D2, 0xD1420C92, 0xAA3A45E0, 0x83921160, 0x0AF2F382},
28569 {0x50581657, 0x360E24EE, 0x9C8964E6, 0x20122C6F, 0x2247E229} } ,
28570 { {0xA8C19D0C, 0xAFDE315A, 0xC046E2B3, 0x01065FAE, 0x05422B4C},
28571 {0x1E9300B2, 0xE3EE1E69, 0x3E6BA007, 0x7E81AB6A, 0x1AB8F613} } } ,
28572 { { {0x384795DA, 0xE08303B5, 0x55C7B307, 0xA8992A74, 0x1624651E},
28573 {0x2E575D7E, 0xE1F32AD2, 0xAC404D49, 0xCD6EDD46, 0x0CF047D6} } ,
28574 { {0xC0CCFDFA, 0xDB11A0EF, 0x0957C2AB, 0x0E6EBF69, 0x1D9FFD06},
28575 {0xAA447757, 0xE11A285C, 0xFF9EDD86, 0xB107E7D2, 0x01EC7C6D} } } ,
28576 { { {0x891C8F42, 0xA1D20840, 0x96C45014, 0xBA1D6BA7, 0x026AF2C6},
28577 {0x82D8F918, 0xF8AC73DF, 0x5140833B, 0x61983FE2, 0x1AA67BB3} } ,
28578 { {0x18EBEDF5, 0xD186371C, 0x8BBA728A, 0x36939018, 0x138ED8DA},
28579 {0x81C5AB1A, 0x55D7885B, 0x4146A52E, 0xABA60AD1, 0x0DD31480} } } } ;
28581 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2765 a000");
28582 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2766 a001");
28583 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2767 a010");
28584 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2768 a011");
28585 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2769 a100");
28586 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2770 a101");
28587 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2771 a110");
28588 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2772 a111");
28589 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2773 a200");
28590 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2774 a201");
28591 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2775 a210");
28592 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2776 a211");
28595 static const fp12_t var_a = { { { {0xA997FA58, 0xDECB3B99, 0xC7C0CD4E, 0x346DCA9D, 0x0F49C358},
28596 {0x00BFCB6A, 0xA2A7C914, 0x0677D53E, 0xE803964A, 0x13E78397} } ,
28597 { {0x220023B7, 0x3B830E9D, 0x029A26DB, 0x24E1719B, 0x08F5D19F},
28598 {0xAC901308, 0xAA091D67, 0xCC2937A5, 0x79FE7A14, 0x05EAC536} } } ,
28599 { { {0x879B74FD, 0x9DCBFDB8, 0x7ECFD6D5, 0xEC86121E, 0x121E9121},
28600 {0xE63C2FFB, 0x636544E5, 0x3A022A04, 0xD649E7D3, 0x231E5387} } ,
28601 { {0xB75C6916, 0xE3D83859, 0x977691EB, 0x52A6C1F5, 0x1A61E8C7},
28602 {0x549E7E57, 0xD50503A3, 0xBFAB4528, 0x6084D684, 0x011CBA27} } } ,
28603 { { {0xC13C1C62, 0x6F4539B6, 0xFBDACE8C, 0x16EFF65F, 0x0425B0F0},
28604 {0x743CD30D, 0x48754F68, 0x997751C6, 0xE85631EF, 0x167D7F44} } ,
28605 { {0xD7E88202, 0x9A45B271, 0x84EE0C9E, 0x30292EAC, 0x0F19D529},
28606 {0x41618E36, 0xEA753085, 0x207B9BE9, 0x1B63006D, 0x10B8BA3C} } } } ;
28607 static const fp12_t var_b = { { { {0x02B92A39, 0xB2558DC5, 0x303883B4, 0x44D856F2, 0x205ADBCB},
28608 {0x9A64CF61, 0x80D95B48, 0x7DAE0401, 0xA999C326, 0x175E7FFC} } ,
28609 { {0xD6AA4D81, 0xCDB324F8, 0x7DE53D3E, 0xBDA02E8F, 0x0C27764C},
28610 {0xFF7D1DBC, 0x4F159D92, 0x350472AE, 0xB2288C42, 0x19C8614B} } } ,
28611 { { {0x3BD1B41D, 0xC1AFBE77, 0x3B9E0930, 0x5EB340E8, 0x1B4AB905},
28612 {0x32729535, 0xF6320EE8, 0xE73295ED, 0x8E364580, 0x13F84C1B} } ,
28613 { {0x763E2399, 0x9B3499AA, 0x45CE06E0, 0xC181E7E2, 0x1464EE26},
28614 {0xE66B86AB, 0x15EE2F87, 0x54F1EE4E, 0x262AC39C, 0x19101260} } } ,
28615 { { {0x8732DE1C, 0x66D5BF32, 0x186D221F, 0xA0D8A565, 0x0EFD038F},
28616 {0x7589ACE4, 0xD14046D4, 0x7E77057F, 0x8ABF796C, 0x0372449C} } ,
28617 { {0x08FC1E33, 0xE37A95D6, 0xE3CA259F, 0xE65CB3FF, 0x179C619B},
28618 {0xF82CA1BA, 0xBB119CD1, 0xAE7722C9, 0x239FD064, 0x116B7D31} } } } ;
28619 static const fp12_t var_expected = { { { {0xF32F227A, 0x4AA30274, 0xD0D30A38, 0x9EEBCF91, 0x12F00790},
28620 {0xB2AB4E64, 0x3FFBC26B, 0xC21491DB, 0xEDC02F09, 0x208A239E} } ,
28621 { {0x97A62891, 0x8BFD3E44, 0xBDFFAA3A, 0x16979EF1, 0x20CF7B56},
28622 {0xF96347A7, 0x7920D474, 0xD06F8595, 0x772C49B8, 0x102383EE} } } ,
28623 { { {0x981A133B, 0xFA4993E1, 0x7C7C8E42, 0x3D292D1C, 0x1AD4F820},
28624 {0xB3C99AC6, 0x6D3335FD, 0x52CF9416, 0x4813A252, 0x0F26076C} } ,
28625 { {0x411E457D, 0x48A39EAF, 0x51A88B0B, 0x9124DA13, 0x05FCFAA0},
28626 {0xBA834A07, 0xDD4428BB, 0xA4041778, 0xE9B06ECE, 0x0C0DC7CA} } } ,
28627 { { {0x865990A1, 0x269CCF24, 0x1CB86D0B, 0x256DACE1, 0x1929CD64},
28628 {0xFEB32629, 0x77350893, 0x1B004C46, 0x5D96B883, 0x130B3AA8} } ,
28629 { {0x1B3CB62A, 0xD4F8713C, 0xDA6EA79C, 0xF922D692, 0x1B7E9390},
28630 {0x95853ED7, 0x4D90E853, 0xAB4F39BE, 0xA7198BEE, 0x234E5D0E} } } } ;
28632 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2777 a000");
28633 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2778 a001");
28634 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2779 a010");
28635 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2780 a011");
28636 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2781 a100");
28637 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2782 a101");
28638 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2783 a110");
28639 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2784 a111");
28640 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2785 a200");
28641 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2786 a201");
28642 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2787 a210");
28643 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2788 a211");
28646 static const fp12_t var_a = { { { {0xA03BC28A, 0xB1D107CC, 0xF6DEF66C, 0x2AF2183C, 0x17FA5CC5},
28647 {0x9E966771, 0x82ACACC6, 0x40FB82AD, 0x3779E63C, 0x092954C7} } ,
28648 { {0xC3DEE80C, 0x44196DC8, 0xCA390AF4, 0xABAD78CA, 0x113B28F3},
28649 {0xB5B6392B, 0xB96C1CBC, 0xEEBA40BE, 0x4E0C939E, 0x18128479} } } ,
28650 { { {0xA9AF0E1A, 0xB4B0BCC4, 0x1E6B0C93, 0x7A6FE4B4, 0x0A4D8030},
28651 {0xE37756B1, 0x2DC7A018, 0x71A3CE4E, 0x97C1295C, 0x0D869E6E} } ,
28652 { {0xF8F9B4A8, 0x93CB0DD4, 0x844B964E, 0xAE0D9FE6, 0x1D08CF22},
28653 {0xEE23FA16, 0x58214A18, 0xD47FCAD8, 0x3C94B57A, 0x19054A20} } } ,
28654 { { {0xFB3156CD, 0x2DB0EEE6, 0x81D0A189, 0x8A4150CE, 0x02D96CEC},
28655 {0x40EF1E9E, 0x698FB670, 0x0F767B4B, 0xBC860633, 0x0587521F} } ,
28656 { {0xD80828CD, 0x87F3A9B8, 0xD5F8D6AF, 0x5868EAD8, 0x10ECF450},
28657 {0x7610026C, 0x83215E99, 0xDEDDE0CC, 0xE32DBFC3, 0x1E32C214} } } } ;
28658 static const fp12_t var_b = { { { {0x6F2AFD7E, 0xFA37A244, 0x524FFE8C, 0xA770FB2B, 0x035E67A9},
28659 {0x75E7410F, 0x09C72403, 0x6F172081, 0x19119C65, 0x23A34C6F} } ,
28660 { {0xE877A52C, 0xF0BC0EBD, 0xEBA7460A, 0x43DB0F1C, 0x1BC4DF37},
28661 {0x2FA5AE4D, 0xD3A6D130, 0xF624A772, 0x8D50F452, 0x01FC138E} } } ,
28662 { { {0x55208AD0, 0xE8FE4AD1, 0xD2E8F338, 0xDD46B4F8, 0x10D0C849},
28663 {0xE99AC7C2, 0x2B553DFD, 0x5404BB4E, 0x9267F6D7, 0x1F36C0AE} } ,
28664 { {0xC0F0F6D7, 0xE84B2AB7, 0x9610E778, 0xAF7C4311, 0x055E3C3C},
28665 {0x39CF8048, 0x3AC5E770, 0x0CE15C45, 0x732E409B, 0x086A8271} } } ,
28666 { { {0x590B7F3C, 0xB2D72C8E, 0x0CB4076A, 0x97BC86DA, 0x195136E2},
28667 {0x8908F299, 0x6922BA69, 0xD9D108FD, 0xC54F7119, 0x04393D1F} } ,
28668 { {0x20A2839A, 0x91F060B6, 0x9C39CFB2, 0xAB4E053E, 0x10C74DDF},
28669 {0x79B6C06E, 0x8F4A23C9, 0x4CC25616, 0x344A1864, 0x12ED63C1} } } } ;
28670 static const fp12_t var_expected = { { { {0x3110C50C, 0xB7996588, 0xA48EF7DF, 0x83811D11, 0x149BF51B},
28671 {0x74FF78BD, 0x9712DD63, 0x0B2F22CA, 0xCDBEA5BD, 0x0987285B} } ,
28672 { {0x27B7953B, 0x718AB3AB, 0x17DC8587, 0x1728C594, 0x197769C0},
28673 {0x86108ADE, 0xE5C54B8C, 0xF895994B, 0xC0BB9F4B, 0x161670EA} } } ,
28674 { { {0xA0DED5A5, 0xE9DFC693, 0x84CCD9F8, 0x4C7F8BA1, 0x1D7DD7EA},
28675 {0x462CE14A, 0x209FB6BB, 0x56E9D39E, 0xB4AF8E6B, 0x1250FDC3} } ,
28676 { {0x3808BDD1, 0xAB7FE31D, 0xEE3AAED5, 0xFE915CD4, 0x17AA92E5},
28677 {0xB45479CE, 0x1D5B62A8, 0xC79E6E93, 0xC96674DF, 0x109AC7AE} } } ,
28678 { { {0xEE7629EC, 0x990716F8, 0xAE675ABC, 0xA1DB25DA, 0x0D89560D},
28679 {0xB7E62C05, 0x006CFC06, 0x35A5724E, 0xF7369519, 0x014E14FF} } ,
28680 { {0xB765A533, 0xF6034902, 0x39BF06FC, 0xAD1AE59A, 0x0025A670},
28681 {0xFC5941FE, 0xF3D73ACF, 0x921B8AB5, 0xAEE3A75F, 0x0B455E53} } } } ;
28683 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sub 2789 a000");
28684 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sub 2790 a001");
28685 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sub 2791 a010");
28686 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sub 2792 a011");
28687 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sub 2793 a100");
28688 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sub 2794 a101");
28689 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sub 2795 a110");
28690 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sub 2796 a111");
28691 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sub 2797 a200");
28692 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sub 2798 a201");
28693 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sub 2799 a210");
28694 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sub 2800 a211");
28697 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28698 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28699 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28700 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28701 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28702 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28703 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28704 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28705 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28706 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28707 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28708 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28709 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28710 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28711 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28712 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28713 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28714 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28715 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28716 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28717 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28718 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28719 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28720 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28721 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28722 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28723 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28724 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28725 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28726 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28727 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28728 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28729 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28730 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28731 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28732 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28734 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2801 a000");
28735 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2802 a001");
28736 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2803 a010");
28737 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2804 a011");
28738 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2805 a100");
28739 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2806 a101");
28740 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2807 a110");
28741 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2808 a111");
28742 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2809 a200");
28743 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2810 a201");
28744 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2811 a210");
28745 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2812 a211");
28748 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28749 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28750 { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
28751 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28752 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28753 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28754 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28755 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28756 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28757 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
28758 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28759 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28760 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28761 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28762 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28763 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28764 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28765 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28766 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28767 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28768 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28769 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28770 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28771 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28772 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28773 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28774 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28775 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28776 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28777 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28778 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28779 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28780 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28781 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28782 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28783 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28785 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2813 a000");
28786 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2814 a001");
28787 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2815 a010");
28788 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2816 a011");
28789 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2817 a100");
28790 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2818 a101");
28791 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2819 a110");
28792 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2820 a111");
28793 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2821 a200");
28794 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2822 a201");
28795 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2823 a210");
28796 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2824 a211");
28799 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28800 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28801 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28802 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28803 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28804 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28805 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28806 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28807 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28808 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
28809 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28810 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28811 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28812 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28813 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28814 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28815 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28816 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28817 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28818 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28819 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28820 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28821 { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
28822 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28823 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28824 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28825 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28826 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28827 { { {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D},
28828 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
28829 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28830 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28831 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28832 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28833 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28834 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
28836 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2825 a000");
28837 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2826 a001");
28838 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2827 a010");
28839 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2828 a011");
28840 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2829 a100");
28841 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2830 a101");
28842 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2831 a110");
28843 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2832 a111");
28844 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2833 a200");
28845 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2834 a201");
28846 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2835 a210");
28847 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2836 a211");
28850 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28851 {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D} } ,
28852 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28853 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28854 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28855 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28856 { {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D},
28857 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28858 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28859 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28860 { {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D},
28861 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } } } ;
28862 static const fp12_t var_b = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28863 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
28864 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28865 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28866 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28867 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28868 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28869 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28870 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28871 {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D} } ,
28872 { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
28873 {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D} } } } ;
28874 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28875 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
28876 { {0x78B4D355, 0xC4A7F564, 0x5B614943, 0x460F627D, 0x1C10E037},
28877 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
28878 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
28879 {0xD39B7F06, 0x59855F3B, 0xDDE9775A, 0x6946F968, 0x07F03FCC} } ,
28880 { {0x78B4D355, 0xC4A7F564, 0x5B614943, 0x460F627D, 0x1C10E037},
28881 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } } ,
28882 { { {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D},
28883 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
28884 { {0x78B4D355, 0xC4A7F564, 0x5B614943, 0x460F627D, 0x1C10E037},
28885 {0x78B4D355, 0xC4A7F564, 0x5B614943, 0x460F627D, 0x1C10E037} } } } ;
28887 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2837 a000");
28888 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2838 a001");
28889 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2839 a010");
28890 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2840 a011");
28891 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2841 a100");
28892 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2842 a101");
28893 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2843 a110");
28894 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2844 a111");
28895 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2845 a200");
28896 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2846 a201");
28897 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2847 a210");
28898 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2848 a211");
28901 static const fp12_t var_a = { { { {0x5F111BE8, 0x1F39E717, 0x768CAB90, 0x04EE8A96, 0x19241DC6},
28902 {0x35C04FC0, 0xC1F35253, 0x6DADAE17, 0xD437D714, 0x165FF753} } ,
28903 { {0xA3D9286F, 0xF83F8D91, 0x554E2751, 0x7AAC91D7, 0x0EAF8039},
28904 {0xD65D5221, 0xFBBDE208, 0xB78BEABC, 0x7F057F08, 0x0DFF717A} } } ,
28905 { { {0x9DAB9FB9, 0xA2CC8591, 0x643A93E4, 0xFEF95DF0, 0x1E43B627},
28906 {0x37B9CE8F, 0x5AB007CF, 0x9A634A58, 0x405A9984, 0x1959E6B7} } ,
28907 { {0x61B32DA7, 0x42A720F2, 0x8B03A4BE, 0xE4EC5068, 0x1B5DD366},
28908 {0x0E941BAC, 0x873CE719, 0x54D898E9, 0x1B605FC7, 0x01185590} } } ,
28909 { { {0xA5240AC6, 0xA1F34012, 0x1ED0DDA8, 0xFA570685, 0x04BEFFA9},
28910 {0xABD3147F, 0xD1A2F6B6, 0x4A4CC358, 0xDCA88942, 0x099E5184} } ,
28911 { {0x56CCD9E7, 0xEC12DAF9, 0xA2B787EC, 0x923FA726, 0x0DB1C59A},
28912 {0xC2155103, 0xFA575AA1, 0xC4A233EA, 0xB7ABECAF, 0x1BE7A057} } } } ;
28913 static const fp12_t var_b = { { { {0xF8CDB9F5, 0x11EA4A7A, 0x956A17FA, 0xF11FE45B, 0x072BC1B4},
28914 {0x2C2BBA73, 0x3A83A679, 0xE540E258, 0x6FF64921, 0x090DC86E} } ,
28915 { {0x38D42303, 0x14E14787, 0xEDEADB69, 0x8952B629, 0x12DB4A36},
28916 {0x548BF8A7, 0x06951FE8, 0x031789F9, 0x07B29B13, 0x0F823ACD} } } ,
28917 { { {0xCD0EEDA6, 0x0FC5AA39, 0xAD684F7D, 0xE2DF1BBA, 0x21BA85EC},
28918 {0x880F655F, 0x88C944E9, 0x1125C63A, 0x8411297E, 0x1E736787} } ,
28919 { {0x0D4554F3, 0x9D677B82, 0x45D3D303, 0xB603C802, 0x101221B9},
28920 {0x9762B113, 0xB84696E4, 0xA346FEE1, 0xD7595CF4, 0x0016242D} } } ,
28921 { { {0xA1300DAD, 0xAEA51F68, 0xA81E2B71, 0x0F6CBEEB, 0x23BD5490},
28922 {0x2EDBA97B, 0xA0BFCD54, 0x1B90D7E2, 0xE65B5A21, 0x1354FC2F} } ,
28923 { {0xF34732E5, 0x11B875CA, 0x81954679, 0x082CE391, 0x1743165B},
28924 {0x5CD3648A, 0x744531FA, 0x1F61EB29, 0x44FF13B1, 0x1F907C4E} } } } ;
28925 static const fp12_t var_expected = { { { {0x96FAC42F, 0x9C21D116, 0x6051F8CC, 0x059E47AB, 0x15426339},
28926 {0x05EB01D6, 0xDC46E52E, 0x3CDF77CE, 0x6C7D9A47, 0x016D6611} } ,
28927 { {0x5B493417, 0x08C77E4F, 0x1094D636, 0x7C453AA5, 0x0F84EB53},
28928 {0x76C3C2A8, 0x79F64A45, 0xB6AF1EA5, 0x30A33F3F, 0x19240786} } } ,
28929 { { {0xAF6B3044, 0x38928520, 0x80E4DB89, 0xAE27BFDB, 0x040399F7},
28930 {0x4A683F07, 0x99ADFB51, 0x73CABDC0, 0x4772DC7B, 0x1CD19888} } ,
28931 { {0x42FDBB04, 0x63597F5A, 0xCBEB468A, 0xAEF30203, 0x0006C69B},
28932 {0xAD697EB4, 0x7D9E1016, 0xA3E36756, 0x755C0A22, 0x0FA7AEBC} } } ,
28933 { { {0x33C31D57, 0x6A0F2675, 0xA55CF86F, 0x6131F766, 0x1B7BA94A},
28934 {0x0004C78C, 0xEAD59488, 0x4819BD1D, 0x06679D04, 0x1ED00351} } ,
28935 { {0xBF24A334, 0x09D210E7, 0x1092A5A3, 0x5C711357, 0x1E739C9C},
28936 {0x89892336, 0x8AE7C372, 0xACF51EE0, 0x23B34290, 0x19D0B73C} } } } ;
28938 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2849 a000");
28939 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2850 a001");
28940 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2851 a010");
28941 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2852 a011");
28942 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2853 a100");
28943 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2854 a101");
28944 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2855 a110");
28945 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2856 a111");
28946 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2857 a200");
28947 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2858 a201");
28948 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2859 a210");
28949 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2860 a211");
28952 static const fp12_t var_a = { { { {0x9004B997, 0xD8644CC1, 0xE882CF05, 0xA4785402, 0x181229FA},
28953 {0xC934585C, 0xC5A497D8, 0x97646222, 0xBBC39F3E, 0x135A0744} } ,
28954 { {0x10DFD82D, 0xE6B25A84, 0xCB0E3247, 0xDFAD31E4, 0x1302E293},
28955 {0x6DFC3A1A, 0x0046A5D6, 0xA6D7A3B5, 0xEAF1CDEE, 0x19A1B13E} } } ,
28956 { { {0x8C122457, 0x7484CC91, 0x7C1B0805, 0x468419D3, 0x19355B1B},
28957 {0xC6B6C149, 0x74839FC7, 0x403E1C87, 0xF7B302D6, 0x079EC77C} } ,
28958 { {0x6CF1C56D, 0xD2EABA2F, 0x721DECC3, 0xBCFA6511, 0x08CA79E7},
28959 {0x869F2C49, 0x7FBAAFA9, 0x6AB84491, 0xC292FF6C, 0x04EE4A46} } } ,
28960 { { {0x3A2BE412, 0xB95633AD, 0xE9DF198B, 0x17CC961C, 0x1F09B6C4},
28961 {0x70BBCA72, 0xB41E0016, 0xBA06ED09, 0x72A8A8C6, 0x0CAF084C} } ,
28962 { {0x44485C41, 0x979D5AA4, 0xEA13ACF6, 0x4EF52E82, 0x192B025C},
28963 {0x34BED8DB, 0xA0F61403, 0x211887CC, 0x24D8B8E7, 0x1F1EB2E4} } } } ;
28964 static const fp12_t var_b = { { { {0x667EC607, 0xF885096D, 0x651AD4C2, 0x670DB515, 0x07B939A5},
28965 {0x6A584D22, 0x2DAD49F2, 0x59FE00B1, 0x7C51C160, 0x06BD59D4} } ,
28966 { {0x4DF05B64, 0x9DA1AF96, 0xE7683E4C, 0x137C3CF5, 0x0117402A},
28967 {0xE176E12C, 0x2A9FB0D6, 0x9CA7AC9F, 0x72DC6F40, 0x214B8A99} } } ,
28968 { { {0x1258DCAC, 0xE7C4CE4F, 0x22723467, 0x33306D30, 0x0D3DA85F},
28969 {0xAB68B726, 0x58A477AE, 0x748D3665, 0x46D2DC38, 0x1E163D41} } ,
28970 { {0x3E0C02D9, 0xC0B0797A, 0x6925D392, 0x8D24D777, 0x1E5D8BA5},
28971 {0xF3DE4314, 0x9190EE7B, 0x906B3DF4, 0x2A64091C, 0x087FE6F7} } } ,
28972 { { {0xD4A64558, 0x63307CD3, 0x49A767EE, 0xB96B4774, 0x1CD872E6},
28973 {0x836BB820, 0x0917ADFE, 0x0E0530FD, 0xAF2CB263, 0x1618E31E} } ,
28974 { {0x030B37B7, 0xAE939995, 0x612FDDBF, 0xC7100951, 0x1BA10231},
28975 {0xF6412D56, 0xE48492B1, 0x8C33E165, 0x17A3FBF2, 0x141E0D50} } } } ;
28976 static const fp12_t var_expected = { { { {0x91D10057, 0xA33E2EB4, 0x0BE6857A, 0xDFC1C52D, 0x20E9898E},
28977 {0xBD98DDB4, 0xE2C1403E, 0x55E01452, 0xA18D10FA, 0x13B13416} } ,
28978 { {0x4852158D, 0x4C3BE688, 0xD3E88F39, 0xECE63E51, 0x1CF49935},
28979 {0xCE8F1EA3, 0xADC2670C, 0xD2F54348, 0x0300EF1F, 0x0B82DCA2} } } ,
28980 { { {0x04124405, 0x93BD3049, 0x18D53878, 0xE5BB2FC2, 0x11720076},
28981 {0xE0520818, 0xC8D3C8FB, 0xE4445BE6, 0x1F227DD5, 0x0AFDE04D} } ,
28982 { {0x18DB33B9, 0x9DA98630, 0x9D7347AA, 0xAF87B093, 0x0D906B3F},
28983 {0x971BBAD2, 0x98048C65, 0x76D02E27, 0xBC8FEA07, 0x230BE3A5} } } ,
28984 { { {0x94457F82, 0x5F49D93C, 0x92CFC2C7, 0x06317991, 0x0C96435B},
28985 {0xA6DB7E9A, 0x2A261087, 0x324B6C27, 0xE9577D96, 0x0665324D} } ,
28986 { {0xA7A1F59E, 0x07E61AC6, 0xF840CFAD, 0x231146AD, 0x04A086E1},
28987 {0x09AE2DE6, 0xC0F7F076, 0xAECC2A24, 0xBCED2DE2, 0x0793567A} } } } ;
28989 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2861 a000");
28990 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2862 a001");
28991 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2863 a010");
28992 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2864 a011");
28993 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2865 a100");
28994 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2866 a101");
28995 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2867 a110");
28996 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2868 a111");
28997 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2869 a200");
28998 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2870 a201");
28999 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2871 a210");
29000 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2872 a211");
29003 static const fp12_t var_a = { { { {0xE3E82165, 0xBFC5B098, 0x5A92069E, 0xE6741C60, 0x132450AF},
29004 {0x0C9E1466, 0x08D230F1, 0x49B478E4, 0x5A489E11, 0x19AD5E49} } ,
29005 { {0x5569768D, 0xF1780F60, 0x57D8CBCB, 0x7711A453, 0x1C065F92},
29006 {0x45F67FCB, 0x0A45E006, 0x999E67AF, 0xE349A077, 0x12C16925} } } ,
29007 { { {0x9BC1A24D, 0x25F1B058, 0x32DE2B65, 0x96A0294B, 0x1FF7C775},
29008 {0x91BF2521, 0x2CA65289, 0x906528A3, 0xA3AC51AF, 0x05CFC180} } ,
29009 { {0x55F4F390, 0x2E327E68, 0xF019B508, 0x922C2658, 0x202CF4D2},
29010 {0x55883F85, 0xF9E65DB6, 0x7BFB57D1, 0xF96F8D7C, 0x15B96303} } } ,
29011 { { {0x5793B941, 0x5159A24E, 0xE305E969, 0x06609573, 0x09C0F0CE},
29012 {0xC62B5745, 0x05818D3F, 0x017D85C3, 0x161A79C4, 0x0080DD58} } ,
29013 { {0x230459B1, 0xAE1F465F, 0x7D3060DF, 0xAE429E4D, 0x1F892A41},
29014 {0xAFE47978, 0xC38C4ED7, 0xA6CF14CF, 0x04BA31A6, 0x17049C79} } } } ;
29015 static const fp12_t var_b = { { { {0xA0C47259, 0x27ADD353, 0x4C56EA3F, 0xDDF67507, 0x1D9B40FE},
29016 {0x9585335B, 0xAB9D4915, 0xBE87CAB6, 0x776F3E58, 0x08E529DC} } ,
29017 { {0x732E8C2F, 0xDA29D7A2, 0xCE65397D, 0x401F7AE4, 0x21EFE4F4},
29018 {0x126AD33D, 0x8A2E1845, 0xE498EC6E, 0x5322891E, 0x1468C1A2} } } ,
29019 { { {0x7767FA07, 0xAC395F20, 0x5DF24BA6, 0xDF9AEBD3, 0x1200E22D},
29020 {0x99A5F855, 0x988A731C, 0xD74CCC58, 0x26FAED38, 0x11499119} } ,
29021 { {0xA4EDF59A, 0x38B458EB, 0x1BF985A5, 0x2B812669, 0x0E313D91},
29022 {0x7C26139A, 0x1A3161B3, 0x886ED3E8, 0xDF53B31B, 0x197CE91D} } } ,
29023 { { {0xD6DFE254, 0x56EE7C50, 0x9D2E9060, 0xBA6EA9DA, 0x122BE654},
29024 {0x391D671E, 0x94DF4DB9, 0xBE1FED4C, 0xDB1EA2E8, 0x0B3F8E39} } ,
29025 { {0x390F02D8, 0xF63FAB08, 0x610AE4D5, 0x16A7E917, 0x1AFB5F67},
29026 {0xF034BA24, 0x1995C3A3, 0xE07B856E, 0xAA68EFAA, 0x10344B68} } } } ;
29027 static const fp12_t var_expected = { { { {0x0656F9BB, 0x684F8710, 0x4AC2B8C8, 0x458B8E6A, 0x04016685},
29028 {0x97A8749D, 0x52A38A2E, 0x46129CE7, 0xF934CB34, 0x09913395} } ,
29029 { {0x7A3FF994, 0xF47BA5BF, 0x8D1CB716, 0xA7DCEA21, 0x060C5634},
29030 {0x161B5F41, 0x51B15643, 0x5C0AD58A, 0x51185962, 0x17DD0524} } } ,
29031 { { {0x5B0D9FFB, 0x0B8080EF, 0x74BD12F4, 0x9BAB2FAA, 0x0A34072B},
29032 {0xC3DCF46E, 0x10EDA7F0, 0xE839DAB9, 0x1C45B300, 0x192B592D} } ,
29033 { {0x89FB2BB2, 0x5F270119, 0x183B369E, 0x469AC6F3, 0x01F58F22},
29034 {0x345EFBCE, 0xD754FE12, 0xA1479E64, 0xDB3697C9, 0x0CD315D2} } } ,
29035 { { {0x46DCB851, 0x58FE876B, 0x0251205D, 0xD1AA8A58, 0x16309CE1},
29036 {0xB3B6E9F1, 0x6371D480, 0x97D60C61, 0xD96A2E88, 0x12C65F89} } ,
29037 { {0xFA20F1C3, 0xBD5B59B6, 0x4C50B542, 0xBAFDBAAF, 0x008F3B9C},
29038 {0x94612C1A, 0xD69F9132, 0x02C97DA9, 0x4560C19E, 0x204055AD} } } } ;
29040 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2873 a000");
29041 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2874 a001");
29042 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2875 a010");
29043 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2876 a011");
29044 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2877 a100");
29045 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2878 a101");
29046 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2879 a110");
29047 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2880 a111");
29048 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2881 a200");
29049 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2882 a201");
29050 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2883 a210");
29051 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2884 a211");
29054 static const fp12_t var_a = { { { {0x87E92DEB, 0x40F9C781, 0x36BC7229, 0x1DD371F4, 0x07B50AFB},
29055 {0xFFE67410, 0xBA30FB64, 0x741BFFDB, 0x17E0277F, 0x129CCF41} } ,
29056 { {0xDD48DCA4, 0xB374C166, 0x6558AD99, 0x174042B5, 0x0B4873A6},
29057 {0x98C8ACD4, 0xBFF83A45, 0x7EC090A3, 0xE7250918, 0x1065BAF1} } } ,
29058 { { {0x47A87063, 0x098EAF31, 0x530872C5, 0xC2FB56BA, 0x1D0CC224},
29059 {0xF0B86552, 0xEFD090C2, 0x8B50112D, 0xB4CAB42C, 0x0E5E8B83} } ,
29060 { {0x65D177CF, 0xB8F09E29, 0xA5753835, 0x495A8ADD, 0x1E7DEEE8},
29061 {0x7688236A, 0x153ED3EB, 0xDA981F97, 0x7EA682F4, 0x1CFEC9D7} } } ,
29062 { { {0xF7AA189A, 0x12721AAE, 0xF9E90B18, 0xAC7B3BF2, 0x0DF8C931},
29063 {0xB0359DFF, 0x62503945, 0xA7C2E85B, 0x605CF608, 0x1B63400F} } ,
29064 { {0x0A845872, 0xA4208199, 0x91FEB2E9, 0x4F2F051B, 0x15E29E45},
29065 {0x858F6E89, 0x9CD41562, 0xAEA0CD54, 0x5EBDE15C, 0x00B47F84} } } } ;
29066 static const fp12_t var_b = { { { {0x0B368AB2, 0x1D55BA66, 0x6B8E8496, 0x7B3BCC26, 0x019E9118},
29067 {0xFF710DF7, 0xE0ABAAAC, 0x2D0197D7, 0x2F5758F6, 0x00E495C6} } ,
29068 { {0x6FBDB316, 0x5D50FB57, 0xAE0CD021, 0x2DBF9B12, 0x116F0982},
29069 {0xE9697D3F, 0xB377FE7B, 0x9831A71C, 0xE1DF8B63, 0x0F702C7C} } } ,
29070 { { {0x7B3BB7E1, 0xCC8D0F00, 0x14C99EE9, 0x4DD76ECE, 0x123022F5},
29071 {0x2AC55B92, 0x33D419B4, 0x6EBEE2E8, 0xE7AE0723, 0x20F87D6F} } ,
29072 { {0x9D142FC1, 0x951B996B, 0x5272A24A, 0xD50BC800, 0x0A4E8FAB},
29073 {0x9AFBE0B9, 0x4ED7B857, 0x3FCBB97A, 0x836CD92E, 0x0F9991AC} } } ,
29074 { { {0x07EE7B11, 0x1D48CDF1, 0xD6C86254, 0x903B6666, 0x0B8138FA},
29075 {0xC526244C, 0x299BC1F7, 0x7C4824F8, 0x6A509197, 0x1632B018} } ,
29076 { {0xB1262A0C, 0x938407C3, 0x1A27BAB6, 0x6476A7F7, 0x049C572B},
29077 {0x717DFE5C, 0x498E7A62, 0x3E2A8DF4, 0x719853A2, 0x1B15953E} } } } ;
29078 static const fp12_t var_expected = { { { {0x72A30D66, 0xD0727831, 0xAB841FCB, 0x9EDA149B, 0x15E86E5E},
29079 {0x099313E5, 0x47691C7D, 0xAE25A237, 0x06BEC9C2, 0x01ED50F3} } ,
29080 { {0x8FF61E42, 0x4FD0BF21, 0xE8EE5C6A, 0x41D0DE6C, 0x1BEDB70C},
29081 {0x5CDC888F, 0x685AB917, 0x07953CE5, 0xF5751C14, 0x20F90971} } } ,
29082 { { {0x994F7404, 0xBA439250, 0xEF659B60, 0xBCC2F61D, 0x078B321B},
29083 {0x85385663, 0xBE791388, 0x3973D91F, 0x71A031B9, 0x08F744AC} } ,
29084 { {0x0B56F2BE, 0xD20BB784, 0x951F0064, 0xBB10D702, 0x132A0C49},
29085 {0x6B15438F, 0xDF40C5C5, 0x7580F442, 0x764E2823, 0x22FF91A2} } } ,
29086 { { {0x6C916153, 0x94BABFFC, 0xBB95E2FC, 0x2FB85248, 0x225296FC},
29087 {0x03FF1A3A, 0xD560ADC8, 0x259991F3, 0x13D33FEB, 0x111D16B2} } ,
29088 { {0xB3DC2186, 0x819BBAB0, 0x6735C461, 0xD9095D6E, 0x0BFDA73E},
29089 {0xAB3A2C82, 0xA206377B, 0x35831E92, 0x36BACA9B, 0x096EEAE3} } } } ;
29091 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2885 a000");
29092 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2886 a001");
29093 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2887 a010");
29094 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2888 a011");
29095 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2889 a100");
29096 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2890 a101");
29097 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2891 a110");
29098 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2892 a111");
29099 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2893 a200");
29100 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2894 a201");
29101 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2895 a210");
29102 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2896 a211");
29105 static const fp12_t var_a = { { { {0xDAE70726, 0xBF34434A, 0xD1E68D08, 0x484B2F3B, 0x16253ACB},
29106 {0xC350F83B, 0x339EB969, 0x54DA0608, 0xB9B11229, 0x0EB60B77} } ,
29107 { {0x1843BE98, 0x0D1A0C56, 0xDDEE126B, 0x64676790, 0x04FCDADC},
29108 {0x64A11308, 0x314F69E9, 0xBE842B4F, 0xB5A47312, 0x0ED0486F} } } ,
29109 { { {0x6D0DCF51, 0x4848776F, 0xD4AF2403, 0x66BE2AE0, 0x0B569FC7},
29110 {0xE688EF64, 0xE9529AE6, 0xDAA597C2, 0x72CCB3CB, 0x20858937} } ,
29111 { {0xCBD8845A, 0xEB547505, 0x6E8A55AD, 0x91D15553, 0x20B4EC1B},
29112 {0x660056FA, 0xCFF3E178, 0xC4D1D118, 0x81B81020, 0x0DCB952A} } } ,
29113 { { {0x45A99B8C, 0x71541166, 0x8999E2A2, 0xD7CB5045, 0x0ACDA8DB},
29114 {0x6A495AC4, 0x65E4A8CE, 0x20EAB254, 0xB6ECEB2B, 0x1EDDFB6C} } ,
29115 { {0xA0D4B907, 0xF1D9FFF8, 0xF812B111, 0xFBA8FF90, 0x14C3166E},
29116 {0xA2048250, 0xBE077116, 0xAE467635, 0x8E048929, 0x0C40CC66} } } } ;
29117 static const fp12_t var_b = { { { {0xE6E3FB8D, 0x313896FE, 0x1B847B35, 0xAB4249D7, 0x1413B92B},
29118 {0xE5F74E98, 0xBA8E0CFA, 0xD27E8323, 0x9A81B513, 0x04453156} } ,
29119 { {0xDCF685BC, 0xF06A419E, 0x748C9341, 0xF3775CE7, 0x13972902},
29120 {0x5047E114, 0x6EB60C97, 0xE338EBED, 0xF23D2FC8, 0x132DC827} } } ,
29121 { { {0x3CB07F94, 0xE9F14647, 0x55667C4D, 0xE6C631D7, 0x1F814FF6},
29122 {0x99E5DDAB, 0xBB94683A, 0x5B7A99E1, 0x81A9B4EC, 0x12B126F0} } ,
29123 { {0x37BFEAAC, 0xF8D6A858, 0x4681EA58, 0x4B252EAF, 0x070B3D7B},
29124 {0x5DDE93BF, 0x8F1AFF26, 0xE5BFBB8A, 0x808E56CA, 0x06ADA9E7} } } ,
29125 { { {0x40B0EDE0, 0xAB5E1FFB, 0xD76CEDC6, 0x9C3977FE, 0x00C35C1B},
29126 {0x693A77E6, 0x9F02F30C, 0x7B2A0C6B, 0xF073FCB8, 0x129E442F} } ,
29127 { {0x740087DD, 0xC3633EF9, 0x826130B8, 0xDB6CD8B9, 0x0F95A359},
29128 {0x01199BA1, 0x53B9C1FF, 0x337E5778, 0xF9384E88, 0x09C16A7F} } } } ;
29129 static const fp12_t var_expected = { { { {0x6D8F1DC0, 0xF98CE5C8, 0x23ADAD79, 0x86192792, 0x17EE693A},
29130 {0x47197AC8, 0xEFC0673E, 0x0680A858, 0xD54F0C3D, 0x20F307E6} } ,
29131 { {0x932CA12F, 0x065BD04F, 0xC8B375AF, 0x99017FF2, 0x22EBB474},
29132 {0x9727C2B0, 0x43C6D098, 0x7608FBA5, 0x5DBFBE7C, 0x089A40C5} } } ,
29133 { { {0x62D01AF4, 0xE68C2CC4, 0xB2FDC9CA, 0x62CB1D0E, 0x19172791},
29134 {0x283F9CE4, 0x8200F64B, 0x30834B50, 0xBDE861E6, 0x10334442} } ,
29135 { {0xF85C2A6C, 0xE636D322, 0x6D4EB940, 0x89AFDE01, 0x09D9EBD8},
29136 {0x491469AE, 0x0F7341F4, 0x10652FED, 0x9C4E1413, 0x113418AA} } } ,
29137 { { {0x819248BD, 0x58E2DF0B, 0xA2D68408, 0x79980F73, 0x06FE58E5},
29138 {0x7307998B, 0x961BD9A4, 0xADC12C1A, 0xA70BF296, 0x23865399} } ,
29139 { {0x07683290, 0x5E304477, 0x813CD6A9, 0x96C45DB8, 0x20FF63C2},
29140 {0xB8B491D1, 0xEFDC9F11, 0xB487598A, 0x4D618B83, 0x218B6BEB} } } } ;
29142 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2897 a000");
29143 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2898 a001");
29144 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2899 a010");
29145 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2900 a011");
29146 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2901 a100");
29147 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2902 a101");
29148 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2903 a110");
29149 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2904 a111");
29150 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2905 a200");
29151 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2906 a201");
29152 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2907 a210");
29153 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2908 a211");
29156 static const fp12_t var_a = { { { {0x3D3B9670, 0x48B7B133, 0x89E33E68, 0xA1EECBC6, 0x0E02D8C2},
29157 {0xDE3AC81F, 0x2839E266, 0x6453B177, 0x456C66A2, 0x000A0438} } ,
29158 { {0x68FA5300, 0xF88A365B, 0x28B06E36, 0xDFC9271D, 0x03BA1E61},
29159 {0x9E03221D, 0x4CC37BCD, 0xBEAF5858, 0x52C35247, 0x21C3D68F} } } ,
29160 { { {0x5FB7F1DA, 0xB2DCFC9F, 0xD9AF2F12, 0x766CA3AD, 0x224510A7},
29161 {0xED539C55, 0x6E99A636, 0x599698F5, 0x80D02583, 0x12314A16} } ,
29162 { {0xEB297B1D, 0xFFCA2469, 0x8B63D36F, 0x93C1BDDB, 0x1A15548D},
29163 {0x3C103523, 0x4F1D2431, 0x2BDA9F85, 0x424A756A, 0x0096723B} } } ,
29164 { { {0x82C886CA, 0xED31E049, 0x5F7C72F9, 0x72F69DDF, 0x0341DA20},
29165 {0xC829D990, 0x6E6052C7, 0x54A6632E, 0x44B9E72F, 0x004698BE} } ,
29166 { {0x98921083, 0xFCA12099, 0x34070D63, 0x9A826733, 0x0193DA8F},
29167 {0xE068C43D, 0x70C5B8CB, 0x0DFEBD65, 0xFD78B7CA, 0x051DC6CA} } } } ;
29168 static const fp12_t var_b = { { { {0xE7050401, 0x39AA4EC9, 0x01905D04, 0x55B5DAF0, 0x0FFF1F34},
29169 {0x174BB4F0, 0x2B5CDCD1, 0x88357F44, 0x3DEC1F05, 0x089682ED} } ,
29170 { {0x4421BDA1, 0x6F1CB6BF, 0x90B31F3B, 0x79C9A7AC, 0x0D03097F},
29171 {0xD4157442, 0x3DE0E192, 0xE588AFDD, 0x140F7EC9, 0x04D42883} } } ,
29172 { { {0x4BDFF3A0, 0x9C376E3B, 0x1591E23B, 0x6C033FDA, 0x11FD2687},
29173 {0x5E601CE0, 0xA2669ECA, 0x88F7D67D, 0xE15F4D14, 0x21EECDB0} } ,
29174 { {0xC3DF9038, 0xA7FAD74E, 0xA1320ECA, 0xB4908B46, 0x13EB051F},
29175 {0xA48E6C7E, 0x057F03F3, 0x7BB1244A, 0xC5B48561, 0x21FD3FF1} } } ,
29176 { { {0x60C09FEB, 0x3656E401, 0x45AF714B, 0x4A8A7A94, 0x0A74733A},
29177 {0x54B9C7C5, 0xB4010312, 0xC3193679, 0xBAB47394, 0x1688E7AC} } ,
29178 { {0xA9381449, 0x0DC9DA63, 0x8E973F8C, 0xF522796A, 0x01EB0C2A},
29179 {0xECC4146E, 0x876FDC25, 0x4D78C1D4, 0xC6964A73, 0x17AFDBC7} } } } ;
29180 static const fp12_t var_expected = { { { {0x3DCDC089, 0x3AD232D7, 0xF56632B2, 0x10B44A7A, 0x04CF3F03},
29181 {0xB623E348, 0xEC07A8DD, 0x40AF0FD9, 0x2A600EF0, 0x09D85735} } ,
29182 { {0xC2E9CFBF, 0x6F4B230F, 0xB1E6BBDB, 0x8B93EEB3, 0x1400EA40},
29183 {0x6A539518, 0x020FA210, 0x2F0621FF, 0x34AC8849, 0x0BF322D3} } } ,
29184 { { {0x1046AFE8, 0x5CDF9A16, 0xB20B7A9F, 0x5386E61C, 0x1BFC2CD8},
29185 {0x071D5388, 0xFE63D20D, 0xCB66079C, 0x558FC4DC, 0x11AC80E0} } ,
29186 { {0x1CD4E188, 0x0536AB1C, 0x9744B00D, 0x0D16108E, 0x08BE8728},
29187 {0x3B7C67E1, 0x4805AF90, 0x9663C7CD, 0xC60D71BE, 0x132D1E7F} } } ,
29188 { { {0x69E9A2F4, 0x54B4846F, 0xFD59CF02, 0xCE9B771A, 0x1C7FAE3E},
29189 {0xC3E54341, 0xC7FA2E4D, 0xF0D17768, 0x23047B20, 0x13CE812D} } ,
29190 { {0x124EBF23, 0xEFD4B0B9, 0x0CE35805, 0x56CDE7C5, 0x00F2F2FF},
29191 {0xC5A37E33, 0xFC7A0908, 0xF1BAD15B, 0x9AB16C4B, 0x12B25789} } } } ;
29193 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2909 a000");
29194 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2910 a001");
29195 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2911 a010");
29196 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2912 a011");
29197 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2913 a100");
29198 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2914 a101");
29199 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2915 a110");
29200 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2916 a111");
29201 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2917 a200");
29202 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2918 a201");
29203 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2919 a210");
29204 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2920 a211");
29207 static const fp12_t var_a = { { { {0xF9D0BCED, 0xDDEEAFA5, 0xA37D3399, 0xC869EC5C, 0x0B5B53AB},
29208 {0x250E5036, 0xE4AD2226, 0xC6A25103, 0x00E36296, 0x08A2CED4} } ,
29209 { {0xB8924BE9, 0xAF6EB1E2, 0xC63A2635, 0x361F0C55, 0x09B2791A},
29210 {0x78A844B6, 0xED3DA0DC, 0x806F554F, 0x580489A1, 0x0EC0B160} } } ,
29211 { { {0xAB3ABFBF, 0xF4420891, 0x6ECDA877, 0x0F903C7E, 0x14C54D39},
29212 {0x23E15823, 0x32B644B9, 0x0D4950F7, 0x04396B11, 0x1FA3B702} } ,
29213 { {0x3CD0D5FC, 0x22E715AE, 0x67022E9C, 0xE7CC0C46, 0x14AC1C90},
29214 {0xD621CD69, 0xAA76B4D0, 0x36EACF57, 0x819270BD, 0x1ACF92C7} } } ,
29215 { { {0x1C3255CA, 0x32068DBC, 0x9993D162, 0x0B3C4041, 0x02CF5D53},
29216 {0xBD4ACDBF, 0x30C30BA0, 0xE3647057, 0xC76CF3C1, 0x0C664599} } ,
29217 { {0x6CAD685E, 0xE7CB0933, 0x14F8BEDA, 0x361FBE30, 0x0E4A7E94},
29218 {0x32B115FB, 0xA9D4B85F, 0xE65EA46B, 0xEABF341C, 0x11B2925F} } } } ;
29219 static const fp12_t var_b = { { { {0xF2D09091, 0xFCD50D74, 0x28D56FE8, 0x1D424D57, 0x179B7315},
29220 {0xC2BEDA23, 0x801437B6, 0xE2AC158A, 0x06251964, 0x07CA8C67} } ,
29221 { {0x0B122474, 0xC5E3A5A4, 0x94462A16, 0xF390D2DA, 0x06264EF2},
29222 {0x5FB6F753, 0x25788C32, 0x805379C8, 0x1A626380, 0x03337153} } } ,
29223 { { {0xA911C28C, 0x28E0FF79, 0xFE65F454, 0x6442E68D, 0x23BCB6E7},
29224 {0xB14BC1ED, 0x3A28B9CA, 0x72648598, 0x0194BC74, 0x2310D385} } ,
29225 { {0x64F53D9F, 0x2AE24F12, 0xB4A3B65A, 0xC18E1D1D, 0x11576663},
29226 {0xCFEA4381, 0x56238513, 0x5B260BD2, 0x9E3B1C5C, 0x18762D7A} } } ,
29227 { { {0x02A43EAA, 0xE59F6C3B, 0xF29705C2, 0xBD5C21BD, 0x0055E756},
29228 {0x8AAA7750, 0x2C23D229, 0x50555B8F, 0x5B4851D5, 0x1E70ADA4} } ,
29229 { {0x3438CF3A, 0x0C02AA45, 0xB14947E5, 0x61DD38C8, 0x1829D29A},
29230 {0xDA6408CF, 0xF4CC2D4A, 0x09F801E6, 0x7A27B800, 0x1079E3C2} } } } ;
29231 static const fp12_t var_expected = { { { {0x1A388942, 0x544316B3, 0xD79C03B5, 0x1A64C606, 0x018D999C},
29232 {0xC71FF9D7, 0x3953C941, 0x3890474D, 0x7911E36B, 0x0C33760D} } ,
29233 { {0xE4256270, 0xFE2934EB, 0x9422464D, 0x591E00C6, 0x223C68EA},
29234 {0x28C9455C, 0xC8E4B51C, 0xC98AFF4F, 0x3078CE53, 0x13130B24} } } ,
29235 { { {0x2939D740, 0x33705DCA, 0xA13D13E2, 0x1655430D, 0x09A65246},
29236 {0x9DACF420, 0x83D3D9E1, 0xEC3537EB, 0xCEE4A54B, 0x07BCA858} } ,
29237 { {0xE66D3B41, 0xFD4EA182, 0x1559CDA5, 0x1FA7F1C8, 0x17C32D26},
29238 {0xB53377B8, 0x6337B759, 0xB8A36943, 0x5C463A91, 0x0AB534FB} } } ,
29239 { { {0xD13EA549, 0xE637CF4C, 0x46A03013, 0xB4D689B2, 0x108EA706},
29240 {0x1BAA8460, 0x1166DF02, 0xE8FF6137, 0xD5D58426, 0x21270A52} } ,
29241 { {0x595E7EF7, 0x2DCC84FC, 0xA9B081A1, 0xB3637BD1, 0x1EB560CE},
29242 {0x203833AC, 0x2F1B7F25, 0xFEA4110E, 0x1FDDC9F1, 0x01A65A1F} } } } ;
29244 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2921 a000");
29245 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2922 a001");
29246 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2923 a010");
29247 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2924 a011");
29248 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2925 a100");
29249 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2926 a101");
29250 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2927 a110");
29251 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2928 a111");
29252 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2929 a200");
29253 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2930 a201");
29254 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2931 a210");
29255 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2932 a211");
29258 static const fp12_t var_a = { { { {0xA76AF34F, 0x2D682029, 0x1AB8554E, 0x3A683F80, 0x115287D7},
29259 {0x02A8BA63, 0x12A0B5BE, 0x1C51A0AF, 0xCDD30F53, 0x1C02BB62} } ,
29260 { {0x328394E5, 0x193C4ECB, 0xADABB11F, 0x703D1008, 0x1111B858},
29261 {0x979D4DCB, 0x423D39FC, 0x27715E6C, 0x7D5F2F87, 0x14DE202A} } } ,
29262 { { {0x802BC3A4, 0xFC3F22D5, 0xD7DB5113, 0xAFBEE621, 0x0B3DCEE7},
29263 {0x3FF293BB, 0x222C8427, 0xB38C8AED, 0xCED7A3CA, 0x1DAA93A1} } ,
29264 { {0x035B6135, 0x68183B70, 0xB3B7676A, 0xFE06E0D1, 0x13B7C48C},
29265 {0xD3964C2D, 0xB7436D52, 0x8A24421B, 0xF5CCA7C8, 0x237BEF4A} } } ,
29266 { { {0x8A3EBFC5, 0xAAF10984, 0x17A9CD7B, 0x29949E29, 0x21EABBF9},
29267 {0x37D8D5EA, 0x2CE793B2, 0xCF9329C4, 0x0E406DEE, 0x09CDE769} } ,
29268 { {0x9945A9DE, 0x637AFB1C, 0x1FE8C069, 0x596307C0, 0x146D1574},
29269 {0x32812D67, 0x246EF2C9, 0x874CEB5C, 0x0E0679D4, 0x10E216BC} } } } ;
29270 static const fp12_t var_b = { { { {0x55197F7D, 0x94FCD7C2, 0xF390148B, 0x0B142380, 0x21D05E76},
29271 {0xA7BD06F7, 0x74F1F823, 0x2711EE96, 0x8DDA6040, 0x209EFFC1} } ,
29272 { {0xF7C7C654, 0x1BB656DD, 0x66F592A1, 0x84AF799D, 0x226B9DEF},
29273 {0x3EF2EE85, 0x960D016D, 0x6A35CE2C, 0xEC6FC114, 0x166DC879} } } ,
29274 { { {0x71785D7B, 0x8B45437F, 0xBB6D18B8, 0xE0A562AC, 0x1C090C5D},
29275 {0x8DC112E5, 0xEFBE881A, 0xEEFD96F1, 0x87BDFA86, 0x126E0046} } ,
29276 { {0xB745DA48, 0x7B6FAB21, 0x3C30E01F, 0x1BE11EDE, 0x1DDB4FB2},
29277 {0x85296BC9, 0x1998512E, 0x32AE6A5F, 0x2ED5521D, 0x0895C975} } } ,
29278 { { {0xFA696C7E, 0xB8C0D4EB, 0x43423C35, 0xA0810CE6, 0x1B0AB5C3},
29279 {0x4D1227B4, 0x351E559E, 0x1B00A02C, 0x745B0871, 0x001DD28E} } ,
29280 { {0x96133BDB, 0x04F0AE71, 0x01FD09CD, 0x1D765809, 0x08D9A45A},
29281 {0x32C40779, 0x7A59729F, 0x847E2799, 0xECA4D4EC, 0x00EF230D} } } } ;
29282 static const fp12_t var_expected = { { { {0xB13EBD04, 0xB87A52E9, 0x22F765F3, 0x0D4967CB, 0x1B117D39},
29283 {0x00B4DC68, 0x1E3841D2, 0xDC62A7FB, 0x3EC4F817, 0x1378364D} } ,
29284 { {0x25D9FB6E, 0xB108856E, 0x57D3A26E, 0xB59FEA2D, 0x1957236F},
29285 {0xC5FC82BD, 0xE7588FDD, 0x7CB38F29, 0x473D83BB, 0x17B36B73} } } ,
29286 { { {0xA3F6DCF2, 0x828BCF97, 0xF90FEBAF, 0x60C616AE, 0x117FBBCD},
29287 {0xCEC0D474, 0x6A188AAF, 0xCF5D1999, 0x5AE0394D, 0x06253D52} } ,
29288 { {0x7A71F2AB, 0x1300F8D0, 0x059DFF72, 0x2AAC6353, 0x017E89DF},
29289 {0x728D87BB, 0x2034841D, 0xFB66B29A, 0xA77D58CC, 0x04E842BE} } } ,
29290 { { {0x96AFB0D7, 0xF4C6FE78, 0xBC366521, 0xAE7B555F, 0x07684CFA},
29291 {0x559373E1, 0x5CD3A2FB, 0x90D70610, 0xDDB00794, 0x1EEA292C} } ,
29292 { {0xCA676CFB, 0xFAAD12FD, 0xCD249024, 0xD4B9EB1C, 0x046D52AC},
29293 {0x0B19C93A, 0x7AD2C684, 0xFA9E4E4A, 0x5B91B420, 0x20748641} } } } ;
29295 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2933 a000");
29296 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2934 a001");
29297 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2935 a010");
29298 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2936 a011");
29299 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2937 a100");
29300 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2938 a101");
29301 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2939 a110");
29302 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2940 a111");
29303 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2941 a200");
29304 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2942 a201");
29305 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2943 a210");
29306 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2944 a211");
29309 static const fp12_t var_a = { { { {0x22DB6AC5, 0x42386D6C, 0xE2D1C487, 0x22F0D84D, 0x04023450},
29310 {0x449B22DD, 0x2A558F6E, 0xD055D6CC, 0xA502CD71, 0x21BB0B96} } ,
29311 { {0xE9D4B3E7, 0xCA617835, 0x10C7EB96, 0xEE221E4C, 0x153ECECB},
29312 {0x02F5F698, 0xBB5DE225, 0x026DD803, 0x0A48F0D5, 0x1CF6958D} } } ,
29313 { { {0xB49798BF, 0x1D7640F0, 0x20130173, 0x0DF2EB27, 0x057193CF},
29314 {0xD04F24F6, 0xA022C5C4, 0xD7B5C2C4, 0x7C9E882F, 0x220B2554} } ,
29315 { {0x02FD54A6, 0x53213E01, 0x3B02B220, 0xD4C4B40F, 0x0BA2FE98},
29316 {0xB7BF0CC7, 0x9CBB069E, 0xF26CF235, 0x27534903, 0x07805B4F} } } ,
29317 { { {0x67435C85, 0x55F38C8B, 0xD51E4628, 0xD9E183CB, 0x0AE02819},
29318 {0x062A660A, 0xA744CB3E, 0xD576A839, 0x90116D47, 0x021DB79A} } ,
29319 { {0x9304094B, 0xEFA48B2F, 0x8934994D, 0x5371D1BA, 0x05C102E2},
29320 {0x20FCF316, 0x84325624, 0x36D21DF0, 0x7786F2E0, 0x095720A6} } } } ;
29321 static const fp12_t var_b = { { { {0x20239BE0, 0x4777D2CF, 0x39ECABFD, 0x7BA690E0, 0x0D7D7623},
29322 {0x74E492CA, 0x817FA17D, 0x722CC840, 0x20D7487D, 0x070095AE} } ,
29323 { {0x0D61D291, 0x47250B21, 0x3FD552EC, 0xB51CCC83, 0x14C63922},
29324 {0x5053362F, 0x0B7D17BB, 0xC8765454, 0x8FC32000, 0x19608CA5} } } ,
29325 { { {0xC74A30E7, 0xDFAF3480, 0x59A9C37A, 0x65529C62, 0x0FA392DE},
29326 {0x900C92B0, 0x99315295, 0xB2E84DAD, 0x872B26D9, 0x1D4ACA00} } ,
29327 { {0xE4050CFD, 0xB4F3E418, 0x3F4BAFD7, 0x8BF799F3, 0x041F62A3},
29328 {0xE86CD51F, 0x17FC0C38, 0x05083CA8, 0xE8C1CBDA, 0x21174520} } } ,
29329 { { {0x70C3B3DF, 0xC3817F1A, 0x5B8F81B4, 0x55FB5A9A, 0x1492CC6F},
29330 {0x7DA73B82, 0xD7D577F7, 0xF23030BC, 0xC2709C75, 0x1B00095E} } ,
29331 { {0x590CB6F9, 0x9FAA1E28, 0xDCE8D0CB, 0x972D03D7, 0x0F7AF7B5},
29332 {0x3A7E919D, 0x60542034, 0x6C708C96, 0xB87BB984, 0x08F6BA40} } } } ;
29333 static const fp12_t var_expected = { { { {0x95DA30D3, 0xB8780D4D, 0x5422962F, 0xE26E1578, 0x23FE2343},
29334 {0xE8E33850, 0x10D71912, 0xE5989452, 0xC47497F6, 0x03EB642E} } ,
29335 { {0xD27E91AF, 0x992E4AA7, 0x509CC4CE, 0x86CBAC6B, 0x0E6D0D82},
29336 {0x20C01D90, 0x3427D524, 0x9D84A3C2, 0x2AB3EAC8, 0x0591C90A} } } ,
29337 { { {0x1EF5C9D4, 0xA7FB2C6F, 0xAF710017, 0x73C57DB2, 0x1B92AACE},
29338 {0x7E008A98, 0x271AB726, 0xEF8E28F1, 0xFE180BC3, 0x090B8366} } ,
29339 { {0x765752E8, 0xE54E5EF0, 0x542EB4AE, 0xDD2735C4, 0x23395BBA},
29340 {0xA7136E12, 0x91E41050, 0x23B1364A, 0x9B948A52, 0x1FE051E3} } } ,
29341 { { {0x8799BB37, 0xBD6A8D83, 0x981F242A, 0x9034CAFE, 0x18B1D8F5},
29342 {0x66BE1B14, 0xBB0CC551, 0xE4217299, 0x3ED1E538, 0x0FDCC2EE} } ,
29343 { {0xA2AC2FDA, 0xC71605CC, 0xD4CF22C0, 0x7C5CF088, 0x0A6634A7},
29344 {0x9ACE2CF9, 0x804D668B, 0xB13BDB3E, 0xF032ACC7, 0x0679F93A} } } } ;
29346 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2945 a000");
29347 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2946 a001");
29348 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2947 a010");
29349 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2948 a011");
29350 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2949 a100");
29351 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2950 a101");
29352 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2951 a110");
29353 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2952 a111");
29354 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2953 a200");
29355 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2954 a201");
29356 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2955 a210");
29357 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2956 a211");
29360 static const fp12_t var_a = { { { {0xFF249A36, 0x4081AF6C, 0xAA017775, 0x3BAE460F, 0x205FB692},
29361 {0x2E95B255, 0xE8397CFA, 0x547BDCD0, 0x904E5C2C, 0x21CB509A} } ,
29362 { {0x1A0483EF, 0xFD678F32, 0xE025B0EF, 0xA00F761F, 0x0287FB1A},
29363 {0xB33E28F7, 0x722AA272, 0x6FCD0FA3, 0x4EA72C99, 0x16787152} } } ,
29364 { { {0x1161DAA8, 0x17DFE730, 0x4C064099, 0xEF58FE17, 0x1C02D090},
29365 {0x69F7CBAC, 0x5AA50ED0, 0x49E4A609, 0x3114FB76, 0x0812CB62} } ,
29366 { {0x7F392A33, 0x4CBCF101, 0x80FEF7CE, 0x35BA588A, 0x002CE2E5},
29367 {0x568B70F3, 0x004287A3, 0x61368E5A, 0x80C02593, 0x0F1122F5} } } ,
29368 { { {0xE400E647, 0x223887AC, 0xC14040C9, 0xD46B4745, 0x10DA64D7},
29369 {0xBF63560B, 0xBE912ED3, 0x3AF7F3A8, 0x3CC2E319, 0x159ADC4B} } ,
29370 { {0x5DD4F283, 0x980BF80D, 0x3ED99FAB, 0x2363EEFE, 0x00342C27},
29371 {0x16CDD240, 0x17B7D347, 0x75340C8F, 0x32E2AD6E, 0x039B7186} } } } ;
29372 static const fp12_t var_b = { { { {0x0131A72F, 0xF5B5D07B, 0x60E5E05A, 0x6FF746BA, 0x0FF3BCB1},
29373 {0xAC27E734, 0x299BA6C2, 0x0AF0F456, 0xCD22B601, 0x209518FE} } ,
29374 { {0xA372CD33, 0x97115350, 0x88771221, 0xC13327A3, 0x08E662F9},
29375 {0x3809BCE0, 0xAE74BB43, 0xEBC45AB5, 0xDE7B9343, 0x0CC35108} } } ,
29376 { { {0x386AB25A, 0x42F1BAE1, 0x00C3C457, 0xE8BF10CF, 0x11614501},
29377 {0xAAB12B4D, 0x50C9826B, 0x61C9568B, 0xB8B9FFDE, 0x11555139} } ,
29378 { {0x9AA63A31, 0x30048D7F, 0xB8A7FBCD, 0x54198108, 0x10FF6CB4},
29379 {0x7802C912, 0xBCDD9CAB, 0xAFB76600, 0x2AA6C453, 0x08C1D7B3} } } ,
29380 { { {0xCC5FA205, 0xCDB92FAA, 0x3017DB17, 0xBF746E4A, 0x0C29475A},
29381 {0x2ACC341E, 0x0C14D5E7, 0xA100433D, 0x82F7FA14, 0x06F59CEF} } ,
29382 { {0x4A6CABAF, 0xE32C27B5, 0xC71DB1F8, 0x069BC7F0, 0x16369833},
29383 {0x68093691, 0x82391145, 0x4EC465BC, 0xBAD69FF4, 0x20D28209} } } } ;
29384 static const fp12_t var_expected = { { { {0x2D6F67CE, 0xC6DF4A8E, 0x8EAABBFE, 0x1E300746, 0x1C0C4FF3},
29385 {0xD80D6F2D, 0xE226B50F, 0xAA3BB254, 0x63FE8F06, 0x034709F5} } ,
29386 { {0x56531911, 0xD3701578, 0x9129ED0B, 0x3D47DBF9, 0x175805A0},
29387 {0xAD6FCCC5, 0x1AB601FE, 0x5D14C479, 0x292010D4, 0x1E48FA94} } } ,
29388 { { {0x8D5A67E0, 0x4F71D800, 0xDB01B3B4, 0xB68501B3, 0x195030AC},
29389 {0x48D02B9F, 0x4FCB163B, 0xBEBC0611, 0x9B75AC41, 0x1910C7A6} } ,
29390 { {0xDB559A77, 0xF4079BE8, 0x3C7F3765, 0x5F01AE93, 0x1DFD5D82},
29391 {0xFB84F8FD, 0x5043D359, 0x54F83A1F, 0x1B6176D2, 0x19669C95} } } ,
29392 { { {0x53ED27A1, 0xEE36AABC, 0x5D1A2EA5, 0x4D822610, 0x13EF03F2},
29393 {0x3E8C85C4, 0x2E1A7CDC, 0x7960BB41, 0x988ABFD7, 0x04B183CF} } ,
29394 { {0x1DCCEA9C, 0x79E034F5, 0xC07B0589, 0x7DC21654, 0x1F326EC4},
29395 {0x0C0A9FB6, 0x4B8DC5C1, 0x04334EFB, 0xD590F201, 0x17C51B2C} } } } ;
29397 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2957 a000");
29398 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2958 a001");
29399 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2959 a010");
29400 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2960 a011");
29401 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2961 a100");
29402 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2962 a101");
29403 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2963 a110");
29404 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2964 a111");
29405 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2965 a200");
29406 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2966 a201");
29407 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2967 a210");
29408 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2968 a211");
29411 static const fp12_t var_a = { { { {0xEAEB0374, 0xDFA54AA0, 0xC2134B6A, 0xE00357B4, 0x11352A7F},
29412 {0xC303BF83, 0x7F13FB81, 0x019B1BC8, 0x2634B323, 0x02C2032F} } ,
29413 { {0xFC329ED5, 0xC9529BBB, 0xDF88FDAB, 0x6F794F0F, 0x00A28A6B},
29414 {0x9173C4F3, 0x4630543D, 0x38BF4FF6, 0x5DBEE545, 0x23731020} } } ,
29415 { { {0x0AB1F2C2, 0x54D16789, 0x0D7C3F17, 0x2F88D8A6, 0x112316C0},
29416 {0x1BA2DCA0, 0x3CC16E79, 0x04DE7981, 0x4605DB29, 0x0D840CBC} } ,
29417 { {0xD204A552, 0xE21C6A1E, 0x516D2416, 0x63273C39, 0x13C541AF},
29418 {0xC2CF5BF6, 0xFBBD36A9, 0x1D0D461A, 0x3F8B643E, 0x128CCA82} } } ,
29419 { { {0x96D1167E, 0x1558FB30, 0x4E8FCF74, 0x896803AB, 0x042DE912},
29420 {0xAAFEB1BB, 0xE9742090, 0xC0A143E8, 0x1EEDEA11, 0x1EA66E58} } ,
29421 { {0x949FA3DB, 0x35AA0EC5, 0x23DB3D23, 0xE541F5FC, 0x026CF982},
29422 {0x20CBD0A7, 0x750925EA, 0x5C9306FE, 0x9F8F04C8, 0x21DCE9ED} } } } ;
29423 static const fp12_t var_b = { { { {0xF5C9D08D, 0xC5EABBD2, 0x79134C26, 0xF8565EA0, 0x0F59433D},
29424 {0xCF0A280C, 0x2AB3C996, 0x96CCDB7F, 0x9D427108, 0x1E2FFB0E} } ,
29425 { {0x588D35AB, 0x13183D60, 0xE0AD6045, 0xA9B20278, 0x054E9DE5},
29426 {0x81E2791B, 0x0E4581D5, 0xB9D63C80, 0x88D2C3BA, 0x00B84AC4} } } ,
29427 { { {0xCB2929C4, 0x4D93822D, 0xD587EC85, 0xDE669DB6, 0x0A65BC77},
29428 {0x3B263B17, 0xF66E2E4B, 0xBAD18887, 0x78BBC442, 0x235D9A53} } ,
29429 { {0xC9A2B332, 0xC0BEFF18, 0xC167D90D, 0x57F7AF2D, 0x21D19C3E},
29430 {0x4D095550, 0xA5DD5EA4, 0x90D51A86, 0xB384A4BF, 0x212CE5DB} } } ,
29431 { { {0x3FE63E12, 0x99EA2405, 0xDF0AE3CC, 0x700EE669, 0x10C58BC0},
29432 {0x3DD82430, 0xE49F0529, 0x52530FB4, 0xC6966940, 0x0F3832D8} } ,
29433 { {0x68C9320A, 0x5DE0AC97, 0x97AC096F, 0x931C9397, 0x1FD3AF70},
29434 {0xAEF95017, 0xD6619C5A, 0xF7B2D460, 0x3A99F407, 0x1DD4D224} } } } ;
29435 static const fp12_t var_expected = { { { {0xFED7904E, 0x09180AB7, 0xFD599FE0, 0x0CD2F66D, 0x20C7A890},
29436 {0xB33B979B, 0x733C8E15, 0x5160B182, 0xBCCC9632, 0x064B9FEA} } ,
29437 { {0xA2B57F55, 0xF4DF0081, 0xD2542C17, 0x584FB308, 0x04DB25B8},
29438 {0x09E690EA, 0x659018F6, 0xE5E9ACD0, 0xFACC00BD, 0x0E5B5846} } } ,
29439 { { {0x07227E1E, 0xF7B93C8F, 0x4D6265EB, 0xBB8277B6, 0x1391C47D},
29440 {0x7AD0233C, 0xB8D3F6DC, 0xD42A3860, 0x3E9F1E9D, 0x1CD7E1B5} } ,
29441 { {0x3A0D9EA7, 0x5DB9F099, 0x77E8EBF5, 0x15741500, 0x1D01C39A},
29442 {0x76CF6726, 0xC71B7C98, 0xCB8E2AFA, 0xD55B97B2, 0x049CD93E} } } ,
29443 { { {0x4509505F, 0x887F985E, 0x75E5FD93, 0x966C5A5D, 0x033CE2E1},
29444 {0x6EFFBBA4, 0xF1483051, 0x9637ADF2, 0x4A9356B6, 0x239262AB} } ,
29445 { {0xD18F45FE, 0x134FB935, 0x15B01237, 0x7E561552, 0x09A1F94D},
29446 {0x5E9C3405, 0xD2AA36D7, 0xB7ACC822, 0x15A64D69, 0x0969A3B4} } } } ;
29448 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2969 a000");
29449 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2970 a001");
29450 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2971 a010");
29451 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2972 a011");
29452 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2973 a100");
29453 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2974 a101");
29454 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2975 a110");
29455 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2976 a111");
29456 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2977 a200");
29457 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2978 a201");
29458 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2979 a210");
29459 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2980 a211");
29462 static const fp12_t var_a = { { { {0x11CFF6A1, 0xAEC52B9C, 0x71F40074, 0xCCEAD557, 0x10155C67},
29463 {0xDBF0FDF8, 0x0D691983, 0xC837595B, 0x233EDBDD, 0x0612D22D} } ,
29464 { {0x3C523DC2, 0xDCC34700, 0x749F26B7, 0xEFAD9B75, 0x100EDB37},
29465 {0x90AD5BA6, 0x5821275B, 0x709FA82B, 0x116C2DE5, 0x22D4A3BC} } } ,
29466 { { {0x78CC8515, 0x986C8943, 0xC7F6EF79, 0x2C623382, 0x06189539},
29467 {0x8446186C, 0x35D6D75D, 0x66301189, 0x5E264B23, 0x1CCE4B57} } ,
29468 { {0x404B3A71, 0xFF7993A3, 0x860E679A, 0xED2E0E29, 0x143F9388},
29469 {0xC6A01D0E, 0x9D8677AA, 0x4CA0151B, 0xC55225F3, 0x21F141C6} } } ,
29470 { { {0xF1D7A893, 0x19B5E98C, 0x2FE2D941, 0x3581AA46, 0x136A5507},
29471 {0xCFDFF40A, 0x82732955, 0xE058F851, 0x8BB4CD46, 0x1F8F34CA} } ,
29472 { {0x3F72B1F6, 0xA67FA949, 0x4E9374DF, 0x546258E6, 0x164F8E62},
29473 {0x638E98DA, 0x6F05EC54, 0x71A7BD86, 0xF9565F92, 0x187E748D} } } } ;
29474 static const fp12_t var_b = { { { {0xE9C9F254, 0xCF2BEF5F, 0x0D45CB90, 0xA3303F84, 0x18F29580},
29475 {0x0BD20EB2, 0x41C68E05, 0xF122E8BD, 0x64AEDB85, 0x1583BD58} } ,
29476 { {0xED8EAA10, 0x5CA7B3E1, 0x631944B5, 0x9F9006EA, 0x1504C77A},
29477 {0x9E46D75A, 0x289984CF, 0xA871C36C, 0x371B0FA5, 0x059133C4} } } ,
29478 { { {0xE8E59A1E, 0x659490C2, 0xD4AAF9B0, 0x17490C1B, 0x01E7A05E},
29479 {0x5271D093, 0xD7CFB4E2, 0x88F113EC, 0xDD7EE048, 0x0D64A0B8} } ,
29480 { {0x350C7412, 0x9E282868, 0x0ED95E4E, 0x433EB800, 0x08C57B58},
29481 {0x4F3EC2CE, 0x77E62398, 0xC2BC8EB4, 0x1E18E8CF, 0x144B8719} } } ,
29482 { { {0xBF8F1EAE, 0x09A360A7, 0xD3590191, 0x53F0E0B8, 0x108FAF40},
29483 {0x80963AA2, 0xF0A0E8B2, 0x3B9DE143, 0xF6536AD4, 0x1257513E} } ,
29484 { {0x075A3D9B, 0x5B11727D, 0x48E470F0, 0x8AE3BD7E, 0x079DE822},
29485 {0x7640D8DC, 0xC5B3977A, 0xC8548A6E, 0xC04824E7, 0x0F00DCF4} } } } ;
29486 static const fp12_t var_expected = { { { {0x649F06E2, 0x657983AB, 0x987FB2F1, 0xD0D0F805, 0x028D3B43},
29487 {0x50D5DB91, 0x748E9EEE, 0x1F78B456, 0xABD7C92A, 0x1F0F9718} } ,
29488 { {0xB69825C9, 0xE5E56A3E, 0xE824057B, 0x9E67B835, 0x1A77EC3A},
29489 {0x6B4297F2, 0xA73C4E79, 0x14495F54, 0xCB642985, 0x04C508FD} } } ,
29490 { { {0x18008DED, 0x123260CC, 0x4E11B038, 0xBA179A6B, 0x0E1A82AB},
29491 {0x913237BE, 0xB7F9B1DB, 0x64240D8B, 0x2B46E096, 0x08FD7F94} } ,
29492 { {0x5AFD6855, 0x74971FCC, 0xC708760E, 0x1FF21BBF, 0x081D04A6},
29493 {0x3297DD5F, 0x429AF479, 0x32D57FDF, 0x999375D9, 0x21747FDC} } } ,
29494 { { {0x8AEB7FEA, 0x1AC1509D, 0xE42D1612, 0x74BCB813, 0x008B1F0F},
29495 {0xE9089124, 0x7A875D14, 0x51123A05, 0x891035DB, 0x205C35B3} } ,
29496 { {0xCC1CAA56, 0x4D5F8485, 0x8F20D91E, 0xC378CED3, 0x217398F7},
29497 {0xD6DB5467, 0x6C10B5FB, 0x6506C455, 0x93EEAA0D, 0x0199B60B} } } } ;
29499 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2981 a000");
29500 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2982 a001");
29501 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2983 a010");
29502 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2984 a011");
29503 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2985 a100");
29504 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2986 a101");
29505 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2987 a110");
29506 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 2988 a111");
29507 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 2989 a200");
29508 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 2990 a201");
29509 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 2991 a210");
29510 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 2992 a211");
29513 static const fp12_t var_a = { { { {0x219C3E9C, 0x10FE13EE, 0xBF83EAA3, 0xD013A8DE, 0x022E6E2B},
29514 {0xDCD0A15F, 0xDC6F80D9, 0x3E8CE947, 0xF57E314A, 0x22776A34} } ,
29515 { {0xFBBF8C7F, 0x1883D008, 0x7EE1B837, 0x51B50B7B, 0x0C8B851A},
29516 {0x9652D5E3, 0x152B53A8, 0x157F6541, 0x9F80A875, 0x04AA8FF6} } } ,
29517 { { {0xBD76669B, 0x39CABD5F, 0xAC9157A4, 0x369B95C3, 0x12142ABF},
29518 {0x622D81DC, 0x57EC8365, 0x69364163, 0x8906B6A8, 0x197EA63B} } ,
29519 { {0xC64FF900, 0xDCB0B8DC, 0x2CE66B1C, 0x47C74EB2, 0x032967F4},
29520 {0x45DE3D47, 0xC0681C01, 0x8D5E2FE3, 0xFBD16F88, 0x12898E1C} } } ,
29521 { { {0x89AA1DA9, 0x20C51C89, 0xB0B68A53, 0x458FED91, 0x1B42F781},
29522 {0xC0E6E696, 0x1B2B59FA, 0x807E5548, 0x5E35E4E4, 0x02C98651} } ,
29523 { {0x4B615EC3, 0xD8A6D7A5, 0x51C563B5, 0xDAE088FF, 0x18F24A68},
29524 {0x2331C5ED, 0x38CA76E0, 0xBD52C991, 0x625CAE71, 0x0AB1EFDE} } } } ;
29525 static const fp12_t var_b = { { { {0x6DC20690, 0x2439EFE3, 0xCA9692F6, 0x30589776, 0x033CFB8D},
29526 {0x0C6DF718, 0x014C3388, 0x45AF1D37, 0x1D146105, 0x0F8F00DC} } ,
29527 { {0xB1A9E589, 0x9C80E025, 0x26408C1B, 0x69953C36, 0x1737FECB},
29528 {0xEA94D29D, 0x488A1E11, 0x75ADEA6D, 0x9AC22D8A, 0x113587F8} } } ,
29529 { { {0x124476BA, 0xE4F0F904, 0xB7AC719B, 0x989AACCC, 0x1351D1B1},
29530 {0xCB472FDD, 0xA3EE73D5, 0xE4AC47D2, 0xE063B857, 0x11DEA11C} } ,
29531 { {0x08631A31, 0x99C69A30, 0xC8BB807F, 0xDDCE8191, 0x0DBC9715},
29532 {0x1E90E084, 0x459C3490, 0xFFE90D1C, 0xBF3BDF0C, 0x1D3BA42F} } } ,
29533 { { {0xA51922B9, 0xBA5CAFC3, 0x848282F9, 0x57E23787, 0x044087BF},
29534 {0xB5377057, 0x80A5FF4D, 0x8DDF7157, 0x3254A30F, 0x201536DC} } ,
29535 { {0x8C7D6680, 0x0D83D30A, 0xEEAB307C, 0x6C12B811, 0x1AF1A781},
29536 {0x7A4216EC, 0x9874F2C4, 0x497B491D, 0x62908DB2, 0x1BCB81B0} } } } ;
29537 static const fp12_t var_expected = { { { {0x1E23D6E2, 0x951B6C09, 0x05FBB1DB, 0x0139CBB7, 0x03CF28F9},
29538 {0xCF395830, 0x93A2549C, 0xDCB62C2B, 0xE8319D92, 0x0296ECBF} } ,
29539 { {0x428EBD23, 0x14743FE8, 0x32BB9182, 0xA710A2A1, 0x1D63DBDC},
29540 {0xBCA1E94D, 0xA6335118, 0x985995D6, 0x42344B1E, 0x192A1425} } } ,
29541 { { {0xF01988D8, 0xEC6733D2, 0xC0B7D72D, 0xBC8B8BD1, 0x048FC35B},
29542 {0x0B5A2DF6, 0x688B296D, 0xC9684DD6, 0xCE315100, 0x234936CF} } ,
29543 { {0xCA71C1E8, 0x77DF09A4, 0xB20DB0AD, 0x3373A347, 0x0B389EBA},
29544 {0xDA60BD96, 0xFAD2A4CD, 0x6D921AB9, 0x6D34DF32, 0x1E8484E9} } } ,
29545 { { {0x3D34AD79, 0xE9C7F8A9, 0x172A4A1D, 0xF0C009D9, 0x078F2563},
29546 {0x9531488E, 0xD8B1F816, 0xF241BEF1, 0xFD6DBFCC, 0x1E350980} } ,
29547 { {0x01F8DC09, 0x7F7A2531, 0xF32C2283, 0x5DA6CB85, 0x21ED28E2},
29548 {0x8A275A94, 0x090AC76C, 0x41AEAAB2, 0x65877BB8, 0x08789431} } } } ;
29550 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 2993 a000");
29551 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 2994 a001");
29552 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 2995 a010");
29553 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 2996 a011");
29554 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 2997 a100");
29555 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 2998 a101");
29556 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 2999 a110");
29557 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3000 a111");
29558 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3001 a200");
29559 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3002 a201");
29560 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3003 a210");
29561 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3004 a211");
29564 static const fp12_t var_a = { { { {0x7BD2C81F, 0xF06FB337, 0x6AA0EF99, 0x8653D92F, 0x1580C14C},
29565 {0x79A383E4, 0x35532782, 0x486ACE8F, 0x1F65564F, 0x1F5E9C6D} } ,
29566 { {0x3E6CAD31, 0x22BB9B07, 0x08695DEC, 0x1BCE88D7, 0x08172FA0},
29567 {0xA3D22F80, 0xBE899DE9, 0xF9625B09, 0xB9C97FDC, 0x1D566C8D} } } ,
29568 { { {0x65ABD6AE, 0x88C499EE, 0x40CFE993, 0x135A34D0, 0x174AF54D},
29569 {0xAC1895AB, 0x3F3F9A5F, 0x11ACD2A9, 0x48031D0D, 0x0B50FE86} } ,
29570 { {0x19AB532A, 0x983BF68F, 0x55E32EF5, 0x1B080E33, 0x0BC8F93D},
29571 {0x6B696EFD, 0x803D7E2B, 0x801A0328, 0x61C8FA07, 0x198B3B17} } } ,
29572 { { {0x96C644DC, 0x04F581F1, 0x6B241974, 0x7855D184, 0x210282D9},
29573 {0x5FC0F468, 0x24F1B823, 0x5B9DCF1E, 0xB26DAE3F, 0x146A78B3} } ,
29574 { {0xDF5FC2CC, 0x0CD562D3, 0xDF8CFC25, 0xB9E9E9E2, 0x1205682B},
29575 {0x52D59923, 0x64844B8E, 0x17382C0E, 0x7F096DB6, 0x1D474757} } } } ;
29576 static const fp12_t var_b = { { { {0x1AA77A0E, 0x87E8F614, 0xD2411514, 0xB659118F, 0x0A0B13FA},
29577 {0xBE14814F, 0xB24FF240, 0xDE3B97FD, 0x500FEA11, 0x1CAC2768} } ,
29578 { {0xD1FA7CF7, 0x6FC381A0, 0x93DAB6F9, 0x2D0066A1, 0x219A2541},
29579 {0x820B1667, 0xE8D5D223, 0x5EBF33B4, 0xAB837777, 0x1EF9503B} } } ,
29580 { { {0x5A03A5CB, 0x59D0D99F, 0xA1AE0A23, 0x5674A8BB, 0x13B1C1BC},
29581 {0x6EB71D47, 0x6A2EA172, 0x540CBE41, 0x59161180, 0x01063FA6} } ,
29582 { {0xFB7F5C84, 0x9E10A758, 0xC8AF91DB, 0xC736DAC5, 0x2356369A},
29583 {0x16186019, 0x054C33A5, 0x8D7807AB, 0xCC947853, 0x23469E82} } } ,
29584 { { {0x4EAB91B0, 0x429C3F2A, 0xB0CAB469, 0x933E4D5E, 0x09E7409B},
29585 {0x193BC4ED, 0xE3A59904, 0xA97B4165, 0xD7E85E33, 0x1CE6DF23} } ,
29586 { {0x20260A4E, 0xC5650F0C, 0x762C13E9, 0x42264206, 0x1984C1FB},
29587 {0x37BC6A11, 0xD93FD760, 0x7BB96C58, 0xDFA75BC1, 0x224A09DA} } } } ;
29588 static const fp12_t var_expected = { { { {0x58CD7205, 0x6A74BF6A, 0x78A0400B, 0x649A30CF, 0x137FB6C3},
29589 {0xE89FB611, 0x1BB79CB7, 0x996FE549, 0xFBAB47B4, 0x0CE108A4} } ,
29590 { {0xA4F63B02, 0x758B8744, 0xEC7D2C30, 0x9A07F72E, 0x1DDD514A},
29591 {0x33DF89CC, 0x5C318AF1, 0x509D30E0, 0x1C5E3B41, 0x034F0899} } } ,
29592 { { {0xEF389123, 0x31740E4F, 0xB284C14B, 0xDCFC9101, 0x16CBDB8F},
29593 {0xE0A8DB9C, 0x7047A3D6, 0xD2245227, 0xD268541C, 0x14312E4F} } ,
29594 { {0x1AAF28D9, 0x930E8CBA, 0xA98A7EA5, 0xEA25CA4D, 0x0623757C},
29595 {0x6FE71A87, 0xF0F52661, 0x951A8B4A, 0x7090916A, 0x02957C5C} } } ,
29596 { { {0x7D151EEB, 0x9703A698, 0x7B1DA71A, 0xC61EE1BF, 0x11F574D4},
29597 {0x4AB27E6A, 0x2A59A002, 0x04F88B1E, 0xA1EC8D12, 0x23123DBB} } ,
29598 { {0xD0C0033C, 0x51D9E09B, 0x13545601, 0xD336386D, 0x0B0284DB},
29599 {0x72F3B032, 0x9AE097FC, 0x6D457E3F, 0x17087B34, 0x116F8CC5} } } } ;
29601 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3005 a000");
29602 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3006 a001");
29603 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3007 a010");
29604 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3008 a011");
29605 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3009 a100");
29606 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3010 a101");
29607 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3011 a110");
29608 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3012 a111");
29609 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3013 a200");
29610 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3014 a201");
29611 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3015 a210");
29612 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3016 a211");
29615 static const fp12_t var_a = { { { {0x43A50AD0, 0x954D182D, 0x6B2C118C, 0x30838753, 0x1EC669C3},
29616 {0x7828BC96, 0x94BBCCA3, 0x21BCE803, 0x358E40B3, 0x10EE3110} } ,
29617 { {0x1D3684C9, 0x07041070, 0x4974A812, 0x65D14EF1, 0x222C93FF},
29618 {0x061AF1B3, 0xC36C6901, 0x96FC3BFA, 0x142427D6, 0x133B5554} } } ,
29619 { { {0x2F28DAB7, 0x497B7618, 0xE3C47FB7, 0x2FCAAD8A, 0x0FA0063D},
29620 {0x823815E7, 0xB07BCA0E, 0xA7EC4BE7, 0x97C63726, 0x09833C4A} } ,
29621 { {0x323F45FF, 0x5859FF4D, 0xFC7AA21B, 0xD4877DB1, 0x1CBDCC47},
29622 {0x1AB669B7, 0x59EACBDF, 0xE79CFD71, 0x759FBD41, 0x0ACDE1B0} } } ,
29623 { { {0xE61D37E0, 0x0B4AC4FA, 0x69F0B77D, 0xBE8B10B8, 0x1777EFAF},
29624 {0xECDA8644, 0x3B4C00E3, 0xBB34DF65, 0x2AABF4CC, 0x1F6BE74E} } ,
29625 { {0x401BAFC3, 0x90F0D052, 0x1ADECDEE, 0x373F601C, 0x129FD933},
29626 {0x98F0F1DD, 0xE443F9B0, 0xE5654448, 0x7096958D, 0x006CAF09} } } } ;
29627 static const fp12_t var_b = { { { {0x2074A33A, 0xA3393C13, 0x3F4F674A, 0x057498C2, 0x0B043DA7},
29628 {0x22D8C045, 0xF53C77B2, 0x3C50236C, 0x3E522E85, 0x15FBBBB5} } ,
29629 { {0xE8F7FA9D, 0xF0177B6D, 0xB42E0A24, 0x99B1FF12, 0x0282F573},
29630 {0xDC78422F, 0xE41D97C5, 0x36BB18A1, 0x8218BA8E, 0x0F24B34D} } } ,
29631 { { {0xE37F8B90, 0x635438F8, 0xD52D2605, 0x0D04BD0A, 0x09AD954A},
29632 {0xE6DB006A, 0xED846588, 0xE6A619F1, 0x072EF60F, 0x216E383D} } ,
29633 { {0x21FD8D1E, 0x62551D53, 0xCC65E445, 0xAD8E51B9, 0x17FAE825},
29634 {0x9E1F531A, 0x047D4318, 0xEBDC114D, 0x6EA04C7B, 0x086D02EF} } } ,
29635 { { {0x228EC98C, 0x3BDE58A1, 0xC5753913, 0x13F128F3, 0x1F626752},
29636 {0xDCF6BAEF, 0x99141C24, 0x56F35132, 0x6D051A57, 0x0349E4FA} } ,
29637 { {0xAB0FACCD, 0xD080ED8E, 0xCD7BE91D, 0x0293060C, 0x23501C6E},
29638 {0xA345521A, 0x18DC5082, 0x2E014D4F, 0x7597FDDC, 0x0BC50C14} } } } ;
29639 static const fp12_t var_expected = { { { {0x7AB17223, 0x22A66719, 0xBDF1D955, 0x4B6B2108, 0x1C182B00},
29640 {0x90E3C9F4, 0xB2920DC3, 0x953AED55, 0xD3F0296F, 0x128446A8} } ,
29641 { {0xBBC2C325, 0x6C212590, 0xFFC3E040, 0x6BED32D7, 0x1774FDB7},
29642 {0x547AE0EF, 0x8FF85B66, 0x5B56D6F7, 0x94DA5D76, 0x13D95C42} } } ,
29643 { { {0x43B0D116, 0xC63B81B5, 0xF89F40E4, 0x997CE0AA, 0x088D0A29},
29644 {0x963E36DF, 0xAF682258, 0xCCDD2EC4, 0x6DC82126, 0x02D709B5} } ,
29645 { {0x647C28CD, 0xC73EE576, 0xC8BFBEE9, 0xD3D46358, 0x0AC95536},
29646 {0x44C7D8FC, 0xA096EC5E, 0x1B843D3A, 0x257D77E3, 0x1F21140B} } } ,
29647 { { {0x349459FE, 0x5ABE08FC, 0x76CAC59D, 0xAC367935, 0x0DEC01FC},
29648 {0xDBD3E148, 0x9580C554, 0xC225C5D7, 0x555C2F57, 0x0EC58ECF} } ,
29649 { {0x4028C3C4, 0xDAD47018, 0x36CFC498, 0x30BB3175, 0x22CEB433},
29650 {0x9A1B38FF, 0x38934B58, 0xBAA4D633, 0x1FA8BAEB, 0x0FAF1397} } } } ;
29652 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3017 a000");
29653 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3018 a001");
29654 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3019 a010");
29655 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3020 a011");
29656 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3021 a100");
29657 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3022 a101");
29658 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3023 a110");
29659 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3024 a111");
29660 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3025 a200");
29661 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3026 a201");
29662 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3027 a210");
29663 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3028 a211");
29666 static const fp12_t var_a = { { { {0xE3BE6BD8, 0x05E862FD, 0x24B2BC56, 0xF1500885, 0x081D7BFB},
29667 {0xEE1942C7, 0x41C4B29D, 0x6F28DEF9, 0xCB9B547D, 0x10BE0E40} } ,
29668 { {0x3FBF25C3, 0x7CF0DEA3, 0x33A68729, 0xA615063D, 0x0D295502},
29669 {0xEB6CC6E2, 0xDEECB59A, 0xDF9DFA97, 0x85BE3A55, 0x0343900A} } } ,
29670 { { {0xB4147663, 0x61F328E3, 0x438E1E2A, 0xEDA32976, 0x0C1C858D},
29671 {0x8829D87D, 0xA871047D, 0xA1AF405B, 0xDF5052CF, 0x0D8B9E62} } ,
29672 { {0x4B4DCA5D, 0x0DDE3356, 0xC419A02A, 0xA226E638, 0x2247EB50},
29673 {0x7E4C3DB7, 0x0A1E53DE, 0xDE03FE59, 0xF5BBB417, 0x1386FAC1} } } ,
29674 { { {0xCB3D4983, 0xE12B2617, 0x7C3611E4, 0xFDECE882, 0x18BC6C9B},
29675 {0x3ED81B3B, 0xC3CD29F8, 0xCB623849, 0x02D53EAA, 0x083B8C30} } ,
29676 { {0x1B737735, 0xD9A56809, 0xB3259A81, 0x16DDBC54, 0x1BDC6EE3},
29677 {0x844DA06E, 0xAB95193F, 0x440AA299, 0x53C54A47, 0x0EB67D6B} } } } ;
29678 static const fp12_t var_b = { { { {0x5DD59369, 0x80102CE6, 0x30B3AC43, 0x9B59E81B, 0x17DE8FC5},
29679 {0x000CA6A0, 0x9754BD27, 0x0C05E365, 0x6973763D, 0x03F00453} } ,
29680 { {0xCEB8148D, 0xD40BE401, 0xC2405D4F, 0x415A3D84, 0x20A18268},
29681 {0x725F4F13, 0x3C155882, 0xD1B4DB38, 0xFB456FD5, 0x06DD2205} } } ,
29682 { { {0xC55BC787, 0x8245C4E5, 0x4A2608BD, 0x87A99694, 0x20B7C1DE},
29683 {0x1856F92D, 0x479AD9E6, 0x30A6DD77, 0x2BEFB5B2, 0x16CF14F6} } ,
29684 { {0xB317C7B7, 0xE5393392, 0x6B8C42CC, 0x1637B31C, 0x012C5402},
29685 {0xE6D9B4E8, 0xD118F80E, 0x332749E5, 0xC34C5054, 0x18EF12FA} } } ,
29686 { { {0xBF8C28E4, 0xB76BF7FE, 0xBDD58DD8, 0x9796414B, 0x1D84C110},
29687 {0x4C403D47, 0xF5A9C325, 0x9121DCF4, 0x10306B40, 0x08236660} } ,
29688 { {0x91C826DA, 0x456E3261, 0x11BAD361, 0x9354B05B, 0x138E810A},
29689 {0xF0D80548, 0xEF97EA83, 0xD3CB91E3, 0x45D4C1AD, 0x00BB91ED} } } } ;
29690 static const fp12_t var_expected = { { { {0x1F77CA4A, 0xE6D357EF, 0xC48619D2, 0x54B89483, 0x0ACD3B88},
29691 {0x317B0622, 0x1368EBCA, 0x0D316AE7, 0x6240DB50, 0x0779801B} } ,
29692 { {0x98E597F9, 0xC68D0722, 0x474E7807, 0xC253F2EB, 0x1533ADA6},
29693 {0x3CC50559, 0xA89E3AF0, 0xD4E077F5, 0x226ACDD2, 0x03327014} } } ,
29694 { { {0xD9D9B222, 0x41F4A615, 0x3846F9F1, 0x0265E20B, 0x022FA2AD},
29695 {0xE8A1BD9D, 0x22560768, 0xA50CF7C3, 0x549570C4, 0x0A448B83} } ,
29696 { {0x5C92AE63, 0xBE0E6432, 0x217D2BA6, 0xED091E22, 0x2319E40B},
29697 {0xF7333A54, 0x5688F722, 0xF5714940, 0x672DFA8A, 0x03A35B6F} } } ,
29698 { { {0xE22CB013, 0x73843F65, 0xF89B356E, 0xC19EAEAA, 0x1E514C33},
29699 {0x68B0AC65, 0x8C1D07B5, 0xBA39D3A3, 0xC87B3479, 0x20825338} } ,
29700 { {0xA18E8632, 0x5437B66B, 0x5560684F, 0x3E0785BF, 0x09821F0A},
29701 {0xFB3A8347, 0x4E66BE16, 0x9C605308, 0x37EFA1E7, 0x1743ABB7} } } } ;
29703 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_mul 3029 a000");
29704 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_mul 3030 a001");
29705 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_mul 3031 a010");
29706 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_mul 3032 a011");
29707 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_mul 3033 a100");
29708 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_mul 3034 a101");
29709 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_mul 3035 a110");
29710 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_mul 3036 a111");
29711 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_mul 3037 a200");
29712 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_mul 3038 a201");
29713 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_mul 3039 a210");
29714 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_mul 3040 a211");
29717 static const fp12_t var_a = { { { {0xD98F9094, 0x426075AC, 0x163BC36C, 0x7F2CEDF3, 0x15AA5510},
29718 {0xC2797CF5, 0x1CB1FB01, 0xC52EC58B, 0xF7C2EF94, 0x071C4F82} } ,
29719 { {0x9FE46A09, 0x48BEEA89, 0x2AAD1FDF, 0x61E25A84, 0x19A694BF},
29720 {0xB2EEC6A8, 0xAC55AB4A, 0x3EC63353, 0x4DEBE91D, 0x00DB3E28} } } ,
29721 { { {0xBE7F4819, 0xE0175C68, 0xA8B913CA, 0xF9F5496C, 0x05B51B53},
29722 {0xF7CF2DD2, 0xD7C99C71, 0x9B6F319D, 0x068F64F3, 0x041936A9} } ,
29723 { {0x582ACBF7, 0xFAC6DEA9, 0x2D524690, 0x74CA03F0, 0x10B3C823},
29724 {0x33693CA6, 0xD4C537DE, 0x87D5E194, 0xFE139CD9, 0x100A1439} } } ,
29725 { { {0xC54341C8, 0xACC421DE, 0x912212D9, 0xC969EE25, 0x04A9C2F1},
29726 {0x5135D6FA, 0xCA9782DD, 0xE033484C, 0x88232F60, 0x0EE93CAB} } ,
29727 { {0xE69EAC1C, 0xFFA78D15, 0x673D2EBF, 0x5F0D2942, 0x03F4BB22},
29728 {0x3272243C, 0xA8E7EB84, 0xADAFFD4F, 0xB50D7B2A, 0x1556D149} } } } ;
29729 static const fp12_t var_expected = { { { {0x198381FD, 0x61881CC1, 0xD9D025E6, 0x481248D1, 0x0F538A56},
29730 {0x93D84D28, 0x97FF8929, 0xABE06781, 0xEC8BDA6A, 0x0521B1D3} } ,
29731 { {0xC0E6EF19, 0xAB31F700, 0x62C3CC60, 0x3BB94867, 0x0BF120B3},
29732 {0x3DF7E99E, 0x554A8857, 0x6141A273, 0x35EE36A4, 0x1C1EA39D} } } ,
29733 { { {0x567B3059, 0x48752A13, 0x5D1CFF08, 0x1A4D8121, 0x13C4DC27},
29734 {0x04C8447D, 0x7B911D03, 0xEE13C107, 0xAEA2D64B, 0x07D4D3DC} } ,
29735 { {0x7958D902, 0x850F087B, 0x5B205B07, 0xC9A42F0D, 0x0907D875},
29736 {0xE3BDAF5F, 0x0A8CA249, 0x4BA77E8A, 0x3CE2A564, 0x223BB430} } } ,
29737 { { {0x19A1771C, 0x0BBE9F7C, 0xA9B6EC0B, 0xAD808B52, 0x0E43A871},
29738 {0x7DAF65DE, 0xFA6C944B, 0x0EFBF4C6, 0xF184A9B3, 0x166E43B2} } ,
29739 { {0xF6F9DBD1, 0x4A4977F3, 0x7C074BCB, 0x97CF4AC7, 0x0D78EDD6},
29740 {0x67576A7A, 0x9623019B, 0xF72FEA23, 0x4D33238E, 0x2310CFF9} } } } ;
29742 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3041 a000");
29743 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3042 a001");
29744 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3043 a010");
29745 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3044 a011");
29746 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3045 a100");
29747 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3046 a101");
29748 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3047 a110");
29749 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3048 a111");
29750 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3049 a200");
29751 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3050 a201");
29752 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3051 a210");
29753 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3052 a211");
29756 static const fp12_t var_a = { { { {0x31ABFED9, 0xB5D04D34, 0x8DA3F0DB, 0x95A12501, 0x066EFB0C},
29757 {0x5BD2DD32, 0xB26E0BAE, 0x22C26D72, 0xBAA6D013, 0x20921127} } ,
29758 { {0x4A5C8E8C, 0xF2B7190D, 0x83F45FBE, 0xD9434089, 0x23853968},
29759 {0xA04BEFB1, 0x2918D32B, 0xA0360914, 0xFD58669E, 0x10F77C0A} } } ,
29760 { { {0xDCE8C1B0, 0x567A9718, 0x137E8998, 0xE08AAF63, 0x1507EE1B},
29761 {0xBBB017B6, 0xF9ED85CA, 0x87F8C9AA, 0x9A37E4DF, 0x13565278} } ,
29762 { {0xD05B2834, 0x019E2CD9, 0x3873D0E1, 0xD1D40B52, 0x1DA01B96},
29763 {0xCDAA0516, 0xEE357393, 0x732DE4F1, 0x3A886A2A, 0x0EA1D401} } } ,
29764 { { {0x599DCC7C, 0x054D8BBF, 0x8E6FD8EC, 0x5BAC798A, 0x1B04BFFE},
29765 {0x0CE55BF0, 0x34E9758F, 0xAB1AA1D4, 0xD06591B3, 0x0F5DB02F} } ,
29766 { {0x8B064574, 0x48050717, 0xB009406A, 0x556D8298, 0x2358BEB8},
29767 {0xF475AFD4, 0x26DB30C1, 0xDDE6953F, 0xAC9FCB80, 0x13E3D27E} } } } ;
29768 static const fp12_t var_expected = { { { {0x9E5A52AD, 0xC3E14F7C, 0xEC04F0A9, 0xDBF1873B, 0x2145F380},
29769 {0x50175E81, 0x307B2554, 0xA84E6FFC, 0xB45F15DD, 0x21AEBA14} } ,
29770 { {0x1592DA1F, 0x28D17A85, 0xC5E700C6, 0x11F8CDC2, 0x1C9B08BC},
29771 {0x6F3D93CD, 0x77D3E9D7, 0x7A559899, 0x0744C3D6, 0x02E886B9} } } ,
29772 { { {0x6C28DD7F, 0xC536F1A0, 0x6BC80013, 0xFCD2B5C9, 0x1F6CB968},
29773 {0xDAB86431, 0x7FB2D3A7, 0xC990277D, 0xEC895786, 0x208B9B34} } ,
29774 { {0x069DA194, 0xD7757584, 0xADFB0C1C, 0x76EEE343, 0x20C71B60},
29775 {0x05F07B1D, 0xA4D6388B, 0xDE7D9308, 0x18D8CCE4, 0x0945F32E} } } ,
29776 { { {0xD991395F, 0x5F7C5FA3, 0x11AD9B55, 0xEC1E97D7, 0x1AEF8BAC},
29777 {0xE01BC8AA, 0xB0876B50, 0x748E47E2, 0xF31C787F, 0x000DC440} } ,
29778 { {0x662930EB, 0x16B0E3C7, 0x3B0824AE, 0x9C087D0F, 0x144914F5},
29779 {0x07F94965, 0xDA4CF435, 0xB9DAFC60, 0xBE6B88FC, 0x13FE45CC} } } } ;
29781 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3053 a000");
29782 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3054 a001");
29783 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3055 a010");
29784 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3056 a011");
29785 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3057 a100");
29786 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3058 a101");
29787 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3059 a110");
29788 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3060 a111");
29789 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3061 a200");
29790 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3062 a201");
29791 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3063 a210");
29792 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3064 a211");
29795 static const fp12_t var_a = { { { {0x03D84C2A, 0xCDF09AD2, 0x320F0CCF, 0xCACF7910, 0x00F756E2},
29796 {0x7A5A1CFF, 0x0F7D86D8, 0xF55F6AE7, 0x09325B65, 0x1D435531} } ,
29797 { {0x4B9E9345, 0x938AC5A8, 0x1DE98B33, 0xABFACEFF, 0x22115A6C},
29798 {0x77605BA4, 0x1D53F029, 0x79598ACA, 0x5EB002B9, 0x19D7FA0E} } } ,
29799 { { {0x78777A13, 0xD8D629BD, 0x257F44B5, 0x51EAE75F, 0x21195EC6},
29800 {0x3B24D126, 0xF1DE3021, 0xC9FECF62, 0x8BE2EF45, 0x172B727C} } ,
29801 { {0xBF6D5693, 0x0D86B9F3, 0xCB988602, 0x6BB63186, 0x06375A54},
29802 {0x99D39EC3, 0xB651ED69, 0xF88E3270, 0x3A7F937C, 0x01092A63} } } ,
29803 { { {0x730CFD1C, 0x3A7EC304, 0x2470CF43, 0xDB5D2957, 0x23268366},
29804 {0xB504A57F, 0x172C4FEB, 0xD4D71103, 0xB41BE61F, 0x149AB14E} } ,
29805 { {0x989FA751, 0x7DA14FC6, 0xD0C9DD41, 0x2C1F6087, 0x0A983883},
29806 {0x0193ECCA, 0xDAAB130A, 0xC1659FE7, 0x575F7E77, 0x1523C4A3} } } } ;
29807 static const fp12_t var_expected = { { { {0x3C816794, 0x4EE63467, 0x3105C4E6, 0x5A6F7CA0, 0x09FEE65F},
29808 {0x183DE72D, 0x82809CBA, 0x11172C43, 0x2E453BA1, 0x02BDAE81} } ,
29809 { {0x73A39918, 0x03EB6E79, 0x1D959968, 0xD8463A4F, 0x07A3868F},
29810 {0x5839C3EB, 0x86FA3E7C, 0x167791A6, 0x6B5A529B, 0x17A89A03} } } ,
29811 { { {0x1E882978, 0x164A9E2C, 0xF7ACC5E9, 0x33CFD0DE, 0x00101B6F},
29812 {0x58CEF5A7, 0xC6429962, 0x08F91A2E, 0x727CF7FE, 0x0218792F} } ,
29813 { {0x9E7FA53C, 0x1FB074FE, 0x9AB349A2, 0x16E348E7, 0x22B41B73},
29814 {0x4A10606F, 0x797CD20A, 0x307C1DC6, 0x561580A4, 0x102CBD55} } } ,
29815 { { {0xACD46FA6, 0x832C2DD1, 0xFE7694C4, 0xA3136262, 0x0DFF3907},
29816 {0xB06B02DB, 0xF3C57A57, 0x2B31D848, 0xC6C61D06, 0x1C392E82} } ,
29817 { {0x6019589C, 0x576AAE93, 0xDE844487, 0x089F70BB, 0x1C557E52},
29818 {0x348472C8, 0x0493372E, 0xA98F65A7, 0xAD7480A2, 0x07B72292} } } } ;
29820 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3065 a000");
29821 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3066 a001");
29822 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3067 a010");
29823 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3068 a011");
29824 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3069 a100");
29825 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3070 a101");
29826 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3071 a110");
29827 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3072 a111");
29828 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3073 a200");
29829 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3074 a201");
29830 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3075 a210");
29831 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3076 a211");
29834 static const fp12_t var_a = { { { {0x0824F310, 0xDECE85EF, 0x053B0C28, 0x4EDF7DA4, 0x15C3C05D},
29835 {0xDBB01F5B, 0x4A96C022, 0x4F9656DF, 0x65CE1499, 0x0796F641} } ,
29836 { {0x5EC5DDE3, 0xCA01BFFC, 0x2C6FD81D, 0xBEFC51C8, 0x1A4B1C39},
29837 {0x25F6276B, 0x724DFE3B, 0x87F04502, 0x4058DF5A, 0x0C67D153} } } ,
29838 { { {0xBA3A713B, 0x7212D5CA, 0x6283EFE6, 0x4586C5A9, 0x07958EB2},
29839 {0xCFAC3AE2, 0x7171E54E, 0xCE75CCF1, 0xFCACF2F2, 0x025CC4F5} } ,
29840 { {0xEA78B1D2, 0xC16C9186, 0x9B890845, 0x665ACAB3, 0x1ABE3AFD},
29841 {0xBD6C910F, 0x4AC6B579, 0x9F2051B7, 0x9E923724, 0x1613E87F} } } ,
29842 { { {0x61D1C199, 0x3DCBA1E0, 0x3D628D36, 0x686CB808, 0x03E0B982},
29843 {0xBB76261A, 0xF25F940B, 0x97C04FA4, 0x96C32C33, 0x16579995} } ,
29844 { {0x5DC2CEB7, 0x7D67D7F8, 0xD7C6405C, 0x45931EE8, 0x0C700A07},
29845 {0xA484EFBF, 0xC969BA37, 0x087716C3, 0xED97CBD1, 0x20200C2D} } } } ;
29846 static const fp12_t var_expected = { { { {0xB8584A35, 0x24F52BF0, 0x3B4B9CFB, 0x56BF4D87, 0x20A50CAD},
29847 {0x3CE91496, 0x25D1940E, 0xC25C74C2, 0xD28EEFCB, 0x22837E94} } ,
29848 { {0xAEAAD7AC, 0xD6DED5D9, 0x05C951D1, 0x18ADFEA6, 0x05498792},
29849 {0x20EC35B5, 0x76D73A06, 0xFF98B25C, 0x70D3642E, 0x0858F063} } } ,
29850 { { {0xF937D6C1, 0xBC0517A4, 0xFC8888DE, 0x906C9D5F, 0x0D1FD4B7},
29851 {0x771405BA, 0x6D7C6272, 0x8DFC89BC, 0xD674AB85, 0x1379EA5B} } ,
29852 { {0x33601D45, 0x898C306C, 0xEF842784, 0x8E2BF69E, 0x1F7A0F32},
29853 {0x2533FC05, 0x651BBA7E, 0xBB26B47D, 0xACFE1A3F, 0x09586A85} } } ,
29854 { { {0x4A5DC7DC, 0xA04601C9, 0x977A3533, 0x19FE5BE8, 0x1889C941},
29855 {0x396806EE, 0x41D827CC, 0x63F24A61, 0x4DC7746D, 0x05E2242D} } ,
29856 { {0x8A38A999, 0x7ED463C1, 0xA8E90BC8, 0xD294005C, 0x1F9C156B},
29857 {0x9EDD30C5, 0x33A98354, 0x48E9571F, 0xEA4BBA43, 0x02A663B4} } } } ;
29859 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3077 a000");
29860 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3078 a001");
29861 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3079 a010");
29862 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3080 a011");
29863 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3081 a100");
29864 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3082 a101");
29865 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3083 a110");
29866 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3084 a111");
29867 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3085 a200");
29868 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3086 a201");
29869 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3087 a210");
29870 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3088 a211");
29873 static const fp12_t var_a = { { { {0xB67C4836, 0xD850C52C, 0x474D6902, 0x57D486E2, 0x20DC9A9B},
29874 {0x565369C7, 0xA646E703, 0x5202DCF7, 0x9A968110, 0x048A1559} } ,
29875 { {0xED584C7F, 0x3838FE10, 0x1A2FB281, 0xE9A3539A, 0x23081765},
29876 {0x8F475BFF, 0x0E22FDD3, 0xAAC033DF, 0xD92C7BEE, 0x0C22BD93} } } ,
29877 { { {0x04344A6E, 0x25CAA46F, 0xCB176661, 0x0152E674, 0x03185FBD},
29878 {0xE5E51902, 0x88F80FF9, 0x1BBE265A, 0x24D44D28, 0x1B445813} } ,
29879 { {0x787C372D, 0x3AD716A8, 0xA48DA5A5, 0x93C4EF18, 0x0E23E29A},
29880 {0x0E977F69, 0xCA11BEE1, 0xA6ACB804, 0x38DEE500, 0x236FC7D9} } } ,
29881 { { {0xD3CFDB78, 0xDA20D68B, 0xEA9D8A2B, 0xAB4792D5, 0x0E66104E},
29882 {0x2E62E242, 0x5AAFB9A1, 0x2A67CA3F, 0x808F77B9, 0x0F90A662} } ,
29883 { {0x55E2C32B, 0xDC64A501, 0xE498863E, 0x218B74CD, 0x00CD7D17},
29884 {0xFAB9135E, 0x99BDB289, 0x3A268BE8, 0xF205417A, 0x170DDB9A} } } } ;
29885 static const fp12_t var_expected = { { { {0x85F9F366, 0x298490F7, 0xB627566C, 0x7F024460, 0x06B4B7B3},
29886 {0x8C2AA61B, 0x72A28B8C, 0x3C447283, 0xD8B73BDE, 0x0E72D683} } ,
29887 { {0x066E8D0F, 0x6DB5FC9B, 0x25C37A64, 0xADB9B286, 0x000AF7AC},
29888 {0x73F9987E, 0x28F9D11A, 0xC010F440, 0x1EAD9498, 0x14D8B25C} } } ,
29889 { { {0xDE04A61A, 0x996DCA3C, 0xCE5FE4E3, 0xAEA35CAB, 0x039039F1},
29890 {0x0C34C846, 0x3B68893A, 0x07D92259, 0x950B6ED9, 0x133E3F55} } ,
29891 { {0xCD0DF21C, 0xE332F01A, 0xC1177D1F, 0xCBA7254E, 0x1A652BB3},
29892 {0xE80A0D9D, 0x8DCCF8D8, 0xDA76A6B7, 0x8003DA11, 0x0FF19B51} } } ,
29893 { { {0x90725188, 0x1AD38818, 0xE979AFE4, 0xD1DBAD92, 0x02C8529E},
29894 {0x4637B226, 0x2EBB23E3, 0x8A0FC5C8, 0xF0483CD7, 0x061C2629} } ,
29895 { {0x3FE14AD4, 0xA2E3F595, 0x64C230DF, 0xF91BA8E6, 0x0C3443C5},
29896 {0xE9726EFB, 0x6F8ED721, 0x763C1136, 0x42FF85F2, 0x0E4F64AA} } } } ;
29898 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3089 a000");
29899 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3090 a001");
29900 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3091 a010");
29901 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3092 a011");
29902 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3093 a100");
29903 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3094 a101");
29904 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3095 a110");
29905 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3096 a111");
29906 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3097 a200");
29907 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3098 a201");
29908 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3099 a210");
29909 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3100 a211");
29912 static const fp12_t var_a = { { { {0xB76CAA6A, 0xF4F58457, 0x968A0CFB, 0x920ADBC7, 0x12AAEC55},
29913 {0x4809A28D, 0xC1B7B94B, 0x2B894483, 0x0C2CED7B, 0x00A8562A} } ,
29914 { {0x24AB722B, 0xBBE19E80, 0x997F533C, 0x0128331E, 0x1570FF2C},
29915 {0xE990E805, 0x913D824B, 0xC050CB37, 0x1C44B48C, 0x19326F63} } } ,
29916 { { {0xF687E7AD, 0xBD14D777, 0xE37ECBCA, 0x593BBB27, 0x0C93337C},
29917 {0x1F11CBF2, 0x921F95B4, 0x451654D0, 0x0CE9CBA3, 0x19CAB781} } ,
29918 { {0x67A5B712, 0x4C3E1365, 0x44A394E0, 0x4C1EABC8, 0x0D9A9A67},
29919 {0xD599FC36, 0x2AE0FA48, 0x2335B3A5, 0x3DE96529, 0x1CAFAF66} } } ,
29920 { { {0xCF030527, 0x23288662, 0x56375A3B, 0x0A4058BA, 0x1B1DD63D},
29921 {0x675E92E1, 0xCDD45451, 0xBC862315, 0xCFCA7914, 0x0530A940} } ,
29922 { {0xA34490F7, 0x6F4538B9, 0x0AF1AD60, 0xF93CDF6F, 0x229E5600},
29923 {0xA547A0B7, 0xC018F20D, 0x432C8F7B, 0x5B621540, 0x0F70FDBF} } } } ;
29924 static const fp12_t var_expected = { { { {0x02C0F1C1, 0xA93B1460, 0x7CA73ED1, 0x379768FE, 0x1183BAF6},
29925 {0xE6B0904D, 0x9925CE61, 0xA23FA212, 0x389369D1, 0x1DF7BC52} } ,
29926 { {0xD4AA2345, 0x56B61038, 0x0933B0E7, 0xC3B1814E, 0x0AC91746},
29927 {0xAF0C743E, 0x0369C98C, 0xCCE26495, 0xA7581140, 0x12270529} } } ,
29928 { { {0x800D334B, 0x216AFB07, 0x05E52715, 0x5D541520, 0x16CA6239},
29929 {0xF48BC91B, 0x2DD4AF6E, 0x9470FAAF, 0xDE0CA421, 0x1E653609} } ,
29930 { {0x41890D68, 0xF6038791, 0xDC4410FE, 0xB776022F, 0x23013DA5},
29931 {0x4586CEA8, 0x43FBB397, 0x2BF5F85A, 0x2EA7E9C9, 0x1BCA2A72} } } ,
29932 { { {0x274030EA, 0x795FCF8D, 0x85CDCED5, 0x8045669D, 0x15129E2E},
29933 {0xD8FE731B, 0x4B577432, 0x46C40A24, 0xA7DE6938, 0x0745113B} } ,
29934 { {0xFCC58C8A, 0x0330E3D6, 0x4FBD88F6, 0x1AE95CD5, 0x02C515C8},
29935 {0xF8FAE900, 0xA8F88823, 0x225F3403, 0x4B9EC343, 0x048A94A4} } } } ;
29937 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3101 a000");
29938 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3102 a001");
29939 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3103 a010");
29940 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3104 a011");
29941 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3105 a100");
29942 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3106 a101");
29943 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3107 a110");
29944 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3108 a111");
29945 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3109 a200");
29946 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3110 a201");
29947 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3111 a210");
29948 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3112 a211");
29951 static const fp12_t var_a = { { { {0x009F8C31, 0xD0EB6209, 0x757108CD, 0xB1DB8DA4, 0x1EFD5983},
29952 {0x69F18E28, 0x7DB27F65, 0xFBA922CA, 0x06CE3B1F, 0x02CD6E6C} } ,
29953 { {0x0F516236, 0xFC4ED1FF, 0x4A371B14, 0x9CD4A2B1, 0x219B4A3B},
29954 {0xCF83696F, 0x2A5F2119, 0x77C55099, 0x7F36A6F9, 0x13D69296} } } ,
29955 { { {0xBA5C8164, 0xA7F685D1, 0x3A9168CC, 0x7F5E904A, 0x01389312},
29956 {0x12F0541D, 0x979F9748, 0x76755037, 0xA28BB736, 0x22ECA860} } ,
29957 { {0xE540F1CD, 0xF016E2A3, 0x45755504, 0x2CC888F0, 0x21DFF89C},
29958 {0xA11237D2, 0x11AE3706, 0xE04FBE36, 0x17EC0A94, 0x1847D231} } } ,
29959 { { {0x1CA20369, 0x4E9F9388, 0x2578B218, 0xA9C82EF0, 0x1754D4AC},
29960 {0x821EDDEF, 0x0D011FFC, 0x1E6E2681, 0xD18DBCB1, 0x1D082AA5} } ,
29961 { {0xACC10782, 0xF24FD168, 0xC6CCB531, 0x6FC96706, 0x111B2891},
29962 {0x5F943DA8, 0x9EC0BA12, 0x577AE61D, 0x8FB3FE07, 0x22F4457F} } } } ;
29963 static const fp12_t var_expected = { { { {0x2E534EF8, 0x4846FB9B, 0xC58E66FA, 0xBC722006, 0x0DB6CC22},
29964 {0x9EA42234, 0x9EF69FFA, 0x0F6DE946, 0x881DDC9F, 0x1DDB5D34} } ,
29965 { {0xDA409246, 0x60815F71, 0xBD80458F, 0x691B25F0, 0x17027D10},
29966 {0x13D44113, 0xF30FAA87, 0xE83A1EE4, 0xD7AD1FE6, 0x09B57EE3} } } ,
29967 { { {0xBB9BFABF, 0x132BDEAB, 0x3BF59619, 0x4D333237, 0x1F7296CD},
29968 {0x0236BBB1, 0xE4C7926B, 0x867A9902, 0xF842D43C, 0x23479873} } ,
29969 { {0x02EDAFF4, 0x1DB1E280, 0x5402CB47, 0xF532C48C, 0x08D7425D},
29970 {0x80C2C288, 0x56D1D60D, 0x21963CF4, 0x710D4C82, 0x11C44EEA} } } ,
29971 { { {0xF62DFE97, 0x68C40DE9, 0x4691D2D6, 0x5B17621D, 0x21CE3129},
29972 {0xFDA25B84, 0xAA4E3253, 0x81CD154C, 0x514584C2, 0x22E42ED6} } ,
29973 { {0xA76F9EAF, 0x730CEF2C, 0xA9389D6A, 0xE8A74F6A, 0x0E0AEB70},
29974 {0xEDB2B923, 0xDCFB8330, 0x3E69FA69, 0x4554A4D0, 0x02923542} } } } ;
29976 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3113 a000");
29977 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3114 a001");
29978 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3115 a010");
29979 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3116 a011");
29980 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3117 a100");
29981 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3118 a101");
29982 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3119 a110");
29983 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3120 a111");
29984 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3121 a200");
29985 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3122 a201");
29986 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3123 a210");
29987 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3124 a211");
29990 static const fp12_t var_a = { { { {0x879E37EA, 0x2AC3ACB6, 0x296245A8, 0xF19BE62C, 0x04967B93},
29991 {0xBC154D22, 0x0DA12F43, 0xD0DEAED0, 0x92D1BD3C, 0x0EFFE76B} } ,
29992 { {0x39D73050, 0x46148872, 0x4E89782F, 0x1BC39F6E, 0x0D881A20},
29993 {0x1BE822CB, 0x9F2AF427, 0xC37FA33A, 0x321C3C37, 0x0E7EFBD1} } } ,
29994 { { {0x2A972155, 0x6095A199, 0x0FD14155, 0x5C5DDED3, 0x06502DA5},
29995 {0x4A82639A, 0x963D69FA, 0x75B6EF00, 0xAED4B10A, 0x0C9FF2ED} } ,
29996 { {0xBE2CC3B3, 0x7AF83CB7, 0x0E1A6250, 0xB3DAC2E0, 0x17E7B524},
29997 {0xE7421F9F, 0x5FD17925, 0xCF7D1B40, 0x0026A254, 0x139E3239} } } ,
29998 { { {0x552F9B5C, 0x86ED1688, 0x23BC8E01, 0x218CF16C, 0x0B96AC57},
29999 {0x79B314C4, 0xA777E536, 0xE331E3D1, 0xF94E6387, 0x08DC5D1B} } ,
30000 { {0x8B7F1974, 0x9EA36C1B, 0x969CC98B, 0xA928A57C, 0x01A684D3},
30001 {0x741C9D5D, 0xF4297D64, 0xC823BF24, 0x2DCA08DE, 0x1972CBCB} } } } ;
30002 static const fp12_t var_expected = { { { {0x3486670C, 0xFC896219, 0xA73FE307, 0x3C8B0950, 0x16D4D862},
30003 {0x92D389FF, 0x7A87BC30, 0xEEC7FB2B, 0x80918F44, 0x0B27877D} } ,
30004 { {0xDEE05706, 0xE45B2C14, 0x68312FAB, 0xB431BBCD, 0x19E0F920},
30005 {0x1B6D038C, 0x9D71F206, 0x39CE5837, 0x62A9F616, 0x1E6BC722} } } ,
30006 { { {0xCB70F17E, 0x713748F7, 0xD5CB5FE7, 0x69D2E15A, 0x10D781A9},
30007 {0x5594C591, 0xEEF3D9AA, 0x108D8A6E, 0xBA66C8B6, 0x2299F1CE} } ,
30008 { {0xA9DA0D5A, 0x4B44B341, 0xB533E276, 0x1BCB58C6, 0x06247097},
30009 {0x072D72CE, 0xABB2E368, 0x612945F2, 0x70B2AC74, 0x07E7B1A6} } } ,
30010 { { {0x9CBF7914, 0xE2AC7BCF, 0xAD515ADF, 0x72917D78, 0x067E8690},
30011 {0xA37403BC, 0x9EA69F28, 0xEAC7ED0C, 0x975E8BBC, 0x05DCC89A} } ,
30012 { {0x483B47E5, 0x3A9F5F37, 0x0537519D, 0x372AC466, 0x12820487},
30013 {0xDAC1BCF9, 0xE9B21163, 0x34839A26, 0xA029506D, 0x08B68F64} } } } ;
30015 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3125 a000");
30016 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3126 a001");
30017 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3127 a010");
30018 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3128 a011");
30019 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3129 a100");
30020 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3130 a101");
30021 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3131 a110");
30022 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3132 a111");
30023 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3133 a200");
30024 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3134 a201");
30025 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3135 a210");
30026 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3136 a211");
30029 static const fp12_t var_a = { { { {0xA5BD1F81, 0xDCAF6DB5, 0x6B9FA738, 0xBB9D9C06, 0x0A310487},
30030 {0xA9D5D38B, 0xB55BC001, 0xBFDB7B8E, 0x24383F95, 0x1B537CF5} } ,
30031 { {0x67E9E9B2, 0x66FED9D9, 0x1EF2FCA7, 0x58B624B1, 0x1BECC59C},
30032 {0xA8735FA9, 0xD0345544, 0xDC7F9433, 0x16F29146, 0x1421D897} } } ,
30033 { { {0x878139BA, 0x65ED10B2, 0xA505DB68, 0xFD7E43C1, 0x05ACC93B},
30034 {0xE3ABC553, 0x7378BDB9, 0x5C973971, 0xE42196C2, 0x1D220389} } ,
30035 { {0x11516577, 0xA06D55F1, 0xECA4FFE1, 0xCDFCD601, 0x025B4B90},
30036 {0x3C5BB4C3, 0xA13EF921, 0x98562BA0, 0x828A42C9, 0x1410D526} } } ,
30037 { { {0xE464E530, 0xC9C5161E, 0x98BBC782, 0xA1F76DA4, 0x0B6696E2},
30038 {0xBDD1E454, 0x8589BB13, 0xC08EC1BA, 0x69E4CBBE, 0x08C1835A} } ,
30039 { {0x645FC635, 0xBE506486, 0x4FDCA4C5, 0x2022D1F8, 0x1A5CC199},
30040 {0x651C9DF9, 0x6EEB0115, 0xB3D833B9, 0xEFD2A497, 0x19A6EDC7} } } } ;
30041 static const fp12_t var_expected = { { { {0x13308108, 0x3576C8D9, 0x96072BAF, 0x4309098B, 0x14E23F78},
30042 {0xA1166C7B, 0x654A0D45, 0x448A77D0, 0x0926291C, 0x09E7BDA6} } ,
30043 { {0xFD49F233, 0x5A07A71C, 0x5BE081F0, 0xD1EBC708, 0x18D2FC69},
30044 {0xEBD0241B, 0x82BB686C, 0x116A8EFA, 0x221EA473, 0x1D77DDC5} } } ,
30045 { { {0x2F5EAEA9, 0xBAD7AABE, 0xA3AE6C78, 0xFD710FA5, 0x111A1D76},
30046 {0x7046DC01, 0x1C8FEACB, 0x7C3DC74D, 0xAF43144B, 0x1E5322FF} } ,
30047 { {0xDE9494B8, 0x6C0DEE24, 0xC635901A, 0xBBE79523, 0x04546F72},
30048 {0xFA075C7F, 0x9498DF0F, 0xDDA88398, 0xAD352029, 0x04DD4F5F} } } ,
30049 { { {0x4DC3EED8, 0xBAD5494E, 0xDBC15CF5, 0x7B282A29, 0x061D6979},
30050 {0xFB2CD31D, 0x3DB1DAB9, 0xE1CA2345, 0xB9B68C79, 0x1B6B8B2E} } ,
30051 { {0xACAAEA61, 0x7EC5A208, 0x26357144, 0x83F58863, 0x1F4A8C3B},
30052 {0xF06DB1AF, 0x86F2DA62, 0x92D52E35, 0xF175869F, 0x16E79F22} } } } ;
30054 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3137 a000");
30055 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3138 a001");
30056 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3139 a010");
30057 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3140 a011");
30058 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3141 a100");
30059 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3142 a101");
30060 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3143 a110");
30061 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3144 a111");
30062 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3145 a200");
30063 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3146 a201");
30064 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3147 a210");
30065 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3148 a211");
30068 static const fp12_t var_a = { { { {0x331DF454, 0x22721374, 0x3DA86FB4, 0x0E661998, 0x0EDE533A},
30069 {0x60299FE5, 0xF11064B5, 0x8676650B, 0xFD2AAEB6, 0x11EFA4D9} } ,
30070 { {0x28C3146A, 0xF82DEBE9, 0x5C3746D6, 0xA41F4701, 0x0C9298BC},
30071 {0xF49D2621, 0xC8336A05, 0x25CAF08F, 0xB43F9235, 0x204A9579} } } ,
30072 { { {0xA409A8BE, 0x8F36A1FB, 0x027C148B, 0xE1940ED8, 0x227C21AB},
30073 {0xF11AD788, 0xBCC99151, 0x39C165A0, 0x53EFB947, 0x176715D6} } ,
30074 { {0xF11DAC7D, 0xCCC01884, 0x3705EB9B, 0x4EB209F7, 0x18AD371D},
30075 {0x96BA4D80, 0x5267A0EB, 0x0621574E, 0x24A72A3F, 0x2382ED3E} } } ,
30076 { { {0xE0C3B0F7, 0xCED85670, 0xA636E2DC, 0x59800445, 0x0A5BF157},
30077 {0xDD28CFC5, 0x31095AF2, 0x5852E9FF, 0x295A8600, 0x168F7E63} } ,
30078 { {0x251B2A7C, 0x18CE65A4, 0x54316ABE, 0x2BC152C5, 0x005E44B3},
30079 {0x05C18713, 0xE559E9CC, 0x4CE9EA84, 0xFAD6DE81, 0x2216A49C} } } } ;
30080 static const fp12_t var_expected = { { { {0xEBD9269C, 0xC3DB6E7B, 0x780F50FD, 0xC546D4DB, 0x09365814},
30081 {0xDA794A8E, 0x817A4017, 0x763DC5F6, 0x7FC4FC26, 0x0373D728} } ,
30082 { {0x8D16A147, 0x90BA235C, 0x70952B86, 0x118E7050, 0x06E8D0BE},
30083 {0x1A58E686, 0xA1304122, 0xB17042DA, 0x4AE9D74A, 0x096905E4} } } ,
30084 { { {0x5685EADE, 0xC8EB0D68, 0xC65D2A16, 0x41F969E9, 0x1879251C},
30085 {0x12C97C52, 0x4ED3271A, 0x9A002CF8, 0x0E726E26, 0x115634D8} } ,
30086 { {0xF3EBC0C9, 0xC2C2A4DD, 0xEAE1124E, 0x6A97D1BE, 0x06F428F8},
30087 {0xF618ED6F, 0xCB8A5BFD, 0x3BCC1F25, 0xC8A1E264, 0x1A54B6C7} } } ,
30088 { { {0xB1490941, 0x83952C95, 0x1E0A91CB, 0x00EE406B, 0x1F1ED56E},
30089 {0xF37CF0BF, 0xC1EF8E46, 0x6AA4E2AA, 0x6F69F2EF, 0x09CD93F9} } ,
30090 { {0x5E5817B6, 0x904F625C, 0x8E1E422D, 0x2F33E1E1, 0x0D2EAA18},
30091 {0x5B79909E, 0x4D11B151, 0x51A69C05, 0xA7D99CF0, 0x0E8D229A} } } } ;
30093 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3149 a000");
30094 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3150 a001");
30095 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3151 a010");
30096 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3152 a011");
30097 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3153 a100");
30098 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3154 a101");
30099 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3155 a110");
30100 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3156 a111");
30101 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3157 a200");
30102 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3158 a201");
30103 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3159 a210");
30104 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3160 a211");
30107 static const fp12_t var_a = { { { {0x3F79A0CB, 0x145DE8C1, 0x46F4595F, 0x8C82BBE6, 0x203F473B},
30108 {0x8BCED77F, 0xEDB26F4F, 0x96583EDB, 0x33AB3350, 0x00BC08BA} } ,
30109 { {0x70C6EA17, 0x65D00CE2, 0x3044F371, 0xF9E6EE42, 0x10999005},
30110 {0x3EB0738B, 0x743C6139, 0xFAFC943E, 0x2A96A2E4, 0x10D2F7B9} } } ,
30111 { { {0x1035C594, 0xEA577EAA, 0xA5C11294, 0xDACFE914, 0x1AE520EA},
30112 {0xA4350FED, 0x853FB614, 0x23C0D7BC, 0x7CAA6D06, 0x163C0362} } ,
30113 { {0x94383A8C, 0x598765F0, 0xA7C66B76, 0xE5A96738, 0x0B88324A},
30114 {0x9212FB07, 0xF8D6DBB4, 0x47C0CC3B, 0x750FE917, 0x171949AE} } } ,
30115 { { {0xC3749347, 0xA1DB6BBA, 0x68BAADBF, 0xCB4059C8, 0x109CD6EF},
30116 {0xAD297A5D, 0x405D8B6D, 0x4F9262EE, 0xE75BF83F, 0x14CD1B90} } ,
30117 { {0x2F86C627, 0x70763293, 0xF2476A3B, 0x36A94DFC, 0x04FD034C},
30118 {0x767D17AB, 0x53F6C959, 0x9C202B70, 0xB0955753, 0x11DBADE4} } } } ;
30119 static const fp12_t var_expected = { { { {0x5EAE1CE4, 0x902DB8A2, 0x67356AD9, 0xCF7DA39D, 0x0E248E12},
30120 {0x62921A69, 0x7EB2667D, 0x9D95CA2F, 0x4A013518, 0x1154F2A6} } ,
30121 { {0x3D8AAC9A, 0xC6937564, 0xF5FFD17F, 0xCC3A6573, 0x1773A62A},
30122 {0xFD8D6403, 0x70FBF69B, 0xA032C9A2, 0x85E156A7, 0x0F17B6EF} } } ,
30123 { { {0x608E008C, 0x07451BF9, 0xBE2B339D, 0xAAAC980B, 0x1ADA548C},
30124 {0xBB21C07C, 0xCCDA0E47, 0xC72D9EC0, 0x5EBB95CA, 0x02306B14} } ,
30125 { {0x7151C453, 0x276751A9, 0x65754CBE, 0xB6806605, 0x0FA74BF0},
30126 {0x67EE3FBB, 0x800033D4, 0xF1404A90, 0xA40D4F7A, 0x0E2F57FE} } } ,
30127 { { {0x69BE3AA4, 0xF19C437F, 0x771AA581, 0x1B10C224, 0x137214B1},
30128 {0x4B37DAA0, 0x8FC91A20, 0x5E09C756, 0xDE1B4967, 0x065F9AEE} } ,
30129 { {0xD3F1E24A, 0x3818F42F, 0xD5BEFB8B, 0xF79C7025, 0x1690DC8C},
30130 {0x8C0E12B3, 0xEA1B32FD, 0x5FF47581, 0x4DD17448, 0x0443CDB9} } } } ;
30132 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3161 a000");
30133 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3162 a001");
30134 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3163 a010");
30135 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3164 a011");
30136 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3165 a100");
30137 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3166 a101");
30138 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3167 a110");
30139 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3168 a111");
30140 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3169 a200");
30141 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3170 a201");
30142 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3171 a210");
30143 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3172 a211");
30146 static const fp12_t var_a = { { { {0xDE7A747C, 0x9021BFD2, 0xF7760CA8, 0x0049625B, 0x034E6812},
30147 {0xD4C2A44E, 0xBD64D376, 0x21C63CBF, 0x77F5D32F, 0x210D25BC} } ,
30148 { {0x454A68DE, 0xB2633EB5, 0xA6B7D1E3, 0xAC8E3E8E, 0x164160D1},
30149 {0x3841ABBD, 0x87B9D805, 0xD3DB3727, 0x696059BE, 0x239B66C4} } } ,
30150 { { {0x3030F865, 0x7CF95E63, 0x3A406A9F, 0xFE821D0B, 0x19347F2F},
30151 {0x9AAEB9EB, 0xCC9E0E27, 0xE67472DF, 0x4E2D95E6, 0x17088266} } ,
30152 { {0xBC569A27, 0xE58BEB2B, 0xC324D8C7, 0xD291233B, 0x1AD81132},
30153 {0xDCBE3EA1, 0xE5D54139, 0xC4948D69, 0x1399EB4D, 0x046FB229} } } ,
30154 { { {0x68D9366B, 0x32EA7E10, 0x923058B4, 0x02BF34AE, 0x128BE916},
30155 {0x4C78893A, 0xD7F346E0, 0x569C64D8, 0xA8177152, 0x1A71D666} } ,
30156 { {0xD8E39D8F, 0xF02F80A4, 0x21510C3D, 0x0D56BC49, 0x012AD87F},
30157 {0x3EDD86CB, 0x8FC14B61, 0x7EBD4B5F, 0x145E8121, 0x1693CA54} } } } ;
30158 static const fp12_t var_expected = { { { {0xA8844DBD, 0x39032797, 0x98AF4B50, 0x2016FFF3, 0x10A3A493},
30159 {0x40DA05F4, 0xF5F0E95A, 0xA9D2BF62, 0x254EBF43, 0x1FEF1C9A} } ,
30160 { {0xD64A74E8, 0x4F9F4652, 0xC9B78337, 0x3D2770C4, 0x1CFB2A67},
30161 {0x5E3F36F5, 0x7429AF97, 0xE81AD2CF, 0x14325E0E, 0x23D46813} } } ,
30162 { { {0x35C74388, 0xEFF6C078, 0x1DDAF392, 0xFF9B4CA0, 0x1FFCCE26},
30163 {0x046B4C90, 0x3EE3F5A5, 0x5B5C096F, 0x33481A6A, 0x11D81180} } ,
30164 { {0x358560F6, 0x3D77307B, 0xC9CF254B, 0xC3DD1F99, 0x1D2979E7},
30165 {0x88AA58F8, 0x5D3DA89C, 0xE60461EF, 0x59F65DB7, 0x0939712F} } } ,
30166 { { {0xB30B5FC8, 0x9B9B7135, 0x80A34C5B, 0xF7DB86ED, 0x1211FC9D},
30167 {0xD2251DFB, 0x9DE1BC32, 0xEAE9A612, 0x66C9A504, 0x21273442} } ,
30168 { {0x3FBF6E89, 0x6A808C4F, 0xEF169357, 0x3AF0516A, 0x119E17DE},
30169 {0xF03140F1, 0xF8FBC7E5, 0xF9709F2C, 0x9E4D4AA7, 0x176A252D} } } } ;
30171 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3173 a000");
30172 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3174 a001");
30173 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3175 a010");
30174 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3176 a011");
30175 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3177 a100");
30176 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3178 a101");
30177 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3179 a110");
30178 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3180 a111");
30179 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3181 a200");
30180 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3182 a201");
30181 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3183 a210");
30182 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3184 a211");
30185 static const fp12_t var_a = { { { {0x0ED40033, 0x435FA29A, 0xF1A639D9, 0x1359BD58, 0x11CBAD1A},
30186 {0x294442FA, 0xD52A0267, 0x15B8FEC2, 0x02733578, 0x14793936} } ,
30187 { {0x09080983, 0x3D55CAE4, 0x1288DE32, 0x5D4007D0, 0x1AF5A21A},
30188 {0x25903CFB, 0xC5CB77AC, 0x88D5071B, 0xF80DD463, 0x10AB7413} } } ,
30189 { { {0xE86C034D, 0xDCB21995, 0x489C8CDE, 0x06A6E405, 0x010B1370},
30190 {0x3F6A007D, 0xBFBC86DC, 0x9E68B932, 0xC32CE373, 0x10BB5D7B} } ,
30191 { {0x2859D4EB, 0xB1214290, 0x1A06ED55, 0x7E344328, 0x0B489822},
30192 {0xCC793572, 0xD81F4E8F, 0xC49F3223, 0x28A33101, 0x076ED805} } } ,
30193 { { {0x2C916781, 0x3CEBF353, 0x8035816E, 0x77CD622A, 0x022967B9},
30194 {0x418799C2, 0xFA1AF7FF, 0x75F33473, 0x223938CA, 0x0B1B6E46} } ,
30195 { {0x5AD7BA14, 0x1D8C4AC7, 0xC044EDCA, 0xA3B03094, 0x0FBFCD3C},
30196 {0x747E99C3, 0x0129003A, 0x209A0A6B, 0xDB99D025, 0x22FB3C8A} } } } ;
30197 static const fp12_t var_expected = { { { {0xC80F21B9, 0x8E23B1B2, 0xD0057C12, 0xDEC9AAAE, 0x08F930E7},
30198 {0x8E18AF2A, 0x6E9AF3D9, 0x5E0CE12C, 0x1C8D5021, 0x15D9ABDA} } ,
30199 { {0x0B16DE15, 0x6ECA7092, 0x297CC369, 0x16579BC7, 0x17C50EBB},
30200 {0x41A983AC, 0x57CBCD5B, 0x1F5FD40B, 0x52A9472A, 0x180DB34B} } } ,
30201 { { {0xC1B648BD, 0x8DD42408, 0x961FC5BD, 0xDF428A46, 0x19209827},
30202 {0x90323153, 0x4DD8AFDA, 0xAFDEF7A2, 0xEA02D9E4, 0x04F95E3E} } ,
30203 { {0xB47E6DF1, 0xA9D4727D, 0x6AEB33D1, 0x54BEFF2F, 0x20B1AEA4},
30204 {0x93211CA4, 0x2725F496, 0xCEE63116, 0x099CF672, 0x003DC7A7} } } ,
30205 { { {0xFAA0C813, 0x11BC2443, 0x37452175, 0xBC59D54B, 0x108BCE1A},
30206 {0x659CB58B, 0x5CF82083, 0x28553002, 0x4662400F, 0x168ED5B0} } ,
30207 { {0x5F2F34E2, 0x3ADEC15D, 0xC15DC8CA, 0x7199ADF9, 0x105123C6},
30208 {0x2EF7F50A, 0x7FECCD19, 0x06A866F8, 0x6FDA2273, 0x07067AB8} } } } ;
30210 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3185 a000");
30211 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3186 a001");
30212 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3187 a010");
30213 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3188 a011");
30214 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3189 a100");
30215 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3190 a101");
30216 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3191 a110");
30217 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3192 a111");
30218 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3193 a200");
30219 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3194 a201");
30220 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3195 a210");
30221 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3196 a211");
30224 static const fp12_t var_a = { { { {0x14E285AA, 0xCD07E106, 0x8EC744F4, 0x4DD11D47, 0x14E341DF},
30225 {0x981B2B19, 0x8921DD44, 0x8A005545, 0x79E0B11F, 0x1F7C5F35} } ,
30226 { {0x8FF35DAF, 0xED2ACDCF, 0xE44C4402, 0xF5239F2E, 0x126A3CDF},
30227 {0xEFBD4983, 0x74D6B1B9, 0xAC3ACC26, 0xE56D4963, 0x0F789839} } } ,
30228 { { {0x8BBDC53A, 0x4DA5A2C4, 0xF0B286AB, 0x03C533A0, 0x15301CF8},
30229 {0x870CB962, 0xF80047CD, 0x6724AE58, 0x79A56B02, 0x178B78A5} } ,
30230 { {0xE56B19E9, 0x1F6E25F5, 0x469C9A89, 0x06286C78, 0x03BC335A},
30231 {0x14FC0F2D, 0xBA30B678, 0xE178B037, 0x38E102F5, 0x12264C75} } } ,
30232 { { {0xE3C09B64, 0xA58E0BFA, 0x8CD2895F, 0x36645409, 0x0001ED8F},
30233 {0x2269614A, 0x6F8622D9, 0x04282DA3, 0x54D8F5A6, 0x20E19755} } ,
30234 { {0xFF8B1421, 0x2FCDFB8B, 0x4D381D68, 0xC140A9D9, 0x0D567C3C},
30235 {0x19D7096E, 0xEFC884DA, 0x7495A6AF, 0x68871839, 0x0D084E2B} } } } ;
30236 static const fp12_t var_expected = { { { {0xE48C0C73, 0x445AB565, 0x9D56273F, 0x379F1919, 0x081BFE33},
30237 {0xC6E139E7, 0x75ECC167, 0x87F9C6C3, 0xC4D754CB, 0x204D2570} } ,
30238 { {0xB0D5E527, 0x6E08CCCE, 0x1D7CE26D, 0xCB9FB96E, 0x07CC7B51},
30239 {0x634C2F78, 0xBE944A44, 0xF8B57DB9, 0x2948ED40, 0x1F297D99} } } ,
30240 { { {0x7A4A8F75, 0xA0BED5D0, 0x4AFB5944, 0xCE26F17F, 0x16B7494F},
30241 {0x7D98C2FF, 0xCCFE497F, 0xCDF36185, 0x671666B1, 0x1933299D} } ,
30242 { {0xB0202E14, 0x60669558, 0x95715F6D, 0x35EB651D, 0x0E67CC32},
30243 {0x2B2B8EBB, 0x0420BF05, 0x6702E123, 0xC0504AC6, 0x1FADAFB3} } } ,
30244 { { {0x5BB5A96B, 0x2FB2FF08, 0x178B9F6B, 0xAD34FAAB, 0x068738F7},
30245 {0x8FB7ACB0, 0x9A49D957, 0x833DA52C, 0x00A12F63, 0x09C2DCE9} } ,
30246 { {0xD739F3EC, 0x5CEA7D0C, 0x6148E8CD, 0x303657A8, 0x013E5AB3},
30247 {0xA4775FCA, 0x3231DFD4, 0x2D24CE2D, 0xBFB9D4E6, 0x17F2C0EE} } } } ;
30249 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3197 a000");
30250 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3198 a001");
30251 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3199 a010");
30252 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3200 a011");
30253 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3201 a100");
30254 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3202 a101");
30255 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3203 a110");
30256 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3204 a111");
30257 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3205 a200");
30258 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3206 a201");
30259 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3207 a210");
30260 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3208 a211");
30263 static const fp12_t var_a = { { { {0x92F1E133, 0x74CDBEC0, 0xBD355BAC, 0xE8B4E5E5, 0x22330ECB},
30264 {0x13426B65, 0x37209AA2, 0xFD4FD2AA, 0x6341F97A, 0x0CB99B19} } ,
30265 { {0xF2DFB71B, 0x1C882C63, 0xD565C49D, 0x7045F4B6, 0x21BEA983},
30266 {0x5F5DE3A4, 0x9CF796A5, 0x2736F85E, 0xD53BA3D4, 0x09C0DE89} } } ,
30267 { { {0x7C658A4E, 0xFC4BD5DD, 0xBDF0E485, 0x8FD971D5, 0x0151C969},
30268 {0xF225B593, 0x01486A73, 0x9A9FD9EF, 0x0FC69AAA, 0x224DF14E} } ,
30269 { {0xDCCCB496, 0x57945470, 0x3BF2EECD, 0xBCD3C1B2, 0x1622212A},
30270 {0x5FA30A9C, 0x731F5A39, 0x44480B52, 0x41481438, 0x2215A527} } } ,
30271 { { {0x7660FD78, 0x5C57FDC1, 0x695ADDC8, 0xB2495C46, 0x0FE7F552},
30272 {0x2CB1561E, 0x6E69ECC8, 0x5F7312C6, 0x157005CD, 0x1DEFAC96} } ,
30273 { {0x3E8253C5, 0xF6B0E37F, 0x3D6922D9, 0x12DE07E0, 0x19905866},
30274 {0x27E60762, 0xD9F886A8, 0x9678EA8B, 0x15B9659B, 0x0AC63E61} } } } ;
30275 static const fp12_t var_expected = { { { {0x909F205E, 0x6E53A037, 0x1FA42001, 0x9F927150, 0x12CD72DF},
30276 {0xA96BE517, 0xA0F3185E, 0xD148A454, 0x415266B4, 0x0B069E33} } ,
30277 { {0x13AA5D17, 0x79E8A68D, 0x339487A7, 0x4D5EDFBC, 0x19A4FABE},
30278 {0xD6C8DDF0, 0x8C344EC5, 0xD94830F0, 0xE791704B, 0x0AD258B6} } } ,
30279 { { {0x1744B1B2, 0xDAC7F4A6, 0xD60BE250, 0xE8D970BC, 0x23A087B5},
30280 {0x7EAEF706, 0x629B32CD, 0x22284461, 0x3C0A5295, 0x18270AB3} } ,
30281 { {0xFAC4FAA4, 0xFFA9B7B3, 0x9F0FFBCA, 0xC87FB849, 0x1C5013AE},
30282 {0xFF955D10, 0xADAAC31C, 0x24C4283F, 0x6B194DD0, 0x01071C7E} } } ,
30283 { { {0xF8F14636, 0x47BFEC95, 0xCFB3DDA8, 0xFC5AEE53, 0x02BE1A47},
30284 {0x5F718DD2, 0xA0B4E092, 0x40EA3D7B, 0x2F427314, 0x086E2425} } ,
30285 { {0xC3A4B31B, 0x3CB2772A, 0x5C5345E0, 0x6F0EBD6F, 0x1F72EAB0},
30286 {0xCD65EC21, 0x8FA7F2EB, 0xEE66BD8B, 0x78EB5A44, 0x039CF746} } } } ;
30288 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3209 a000");
30289 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3210 a001");
30290 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3211 a010");
30291 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3212 a011");
30292 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3213 a100");
30293 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3214 a101");
30294 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3215 a110");
30295 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3216 a111");
30296 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3217 a200");
30297 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3218 a201");
30298 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3219 a210");
30299 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3220 a211");
30302 static const fp12_t var_a = { { { {0xC603A8D6, 0x9AB8F8A7, 0x050775DE, 0xF96E0ECE, 0x20D429DD},
30303 {0xA46C89AE, 0x7E1C1909, 0x8F8881FC, 0xD442E7FE, 0x044065FC} } ,
30304 { {0x5840A452, 0xE1D6A63F, 0xA22E0707, 0xF6BA30ED, 0x1A780CA4},
30305 {0x3A7C4E8A, 0x1A7A1DA7, 0x8C13C15C, 0xF70502FC, 0x0FB85FEE} } } ,
30306 { { {0xE839EC9F, 0x70F1F8E2, 0x086F8021, 0x481C97EC, 0x063CB5F3},
30307 {0x0603F6F5, 0xF2098DBA, 0xB7FB4F3F, 0x59A7AECB, 0x19CA239D} } ,
30308 { {0x2D3E8B5D, 0xE6AB05EE, 0xAB5641FF, 0xD9F2502C, 0x0DCBFCAE},
30309 {0x33271E04, 0x88E77280, 0x3196677E, 0xB3A96A41, 0x2157574E} } } ,
30310 { { {0x7E04E7F1, 0x8AA222B0, 0x88276D71, 0xA35AF67E, 0x111AC970},
30311 {0x20C14139, 0xAB7F7CBC, 0x25B57666, 0x0F282E8E, 0x1BF624F9} } ,
30312 { {0x5BB973F5, 0xF73D8943, 0x7C1EE88A, 0xDDD5F17C, 0x02B31D50},
30313 {0xDC9848A2, 0x7203A02F, 0x9E2B0591, 0x3094ECD4, 0x055DBAAF} } } } ;
30314 static const fp12_t var_expected = { { { {0x90FFED7B, 0xED37D017, 0x16012D91, 0x54B8F6C0, 0x1A1ED148},
30315 {0xA482252B, 0x85415580, 0xB783B007, 0x99ED4B7C, 0x02BD3522} } ,
30316 { {0x771CB562, 0x993370B4, 0x12BC00FD, 0xBD1F6B44, 0x0B515DFD},
30317 {0x374E26BD, 0xD45D5CEE, 0x72221DF4, 0x91EEFD08, 0x0CF24D87} } } ,
30318 { { {0x67B7401D, 0x4E88DE24, 0x7E5C94EC, 0x8A31659C, 0x13330273},
30319 {0x3A9E872B, 0x27493DCA, 0x83C0C1E1, 0xB22AF6BF, 0x10E8A0CB} } ,
30320 { {0x5A9EFADF, 0x673F265D, 0x22DADBB1, 0x06772D37, 0x053E325C},
30321 {0x22EB6710, 0xD3874C31, 0xF9CF6380, 0x7F1D476E, 0x0508EEA2} } } ,
30322 { { {0xFDA37DF9, 0xF3C0CDB9, 0x7F23D39F, 0xA657D788, 0x19EFDF6F},
30323 {0x6BBD2393, 0xD23B14F6, 0x3D019759, 0x929A76F7, 0x0D5D756D} } ,
30324 { {0xDE6EA76C, 0x5429E7C5, 0x857F9C3D, 0x27BCDD83, 0x1206CE32},
30325 {0x2D33A447, 0xB0B1AA8C, 0x8EE49BE3, 0xDC9CF1ED, 0x1762DDB5} } } } ;
30327 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_sqr 3221 a000");
30328 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_sqr 3222 a001");
30329 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_sqr 3223 a010");
30330 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_sqr 3224 a011");
30331 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_sqr 3225 a100");
30332 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_sqr 3226 a101");
30333 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_sqr 3227 a110");
30334 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_sqr 3228 a111");
30335 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_sqr 3229 a200");
30336 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_sqr 3230 a201");
30337 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_sqr 3231 a210");
30338 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_sqr 3232 a211");
30341 static const fp12_t var_a = { { { {0xE4C71244, 0x17D86FC4, 0x7747A3B2, 0xA0124B2A, 0x0A15F01C},
30342 {0x17151EB4, 0x2C82BD74, 0x82440E50, 0xA55443BA, 0x2105F6EF} } ,
30343 { {0xB0CF0AE7, 0x756D39BF, 0xF10BBFE7, 0x89745E6A, 0x22667BD9},
30344 {0x8A00FB7D, 0xEDEAE178, 0xFD0A27F5, 0x57F6AAE0, 0x06D3F4B7} } } ,
30345 { { {0xCD8A8C80, 0x245B34A9, 0xE33BA26D, 0xDA007B74, 0x0203DE0B},
30346 {0xAD03A0EC, 0x1287A573, 0x47158B2D, 0x7617B5B4, 0x056E8ABB} } ,
30347 { {0x5049B796, 0xD8437A19, 0x761A274A, 0x47588C76, 0x0AB2323C},
30348 {0x6FB290E7, 0x388DC106, 0xD83CED69, 0x7C8E7A71, 0x098B3AC1} } } ,
30349 { { {0xB18E7432, 0x8F2B7BC6, 0x938C5B7F, 0x5C910664, 0x1C30A467},
30350 {0xC7837969, 0x0B347D6A, 0x27F64896, 0xB3B4F4B8, 0x0C0EF878} } ,
30351 { {0xB2740761, 0x4EFAA681, 0x690B5DB7, 0x70A8F3D3, 0x1A2B90D0},
30352 {0xA1011DB6, 0x1EC00FF5, 0x0FB740D0, 0xD75B6FEA, 0x06E1CFFD} } } } ;
30353 static const fp12_t var_expected = { { { {0x72638922, 0x0BEC37E2, 0x3BA3D1D9, 0x50092595, 0x050AF80E},
30354 {0x0B8A8F5A, 0x16415EBA, 0x41220728, 0xD2AA21DD, 0x1082FB77} } ,
30355 { {0xFE8FAEA1, 0xC9CD472F, 0x952B4042, 0x9C655D28, 0x2333CDEE},
30356 {0x6B28A6EC, 0x060C1B0C, 0x9B2A744A, 0x83A68363, 0x156A8A5D} } } ,
30357 { { {0xE6C54640, 0x922D9A54, 0x719DD136, 0xED003DBA, 0x0101EF05},
30358 {0xD681D076, 0x8943D2B9, 0x238AC596, 0xBB0BDADA, 0x02B7455D} } ,
30359 { {0xA824DBCB, 0x6C21BD0C, 0x3B0D13A5, 0x23AC463B, 0x0559191E},
30360 {0x5E0171A1, 0xAB5D8AD3, 0x08C3D703, 0x95F26B2C, 0x16C62D62} } } ,
30361 { { {0x58C73A19, 0xC795BDE3, 0x49C62DBF, 0xAE488332, 0x0E185233},
30362 {0x89E9E5E2, 0x14B0E905, 0x30A0849A, 0x3185A84F, 0x18080C3E} } ,
30363 { {0xFF622CDE, 0xB693FD90, 0xD12B0F2A, 0x0FFFA7DC, 0x1F16586A},
30364 {0xD0808EDB, 0x0F6007FA, 0x07DBA068, 0xEBADB7F5, 0x0370E7FE} } } } ;
30366 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3233 a000");
30367 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3234 a001");
30368 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3235 a010");
30369 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3236 a011");
30370 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3237 a100");
30371 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3238 a101");
30372 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3239 a110");
30373 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3240 a111");
30374 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3241 a200");
30375 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3242 a201");
30376 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3243 a210");
30377 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3244 a211");
30380 static const fp12_t var_a = { { { {0xB084482E, 0x85975D20, 0x8D11413C, 0xCE2DA5B8, 0x14822957},
30381 {0x9CC80699, 0x2F6B8E3E, 0x135525F0, 0xB04D289D, 0x136B124F} } ,
30382 { {0xC2C9566B, 0x66834996, 0xB03B7F26, 0xEAB59D29, 0x00ADC5A9},
30383 {0xB9BF08B5, 0x4413CC0B, 0x9C5958F2, 0x43C1D012, 0x0BB35E15} } } ,
30384 { { {0x2A5F91A8, 0x5C11F538, 0xF8AD6235, 0x17A72FD4, 0x2093020E},
30385 {0x45A18981, 0xFD9B40D5, 0xDD2CD01B, 0x7F21F03F, 0x0FD7AD74} } ,
30386 { {0x278F7F61, 0xEDE1A965, 0x4978E80A, 0xC8539F28, 0x0730AD86},
30387 {0x6FDEE274, 0x860BCBA6, 0x26C14672, 0x503AA7D7, 0x17B817B4} } } ,
30388 { { {0x03B6BE4F, 0xE5D9D199, 0xC0ACE691, 0x1794BF6A, 0x0C39A72C},
30389 {0x219BC9C6, 0xB69A3792, 0x67BD1E5D, 0x677C45B5, 0x234C65CD} } ,
30390 { {0x14959380, 0xEABBD1A8, 0x3D752B42, 0xAFEDB304, 0x0CE52A47},
30391 {0x975D40A0, 0x8B09D7CE, 0x5B9FE0B8, 0xC3DB5BB1, 0x07A786BF} } } } ;
30392 static const fp12_t var_expected = { { { {0x58422417, 0x42CBAE90, 0x4688A09E, 0xE716D2DC, 0x0A4114AB},
30393 {0x748C2C7A, 0x26CC716F, 0xA64FF347, 0xAFD1C241, 0x1BB61929} } ,
30394 { {0x878CD463, 0x42584F1B, 0xF4C31FE2, 0xCD05FC87, 0x125772D6},
30395 {0x0307AD88, 0x31209056, 0x6AD20CC8, 0x798C15FC, 0x17DA3F0C} } } ,
30396 { { {0x152FC8D4, 0xAE08FA9C, 0x7C56B11A, 0x0BD397EA, 0x10498107},
30397 {0xC8F8EDEE, 0x0DE44ABA, 0x0B3BC85D, 0x173C2613, 0x19EC66BC} } ,
30398 { {0xB9EFE8DE, 0x86077F02, 0x4161D454, 0x3BD4FD87, 0x1598E6C5},
30399 {0x37EF713A, 0x4305E5D3, 0x9360A339, 0x281D53EB, 0x0BDC0BDA} } } ,
30400 { { {0xA8038855, 0x0203931C, 0x7CFBD398, 0xE3758DA8, 0x181D6397},
30401 {0x10CDE4E3, 0xDB4D1BC9, 0xB3DE8F2E, 0xB3BE22DA, 0x11A632E6} } ,
30402 { {0x0A4AC9C0, 0x755DE8D4, 0x1EBA95A1, 0xD7F6D982, 0x06729523},
30403 {0x4BAEA050, 0x4584EBE7, 0xADCFF05C, 0xE1EDADD8, 0x03D3C35F} } } } ;
30405 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3245 a000");
30406 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3246 a001");
30407 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3247 a010");
30408 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3248 a011");
30409 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3249 a100");
30410 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3250 a101");
30411 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3251 a110");
30412 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3252 a111");
30413 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3253 a200");
30414 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3254 a201");
30415 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3255 a210");
30416 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3256 a211");
30419 static const fp12_t var_a = { { { {0x6192AC76, 0x4C656564, 0xEE8E9AF4, 0x2ED4201D, 0x1B9A32BC},
30420 {0xF9C1A015, 0x88F85E11, 0xEE332A82, 0x9E472389, 0x113A32DA} } ,
30421 { {0xE73497C3, 0xE758D543, 0x4143C439, 0x5B8EDFC6, 0x23A72255},
30422 {0x72A48402, 0x5F2A3B12, 0xF83C56CF, 0xC57FBFD6, 0x21189AFF} } } ,
30423 { { {0x411878BE, 0x67E10A6F, 0xE33796B9, 0xAFB18853, 0x11337CD3},
30424 {0xA027B949, 0x48CC6B90, 0x453F1A09, 0x36AD7DF5, 0x12FAC92A} } ,
30425 { {0x0165D323, 0x4ACDD418, 0x61B3A79F, 0x847C1A3F, 0x1FFCF4D3},
30426 {0x80127FA9, 0xD545A3A9, 0x18BEAEF2, 0x66A6F394, 0x0CAE0E8D} } } ,
30427 { { {0xF907E7A3, 0x6C4F9904, 0xAA53C8EA, 0x723D7C2C, 0x22B280BD},
30428 {0x49FBBA76, 0x32DA66C7, 0xA2471D9E, 0x85DD797A, 0x0EC2820C} } ,
30429 { {0x9BD3C754, 0x2DEF35FC, 0x224709B2, 0x1AE0CC6A, 0x020AE2E9},
30430 {0x6FAEDBCA, 0x16064508, 0xD7ADEDB6, 0x6317A7E3, 0x07A722B7} } } } ;
30431 static const fp12_t var_expected = { { { {0x30C9563B, 0x2632B2B2, 0xF7474D7A, 0x176A100E, 0x0DCD195E},
30432 {0x2308F938, 0x5392D959, 0x13BEF590, 0x26CEBFB8, 0x1A9DA96F} } ,
30433 { {0x19C2750F, 0x02C314F2, 0x3D47426C, 0x85729DD6, 0x23D4212C},
30434 {0x39524201, 0xAF951D89, 0x7C1E2B67, 0xE2BFDFEB, 0x108C4D7F} } } ,
30435 { { {0xA08C3C5F, 0xB3F08537, 0xF19BCB5C, 0xD7D8C429, 0x0899BE69},
30436 {0x763C05D2, 0xB37CE018, 0xBF44ED53, 0xF301ECED, 0x1B7DF496} } ,
30437 { {0x26DB12BF, 0xB47D945C, 0xCD7F341E, 0x99E93B12, 0x21FF0A6B},
30438 {0xE6316902, 0x79B97C24, 0x2904B7C8, 0x8AFEA7BD, 0x18579748} } } ,
30439 { { {0xA2AC1CFF, 0x453E76D2, 0x71CF44C4, 0x90C9EC09, 0x2359D060},
30440 {0xA4FDDD3B, 0x196D3363, 0x51238ECF, 0x42EEBCBD, 0x07614106} } ,
30441 { {0x4DE9E3AA, 0x16F79AFE, 0x112384D9, 0x8D706635, 0x01057174},
30442 {0x37D76DE5, 0x0B032284, 0xEBD6F6DB, 0xB18BD3F1, 0x03D3915B} } } } ;
30444 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3257 a000");
30445 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3258 a001");
30446 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3259 a010");
30447 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3260 a011");
30448 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3261 a100");
30449 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3262 a101");
30450 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3263 a110");
30451 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3264 a111");
30452 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3265 a200");
30453 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3266 a201");
30454 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3267 a210");
30455 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3268 a211");
30458 static const fp12_t var_a = { { { {0x3F6F4BAF, 0xBC990373, 0xE9E0452F, 0x236947AD, 0x1537EDB7},
30459 {0xE22D2202, 0x6B368685, 0x0880EF7C, 0x6E35D835, 0x1419B9B5} } ,
30460 { {0x96501A28, 0xFB90B838, 0xFDC6308A, 0xEFD9E7EC, 0x1DFC4E57},
30461 {0xDF716E73, 0x1A313C98, 0x3FFD31BA, 0x9CDC9ACA, 0x1A1FE496} } } ,
30462 { { {0x55B707DE, 0xE8CCEC1C, 0x104089E6, 0xC42F29EC, 0x18D3B03C},
30463 {0xA1F16932, 0xC5CA4530, 0xE10170B5, 0xF07554A6, 0x1F579618} } ,
30464 { {0x9BFEAD39, 0x21EC57D5, 0xEACACD2F, 0xCD123C85, 0x04ACDC58},
30465 {0x92505D6E, 0xD02F2B37, 0x6A862A3A, 0x829663E7, 0x097F7EF8} } } ,
30466 { { {0xEDEA7FD4, 0xC671FAD8, 0x51CF1232, 0x1E4080ED, 0x17EFBA3C},
30467 {0x39BA1186, 0x16A20859, 0x2047D42F, 0x18401351, 0x06E041D7} } ,
30468 { {0x41AA7E4B, 0xE4E5A9A2, 0xB0CF4698, 0xCB454048, 0x0CC8042E},
30469 {0x8A8B5A69, 0x33D07D26, 0x61E5AA81, 0x3B61015F, 0x0EC3A8DB} } } } ;
30470 static const fp12_t var_expected = { { { {0xC5DFCF05, 0xED632C09, 0x119582E6, 0x695FD1CA, 0x1C9C86DD},
30471 {0xF1169101, 0x359B4342, 0x844077BE, 0xB71AEC1A, 0x0A0CDCDA} } ,
30472 { {0x4B280D14, 0x7DC85C1C, 0x7EE31845, 0xF7ECF3F6, 0x0EFE272B},
30473 {0x95E0E067, 0x1C2F489C, 0x3CA3F92C, 0x26197B58, 0x1F10824D} } } ,
30474 { { {0x2ADB83EF, 0x7466760E, 0x082044F3, 0x621794F6, 0x0C69D81E},
30475 {0x50F8B499, 0xE2E52298, 0x7080B85A, 0x783AAA53, 0x0FABCB0C} } ,
30476 { {0xF4277FCA, 0xA00CD63A, 0x120AC6E6, 0x3E344C36, 0x1456FE2E},
30477 {0xC9282EB7, 0x6817959B, 0xB543151D, 0x414B31F3, 0x04BFBF7C} } } ,
30478 { { {0x76F53FEA, 0x6338FD6C, 0xA8E78919, 0x0F204076, 0x0BF7DD1E},
30479 {0x9CDD08C3, 0x8B51042C, 0x9023EA17, 0x8C2009A8, 0x037020EB} } ,
30480 { {0x46FD6853, 0x81897F21, 0x750D039B, 0x3D4DCE17, 0x18649219},
30481 {0x6B6DD662, 0xA8FEE8E3, 0xCD98358F, 0x755BAEA2, 0x1962646F} } } } ;
30483 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3269 a000");
30484 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3270 a001");
30485 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3271 a010");
30486 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3272 a011");
30487 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3273 a100");
30488 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3274 a101");
30489 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3275 a110");
30490 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3276 a111");
30491 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3277 a200");
30492 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3278 a201");
30493 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3279 a210");
30494 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3280 a211");
30497 static const fp12_t var_a = { { { {0x88D37333, 0xA3BCB618, 0x0FD1C747, 0x92F8B7A7, 0x1EF4667C},
30498 {0x82F25D32, 0xB0AEFE5B, 0xDDFC0252, 0x6DC18BB8, 0x04D55510} } ,
30499 { {0x58A5871D, 0x9C852699, 0xF4BF8D93, 0x0CA9DE99, 0x058ECC44},
30500 {0x13757554, 0xF3673E1E, 0xC13981D1, 0x718EEA57, 0x09D03EF4} } } ,
30501 { { {0xF9E9BB94, 0xE4A0C9D5, 0xF4DA8A3E, 0x585DB01B, 0x00D6C044},
30502 {0x890292DB, 0xD1790DAD, 0x765E9EF4, 0x89A03966, 0x1165F73E} } ,
30503 { {0xB5D9D586, 0xFE2AC0BB, 0x68115AE8, 0x1A674176, 0x21BDCA26},
30504 {0x5A3D4FEB, 0x2E56EA54, 0x4A5BAFA9, 0xC60BF608, 0x1DEABC86} } } ,
30505 { { {0x98FD673A, 0x42D27D61, 0x639D6B7A, 0xF220494E, 0x1EBF6E5E},
30506 {0x2CE02BD4, 0x5D393E7D, 0xFB87C857, 0x48CCF25B, 0x0B4E3A7F} } ,
30507 { {0xD29CFFAE, 0x413B9257, 0x70EB8FCD, 0x5114603F, 0x160B61AD},
30508 {0x72D97390, 0x2E8750ED, 0x2A8C6844, 0x93FE1C10, 0x1A03FB83} } } } ;
30509 static const fp12_t var_expected = { { { {0x6A91E2C7, 0xE0F5055C, 0xA48E43F2, 0x212789C6, 0x217AC340},
30510 {0xC1792E99, 0x58577F2D, 0x6EFE0129, 0x36E0C5DC, 0x026AAA88} } ,
30511 { {0xD27AECBC, 0xDD593D9C, 0x17052718, 0xDE001D40, 0x14C7F623},
30512 {0x09BABAAA, 0xF9B39F0F, 0xE09CC0E8, 0x38C7752B, 0x04E81F7A} } } ,
30513 { { {0xFCF4DDCA, 0x725064EA, 0xFA6D451F, 0x2C2ED80D, 0x006B6022},
30514 {0xEAA9729B, 0x77D33126, 0x57D4AFC9, 0x1C7B4AA6, 0x1AB38BA1} } ,
30515 { {0xDAECEAC3, 0x7F15605D, 0x3408AD74, 0x0D33A0BB, 0x10DEE513},
30516 {0x5346D123, 0xA6421F7A, 0x41D33823, 0x3AB128F7, 0x20F5EE45} } } ,
30517 { { {0xCC7EB39D, 0x21693EB0, 0x31CEB5BD, 0x791024A7, 0x0F5FB72F},
30518 {0x967015EA, 0xAE9C9F3E, 0xFDC3E42B, 0xA466792D, 0x05A71D3F} } ,
30519 { {0xE94E7FD7, 0xA09DC92B, 0xB875C7E6, 0xA88A301F, 0x0B05B0D6},
30520 {0xB96CB9C8, 0x1743A876, 0x15463422, 0xC9FF0E08, 0x0D01FDC1} } } } ;
30522 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3281 a000");
30523 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3282 a001");
30524 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3283 a010");
30525 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3284 a011");
30526 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3285 a100");
30527 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3286 a101");
30528 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3287 a110");
30529 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3288 a111");
30530 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3289 a200");
30531 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3290 a201");
30532 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3291 a210");
30533 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3292 a211");
30536 static const fp12_t var_a = { { { {0xD7081F8A, 0xB64CF129, 0x34E5D8A0, 0xD1BC480F, 0x0D854030},
30537 {0x249B910E, 0xC2518C8E, 0x728896B7, 0x046A8BFE, 0x120B0B3D} } ,
30538 { {0x731F9B67, 0x4E81491A, 0x2241590A, 0xFE95B47D, 0x04239EA4},
30539 {0xE6279207, 0xE8AA1263, 0xE54E8651, 0xF74B6C28, 0x15476254} } } ,
30540 { { {0xD09C81A9, 0x3258ABBB, 0x0A236506, 0x076F5955, 0x1C148D70},
30541 {0x4F275FB7, 0x24493679, 0x28557086, 0xCD87329E, 0x2076F2D0} } ,
30542 { {0x96508A29, 0xC3023E8D, 0x3EE8E248, 0xB6B9827B, 0x1AC8E9E0},
30543 {0xB402FBE7, 0x7B6C2985, 0xFA38CE34, 0x81339E7D, 0x0CB46720} } } ,
30544 { { {0x0956181C, 0x4D3CC7B6, 0xD077A7FD, 0x6CB5359A, 0x20A4E2F7},
30545 {0xBE0D6AA7, 0x5158FF4C, 0x55D005D6, 0x3543438D, 0x0470C1DF} } ,
30546 { {0xB448E508, 0x25566D37, 0x04968C05, 0xD154BBD4, 0x07C29840},
30547 {0xB136DE3F, 0x9D7881F4, 0xC703BFA9, 0x6CAD4C95, 0x1EB1E942} } } } ;
30548 static const fp12_t var_expected = { { { {0xEB840FC5, 0x5B267894, 0x9A72EC50, 0x68DE2407, 0x06C2A018},
30549 {0x124DC887, 0xE128C647, 0x39444B5B, 0x823545FF, 0x0905859E} } ,
30550 { {0x5FB7F6E1, 0x36574EDD, 0xADC60CD4, 0x56F60831, 0x14125F54},
30551 {0x193BF231, 0x036BB382, 0x8F4CA378, 0x5350E407, 0x1CA4412C} } } ,
30552 { { {0x0E766A02, 0x2843002E, 0xA1B712D2, 0xDB62DA9D, 0x200AD6B9},
30553 {0xCDBBD909, 0x213B458C, 0x30D01892, 0x3E6EC742, 0x223C096A} } ,
30554 { {0xF1506E42, 0x7097C996, 0xBC19D173, 0x3307EF30, 0x1F6504F2},
30555 {0x0029A721, 0x4CCCBF13, 0x19C1C769, 0x1844FD32, 0x185AC392} } } ,
30556 { { {0x04AB0C0E, 0xA69E63DB, 0x683BD3FE, 0xB65A9ACD, 0x1052717B},
30557 {0x852EDE81, 0x37C329F6, 0xC78D633A, 0x724CCFB9, 0x1438F0F1} } ,
30558 { {0xDA247284, 0x92AB369B, 0x024B4602, 0x68AA5DEA, 0x03E14C20},
30559 {0x7EC3984D, 0xDDD2EB4A, 0x00274023, 0x0E01D43E, 0x215984A3} } } } ;
30561 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3293 a000");
30562 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3294 a001");
30563 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3295 a010");
30564 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3296 a011");
30565 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3297 a100");
30566 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3298 a101");
30567 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3299 a110");
30568 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3300 a111");
30569 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3301 a200");
30570 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3302 a201");
30571 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3303 a210");
30572 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3304 a211");
30575 static const fp12_t var_a = { { { {0xBEFEC698, 0xC25A6956, 0x086B6F5D, 0x52DEA333, 0x08E824A2},
30576 {0xAA8C1CFA, 0x1B265C9B, 0x44109168, 0x0146D221, 0x0C4AB118} } ,
30577 { {0x01B78E8B, 0x151D18F2, 0xC81539B3, 0x95D62E27, 0x1BA619DD},
30578 {0xFE7DABD7, 0xCC829243, 0xE5DC56D3, 0xA63FE959, 0x19C3ED65} } } ,
30579 { { {0x6F248638, 0x6056BBC7, 0xBA5ABEA4, 0x8AEB5B28, 0x1B7A9EA2},
30580 {0x438A05E0, 0x104105F9, 0xF52BB8EF, 0xF7C12A6C, 0x08702A76} } ,
30581 { {0x3CF50801, 0x1E527F14, 0x521E955B, 0xB52BB984, 0x03CFD175},
30582 {0x47B855BA, 0x7C44ADBE, 0xDCBEF9E1, 0xAC5657EA, 0x1EA3DDCB} } } ,
30583 { { {0x6DA6AF0C, 0x4FC96D7C, 0x49ECDC3B, 0x41D83587, 0x17D2F9BE},
30584 {0x26687331, 0x2B391137, 0x80EA4B86, 0x3A87C000, 0x102FE812} } ,
30585 { {0x1A83036E, 0xB2DE8DDF, 0x38C86E8C, 0xFFBF7D30, 0x1D9E1BB0},
30586 {0xDF5ADB8E, 0xED0F3F9E, 0x934E0E59, 0x86ABE410, 0x0DE70539} } } } ;
30587 static const fp12_t var_expected = { { { {0x5F7F634C, 0xE12D34AB, 0x8435B7AE, 0x296F5199, 0x04741251},
30588 {0xD5460E7D, 0x0D932E4D, 0xA20848B4, 0x00A36910, 0x0625588C} } ,
30589 { {0x2703F073, 0x99A536C9, 0x00AFFD28, 0xA2964507, 0x1FD39CF0},
30590 {0x2566FF19, 0xF557F372, 0x0F938BB8, 0xAACB22A0, 0x1EE286B4} } } ,
30591 { { {0xB792431C, 0x302B5DE3, 0x5D2D5F52, 0x4575AD94, 0x0DBD4F51},
30592 {0xA1C502F0, 0x882082FC, 0x7A95DC77, 0x7BE09536, 0x0438153B} } ,
30593 { {0x44A2AD2E, 0x9E3FE9DA, 0x45B4AAFC, 0xB2410AB5, 0x13E878BC},
30594 {0x23DC2ADD, 0xBE2256DF, 0x6E5F7CF0, 0xD62B2BF5, 0x0F51EEE5} } } ,
30595 { { {0x36D35786, 0xA7E4B6BE, 0xA4F66E1D, 0x20EC1AC3, 0x0BE97CDF},
30596 {0xB95C62C6, 0x24B332EB, 0x5D1A8612, 0xF4EF0DF3, 0x1A18840A} } ,
30597 { {0x8D4181B7, 0x596F46EF, 0x1C643746, 0x7FDFBE98, 0x0ECF0DD8},
30598 {0x6FAD6DC7, 0xF6879FCF, 0x49A7072C, 0xC355F208, 0x06F3829C} } } } ;
30600 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3305 a000");
30601 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3306 a001");
30602 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3307 a010");
30603 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3308 a011");
30604 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3309 a100");
30605 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3310 a101");
30606 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3311 a110");
30607 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3312 a111");
30608 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3313 a200");
30609 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3314 a201");
30610 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3315 a210");
30611 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3316 a211");
30614 static const fp12_t var_a = { { { {0x9AF0482C, 0xFC9FB30C, 0x3C8ED745, 0x1E5D8874, 0x00D1BC23},
30615 {0x69BF3EDF, 0x9428D52C, 0x8D096F6D, 0x307D8B56, 0x15BF3D19} } ,
30616 { {0xD18116BD, 0x6C1701B9, 0xE99B636C, 0x8E582C93, 0x078585A9},
30617 {0xB9F91119, 0x7C8E60CD, 0x6FE7634A, 0x586CC0DE, 0x06AC3BF0} } } ,
30618 { { {0xA4FAD071, 0xB340F209, 0xE581DADD, 0x0C7C958A, 0x1E2B1A36},
30619 {0x20C13559, 0xBE326E44, 0x8E8C9BB3, 0x2A34BDB0, 0x08390E29} } ,
30620 { {0x22A23D8E, 0x2115CC76, 0xD6927A4C, 0xE8189914, 0x07E9130D},
30621 {0x8D39F09A, 0xDBE0A568, 0xAC00BEA6, 0x389254D2, 0x0335B90A} } } ,
30622 { { {0x522A83F0, 0x88A4556F, 0xF9071CCF, 0x58B9B48F, 0x0FDA03F5},
30623 {0x02DB4494, 0x244DA92E, 0xD9E996AF, 0xDEAE49BA, 0x1C93DDD0} } ,
30624 { {0xBE41A844, 0xFF85E5F8, 0x4704809F, 0xD8AFE5A1, 0x0BE21DB5},
30625 {0x0CE5E2E2, 0x80E06253, 0x50D21DF2, 0x52D7CA61, 0x1F68CEDA} } } } ;
30626 static const fp12_t var_expected = { { { {0x4D782416, 0xFE4FD986, 0x1E476BA2, 0x8F2EC43A, 0x0068DE11},
30627 {0x5B07C89D, 0xD92B14E6, 0x632A1805, 0x6FE9F39E, 0x1CE02E8E} } ,
30628 { {0x0EE8B48C, 0x45222B2D, 0x11731205, 0x9ED7443D, 0x15C352D6},
30629 {0x0324B1BA, 0x4D5DDAB7, 0x549911F4, 0x03E18E62, 0x1556ADFA} } } ,
30630 { { {0xF8A59166, 0xE8B72354, 0x8F664DBD, 0xDDE978B8, 0x21161D1C},
30631 {0x3688C3DA, 0xEE2FE172, 0x63EBAE28, 0x6CC58CCB, 0x161D1716} } ,
30632 { {0x11511EC7, 0x108AE63B, 0x6B493D26, 0xF40C4C8A, 0x03F48986},
30633 {0x469CF84D, 0x6DF052B4, 0x56005F53, 0x1C492A69, 0x019ADC85} } } ,
30634 { { {0xA91541F8, 0xC4522AB7, 0xFC838E67, 0xAC5CDA47, 0x07ED01FA},
30635 {0x016DA24A, 0x9226D497, 0x6CF4CB57, 0x6F5724DD, 0x0E49EEE8} } ,
30636 { {0x5F20D422, 0xFFC2F2FC, 0xA382404F, 0xEC57F2D0, 0x05F10EDA},
30637 {0x8672F171, 0x40703129, 0xA8690EF9, 0x296BE530, 0x0FB4676D} } } } ;
30639 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3317 a000");
30640 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3318 a001");
30641 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3319 a010");
30642 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3320 a011");
30643 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3321 a100");
30644 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3322 a101");
30645 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3323 a110");
30646 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3324 a111");
30647 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3325 a200");
30648 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3326 a201");
30649 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3327 a210");
30650 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3328 a211");
30653 static const fp12_t var_a = { { { {0x8E38683E, 0x602E4B5B, 0xBBC23794, 0xC53F0380, 0x09B61A4C},
30654 {0x161567CF, 0x6BCCB8A2, 0xE8AF3AEA, 0x85EC8944, 0x1603F7E7} } ,
30655 { {0x9AD36B37, 0xA4232550, 0x1EBE200C, 0x5B0B2769, 0x0104476F},
30656 {0x870F2D96, 0xC8EE8A3B, 0x783B676C, 0xFB81F213, 0x127112A6} } } ,
30657 { { {0x9B33C1A0, 0xCE91FAF8, 0x56B3DD22, 0xD9DEFDC4, 0x22FAB14C},
30658 {0x997F5C4D, 0xDCFA343A, 0xEFE7C763, 0x89D7D386, 0x1AB4E191} } ,
30659 { {0x70FDE9BE, 0x66787900, 0x1A368330, 0x1D477116, 0x06CC5696},
30660 {0x766F4D72, 0x49AAB67D, 0xB022F43E, 0xC496B978, 0x02B919FC} } } ,
30661 { { {0xF8D99CD0, 0x3CE44318, 0x0E582D07, 0x9C9FB58F, 0x01BECD7D},
30662 {0x037E43FB, 0xEEFE0848, 0x0CF400B6, 0xACF50502, 0x236E3AF0} } ,
30663 { {0x2B7907B9, 0xB67365E4, 0x12142F43, 0x79108C37, 0x1BE5C0DF},
30664 {0xB36FED9A, 0xCFA9230F, 0xCCFED1F8, 0x0FFFE641, 0x16219385} } } } ;
30665 static const fp12_t var_expected = { { { {0xC71C341F, 0x301725AD, 0x5DE11BCA, 0x629F81C0, 0x04DB0D26},
30666 {0x3132DD15, 0x44FD06A1, 0x90FCFDC4, 0x9AA17295, 0x1D028BF5} } ,
30667 { {0x7391DEC9, 0x61283CF8, 0xAC047055, 0x8530C1A7, 0x1282B3B9},
30668 {0xC38796CB, 0x6477451D, 0xBC1DB3B6, 0x7DC0F909, 0x09388953} } } ,
30669 { { {0x4D99E0D0, 0x6748FD7C, 0x2B59EE91, 0x6CEF7EE2, 0x117D58A6},
30670 {0x72E7D754, 0xFD93C46D, 0x94994400, 0x9C9717B6, 0x1F5B00CA} } ,
30671 { {0x387EF4DF, 0x333C3C80, 0x0D1B4198, 0x0EA3B88B, 0x03662B4B},
30672 {0xBB37A6B9, 0x24D55B3E, 0x58117A1F, 0x624B5CBC, 0x015C8CFE} } } ,
30673 { { {0x7C6CCE68, 0x9E72218C, 0x872C1683, 0xCE4FDAC7, 0x00DF66BE},
30674 {0x27E74B2B, 0x8695AE74, 0x231F60AA, 0x2E25B074, 0x23B7AD7A} } ,
30675 { {0x3BE4AD0A, 0xEA505D42, 0xA5AF77F0, 0x9433740E, 0x1FF37071},
30676 {0xD9B7F6CD, 0x67D49187, 0xE67F68FC, 0x87FFF320, 0x0B10C9C2} } } } ;
30678 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3329 a000");
30679 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3330 a001");
30680 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3331 a010");
30681 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3332 a011");
30682 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3333 a100");
30683 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3334 a101");
30684 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3335 a110");
30685 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3336 a111");
30686 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3337 a200");
30687 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3338 a201");
30688 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3339 a210");
30689 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3340 a211");
30692 static const fp12_t var_a = { { { {0x43E5BCED, 0x5FCCF731, 0xBC274D09, 0xBC58301A, 0x00F887D9},
30693 {0x92220157, 0xCB87ED86, 0x7453AE3C, 0x78BDE7D2, 0x1111ED10} } ,
30694 { {0x18B72E74, 0x359112C3, 0x59DEDB92, 0x5C794565, 0x00BB16EC},
30695 {0x38484E67, 0x85E19BF5, 0x158A3386, 0xBE559447, 0x055F51D3} } } ,
30696 { { {0x6B25AB6E, 0xBED53137, 0xE2D204B0, 0x7425D1BF, 0x02F09FD8},
30697 {0x68C8FE52, 0xF606C659, 0xD771548F, 0x9DB7F5EC, 0x1926B0EC} } ,
30698 { {0xCBCD08E8, 0x936CFECC, 0xB9768B36, 0x1DE1B766, 0x083FF66D},
30699 {0xB71AF711, 0xFD56DADA, 0x787D56B2, 0x2A55D70A, 0x009BFE93} } } ,
30700 { { {0x6F14887C, 0xFDCA9316, 0xE759D328, 0x55C94CA7, 0x07E443D4},
30701 {0xB0895207, 0x8317BF26, 0x202D3F02, 0x54AACC50, 0x2222EEF4} } ,
30702 { {0xEBF019C3, 0xCA6754EF, 0x9EFCBA06, 0xD7CF98B9, 0x05F8B6EB},
30703 {0x9DF247DE, 0xBBED9B84, 0xC9E1BD4C, 0x4CACF042, 0x039717D2} } } } ;
30704 static const fp12_t var_expected = { { { {0xC81B07A4, 0xBEFD25E8, 0x7AB906D3, 0xB5D74600, 0x127CD3EE},
30705 {0x6F3929D9, 0x74DAA113, 0x56CF376D, 0x140A21DC, 0x1A89868A} } ,
30706 { {0x8C5B973A, 0x1AC88961, 0xACEF6DC9, 0x2E3CA2B2, 0x005D8B76},
30707 {0xC24C5061, 0x5207784A, 0xA76A7A12, 0xB6D5F816, 0x14B038EB} } } ,
30708 { { {0xB592D5B7, 0x5F6A989B, 0xF1690258, 0x3A12E8DF, 0x01784FEC},
30709 {0xB4647F29, 0xFB03632C, 0x6BB8AA47, 0x4EDBFAF6, 0x0C935876} } ,
30710 { {0x65E68474, 0x49B67F66, 0x5CBB459B, 0x8EF0DBB3, 0x041FFB36},
30711 {0x81B5A4B6, 0x8DC217BD, 0x58E40BA8, 0x6CD61978, 0x124E8F4B} } } ,
30712 { { {0x378A443E, 0x7EE5498B, 0xF3ACE994, 0x2AE4A653, 0x03F221EA},
30713 {0x7E6CD231, 0x50A289E3, 0x2CBBFFD0, 0x0200941B, 0x2312077C} } ,
30714 { {0x1C20360F, 0x744A54C8, 0xEC23BD52, 0xC392FA4F, 0x14FCEB77},
30715 {0x4EF923EF, 0x5DF6CDC2, 0x64F0DEA6, 0x26567821, 0x01CB8BE9} } } } ;
30717 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3341 a000");
30718 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3342 a001");
30719 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3343 a010");
30720 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3344 a011");
30721 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3345 a100");
30722 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3346 a101");
30723 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3347 a110");
30724 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3348 a111");
30725 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3349 a200");
30726 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3350 a201");
30727 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3351 a210");
30728 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3352 a211");
30731 static const fp12_t var_a = { { { {0x333969EF, 0xD0DDAAF7, 0x3CA04B9A, 0x9A357542, 0x0EC4E4B1},
30732 {0x5C2B7AC6, 0x54215ED1, 0xF1AC3DD6, 0xAB2F85D8, 0x1015E054} } ,
30733 { {0xECADE1FA, 0x9CF3E524, 0x9F370F56, 0x12286B4F, 0x20BC59B1},
30734 {0xB53D15AA, 0xF3575014, 0x295E2E8F, 0xF41FB902, 0x1DA88BFC} } } ,
30735 { { {0x0FE727B8, 0x0942C454, 0x606ED1CF, 0x994102DA, 0x1B4EF973},
30736 {0xC3DC0570, 0x02581539, 0x23B34482, 0x41478867, 0x064374F6} } ,
30737 { {0xDA117E83, 0xE8BCFA29, 0x44D96F36, 0x02CEE7E4, 0x008F7409},
30738 {0x729577CB, 0x51DE2629, 0x0AC9B575, 0x83BC5CAB, 0x1CA038A5} } } ,
30739 { { {0x117AFCFF, 0x71611D2E, 0x31FCC75D, 0xA81A58CF, 0x04391CBA},
30740 {0x5C736BD3, 0xFD749CF2, 0xD2BE1F82, 0xFC71E7E7, 0x207B6A1D} } ,
30741 { {0xCA5AA0F2, 0x8F7236FF, 0x72E29CD0, 0x48BA9DBE, 0x13691FB6},
30742 {0x302FE1BA, 0x7E7D48EA, 0xFB44426E, 0xE5DFECB3, 0x1830B69C} } } } ;
30743 static const fp12_t var_expected = { { { {0xBFC4DE25, 0x77857FCB, 0x3AF5861C, 0xA4C5E894, 0x1963025A},
30744 {0xAE15BD63, 0x2A10AF68, 0x78D61EEB, 0x5597C2EC, 0x080AF02A} } ,
30745 { {0x7656F0FD, 0x4E79F292, 0xCF9B87AB, 0x891435A7, 0x105E2CD8},
30746 {0x5A9E8AD5, 0xF9ABA80A, 0x14AF1747, 0x7A0FDC81, 0x0ED445FE} } } ,
30747 { { {0x07F393DC, 0x84A1622A, 0x303768E7, 0xCCA0816D, 0x0DA77CB9},
30748 {0xE1EE02B8, 0x012C0A9C, 0x91D9A241, 0x20A3C433, 0x0321BA7B} } ,
30749 { {0x1330E86F, 0x83752765, 0x3F1217EA, 0x5912A1E5, 0x12484A06},
30750 {0xDF72E513, 0xB805BD64, 0xA20A3B09, 0x99895C48, 0x2050AC54} } } ,
30751 { { {0x2EE5A7AD, 0xC7C738E7, 0xB5A3C3FD, 0x2BB85A5A, 0x141D1E5F},
30752 {0x5461DF17, 0x8DD0F8C9, 0x06047010, 0xD5E421E7, 0x223E4510} } ,
30753 { {0xE52D5079, 0x47B91B7F, 0x39714E68, 0x245D4EDF, 0x09B48FDB},
30754 {0x1817F0DD, 0x3F3EA475, 0xFDA22137, 0x72EFF659, 0x0C185B4E} } } } ;
30756 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3353 a000");
30757 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3354 a001");
30758 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3355 a010");
30759 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3356 a011");
30760 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3357 a100");
30761 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3358 a101");
30762 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3359 a110");
30763 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3360 a111");
30764 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3361 a200");
30765 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3362 a201");
30766 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3363 a210");
30767 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3364 a211");
30770 static const fp12_t var_a = { { { {0x519241FF, 0x6DF66AB2, 0xA95D8A5A, 0xC2BC3467, 0x20666F79},
30771 {0x41EB5659, 0x1A9C5DC6, 0x348D8C62, 0x475BCEBC, 0x1CBE0568} } ,
30772 { {0xB9E56FA4, 0x18BD6E13, 0xAADE8EA6, 0x423F6D6C, 0x1966A4AD},
30773 {0xABC9492C, 0xFEC021DF, 0xE742C0B8, 0x87BACCC4, 0x1EC4B1CE} } } ,
30774 { { {0xFD87CF46, 0xA9D04858, 0x23A76F97, 0x6C8FF381, 0x1A633C43},
30775 {0x4F5520D6, 0x8F68BBB6, 0xD6DEB672, 0x4C42E152, 0x00F2882D} } ,
30776 { {0xA117CFF3, 0x8770A51F, 0x07DB416A, 0x572BC106, 0x17FE687A},
30777 {0x43A8987A, 0x76CA7822, 0x0155050A, 0x85AB176D, 0x1F70CDA1} } } ,
30778 { { {0x48E4AD1D, 0x56736C5C, 0x67259B3B, 0xA0066894, 0x1741509A},
30779 {0xFAA220CA, 0xF63FE426, 0x8122AED4, 0xC70BDD7C, 0x19B0FC26} } ,
30780 { {0xC1AFB19A, 0x8235D454, 0x3429165A, 0x2F7FA1DE, 0x03906482},
30781 {0xC01DF953, 0x5D3A549A, 0x65BFF63B, 0x8A134D56, 0x1D912B71} } } } ;
30782 static const fp12_t var_expected = { { { {0x4EF14A2D, 0x4611DFA9, 0xF154257C, 0xB9094826, 0x2233C7BE},
30783 {0x471DD45A, 0x1C64D933, 0x36EC2680, 0xFB591551, 0x205F92B5} } ,
30784 { {0xDCF2B7D2, 0x0C5EB709, 0x556F4753, 0xA11FB6B6, 0x0CB35256},
30785 {0xD5E4A496, 0x7F6010EF, 0x73A1605C, 0x43DD6662, 0x0F6258E7} } } ,
30786 { { {0x7EC3E7A3, 0xD4E8242C, 0x91D3B7CB, 0xB647F9C0, 0x0D319E21},
30787 {0x27AA906B, 0x47B45DDB, 0x6B6F5B39, 0xA62170A9, 0x00794416} } ,
30788 { {0xF6B41127, 0x52CEFCDF, 0x20930104, 0x03410E76, 0x1DFFC43F},
30789 {0x21D44C3D, 0x3B653C11, 0x80AA8285, 0xC2D58BB6, 0x0FB866D0} } } ,
30790 { { {0x4A9A7FBC, 0xBA50607E, 0x50382DEC, 0x27AE623D, 0x1DA1384F},
30791 {0x7D511065, 0x7B1FF213, 0x4091576A, 0x6385EEBE, 0x0CD87E13} } ,
30792 { {0x60D7D8CD, 0x411AEA2A, 0x1A148B2D, 0x17BFD0EF, 0x01C83241},
30793 {0x863725D7, 0xBDB3D49D, 0x4F855B6C, 0x9CB4D49E, 0x20C925BA} } } } ;
30795 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3365 a000");
30796 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3366 a001");
30797 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3367 a010");
30798 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3368 a011");
30799 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3369 a100");
30800 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3370 a101");
30801 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3371 a110");
30802 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3372 a111");
30803 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3373 a200");
30804 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3374 a201");
30805 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3375 a210");
30806 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3376 a211");
30809 static const fp12_t var_a = { { { {0xF3595DC6, 0x04A34692, 0x36ED10ED, 0x3A78ACF5, 0x146C67F9},
30810 {0x884D526E, 0x9AAA3864, 0xEE57E33D, 0x51B82CCE, 0x0327AB52} } ,
30811 { {0x2B8F1B1A, 0x077FF873, 0x5D53019B, 0x2ACC09C6, 0x038A4DF9},
30812 {0x15FB89AD, 0xF2D41DBB, 0xC0D0A454, 0x56452120, 0x066434E8} } } ,
30813 { { {0xBBCCE8C1, 0x41AA1B73, 0x94CA9FD2, 0x8EEE1A29, 0x1E33320A},
30814 {0xFD81DA3C, 0x018EE9CB, 0x6B828910, 0x3AC9070A, 0x09D10847} } ,
30815 { {0x3665A0DA, 0xED520249, 0xA7F3DAE1, 0xC91DCD6B, 0x0E938425},
30816 {0x1482FB3F, 0x37DAB58B, 0xF80EEC83, 0xC17DA8F1, 0x1C92D148} } } ,
30817 { { {0x4FF3917E, 0xBBD85517, 0xFE1B9B9D, 0x2EBB212B, 0x0244FF0F},
30818 {0x1A82C83D, 0xA9587DE2, 0x34D23A45, 0x84BF06DD, 0x06B27080} } ,
30819 { {0x00DB407D, 0x8123EBA6, 0x7F2876D7, 0x382D1ED1, 0x03D691D8},
30820 {0x9B7E57FF, 0xB97D1A3F, 0xD4A3F8C9, 0x7B93E103, 0x1C9B22B2} } } } ;
30821 static const fp12_t var_expected = { { { {0x79ACAEE3, 0x8251A349, 0x9B768876, 0x9D3C567A, 0x0A3633FC},
30822 {0x4426A937, 0xCD551C32, 0x772BF19E, 0x28DC1667, 0x0193D5A9} } ,
30823 { {0x95C78D8D, 0x83BFFC39, 0x2EA980CD, 0x956604E3, 0x01C526FC},
30824 {0xB125EE04, 0x8880B92D, 0x7D0DB279, 0x02CDBE83, 0x1532AA76} } } ,
30825 { { {0x040E9D8E, 0x2FEBB80A, 0xE70AB038, 0x1F223B07, 0x211A2907},
30826 {0xFEC0ED1E, 0x00C774E5, 0x35C14488, 0x9D648385, 0x04E88423} } ,
30827 { {0x9B32D06D, 0xF6A90124, 0xD3F9ED70, 0xE48EE6B5, 0x0749C212},
30828 {0xB069A6CD, 0xAB040515, 0x18ACD690, 0x386A026C, 0x2049F8A6} } } ,
30829 { { {0xA7F9C8BF, 0xDDEC2A8B, 0xFF0DCDCE, 0x975D9095, 0x01227F87},
30830 {0x33698D4C, 0xE3C2E941, 0xB70E7D71, 0x1A0AB161, 0x1559C842} } ,
30831 { {0x2695C96C, 0xCFA8A023, 0xDC399BBA, 0xF3C1BD5B, 0x13EBD8ED},
30832 {0xF3E7552D, 0xEBD5376F, 0x06F75CB3, 0x15751E75, 0x204E215B} } } } ;
30834 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3377 a000");
30835 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3378 a001");
30836 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3379 a010");
30837 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3380 a011");
30838 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3381 a100");
30839 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3382 a101");
30840 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3383 a110");
30841 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3384 a111");
30842 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3385 a200");
30843 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3386 a201");
30844 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3387 a210");
30845 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3388 a211");
30848 static const fp12_t var_a = { { { {0x1F986F0C, 0x4526C24E, 0x5D44B2B2, 0x4047CB2F, 0x0EFEC694},
30849 {0xECE93FB1, 0x1950C128, 0x353417C5, 0x7F43522C, 0x0BCA0DB0} } ,
30850 { {0xEBDF796F, 0xADA3A450, 0x2EBADA37, 0xCC28AEF8, 0x0B7DDEB9},
30851 {0xE0A2D2E7, 0x2A6A84C7, 0xFBAF67C4, 0x44C4E30A, 0x1E119BBB} } } ,
30852 { { {0x68EC1C32, 0x8717DB1C, 0xFFA10DEB, 0x4722A557, 0x22958B86},
30853 {0x7527D91C, 0x362FF197, 0x86C4D4AD, 0xB4ABB67E, 0x1F2EA2BA} } ,
30854 { {0x3FAA4145, 0x6E86BE8A, 0x295E9593, 0x969BA2B7, 0x1414B45A},
30855 {0xDDA0AD71, 0x46B15DE3, 0x95CBF864, 0x890DF80D, 0x1D0F4DA5} } } ,
30856 { { {0x87BA77F8, 0x531EB891, 0xFA6590A2, 0x80529ECE, 0x1E9613AE},
30857 {0x8C25CB60, 0xB73808EB, 0x074469C6, 0x9ADEC9E4, 0x05BD187C} } ,
30858 { {0x5D6A0D17, 0x1C2CA359, 0x09DA2A67, 0x96036994, 0x13939B48},
30859 {0x34874B18, 0x33AE24AA, 0xAAFBB380, 0x65B22D36, 0x1A69F6B3} } } } ;
30860 static const fp12_t var_expected = { { { {0x0FCC3786, 0x22936127, 0xAEA25959, 0x2023E597, 0x077F634A},
30861 {0x9C9CC906, 0x9BBF0AE4, 0x373F6C31, 0x174CD709, 0x17E596DA} } ,
30862 { {0x9C17E5E5, 0xE5E87C78, 0x3402CD6A, 0xBDBF856F, 0x17BF7F5E},
30863 {0x167992A1, 0x244BECB4, 0x9A7D1431, 0x7A0D9F78, 0x21095DDF} } } ,
30864 { { {0x34760E19, 0xC38BED8E, 0xFFD086F5, 0x239152AB, 0x114AC5C3},
30865 {0xBA93EC8E, 0x9B17F8CB, 0x43626A56, 0x5A55DB3F, 0x0F97515D} } ,
30866 { {0x45FD49D0, 0xC65A0995, 0xB154AB18, 0x22F8FF4E, 0x1C0AEA2F},
30867 {0x14F87FE6, 0x326F5942, 0xE78B5C81, 0x9C3229F9, 0x208836D4} } } ,
30868 { { {0xC3DD3BFC, 0x298F5C48, 0x7D32C851, 0x40294F67, 0x0F4B09D7},
30869 {0xC612E5B0, 0x5B9C0475, 0x03A234E3, 0x4D6F64F2, 0x02DE8C3E} } ,
30870 { {0xD4DD2FB9, 0x9D2CFBFC, 0x21927582, 0x22ACE2BD, 0x1BCA5DA6},
30871 {0x1A43A58C, 0x19D71255, 0x557DD9C0, 0xB2D9169B, 0x0D34FB59} } } } ;
30873 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3389 a000");
30874 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3390 a001");
30875 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3391 a010");
30876 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3392 a011");
30877 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3393 a100");
30878 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3394 a101");
30879 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3395 a110");
30880 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3396 a111");
30881 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3397 a200");
30882 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3398 a201");
30883 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3399 a210");
30884 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3400 a211");
30887 static const fp12_t var_a = { { { {0x3EE376EE, 0xEDFC92A0, 0x6AD80859, 0xFAECFE7E, 0x20AE3F03},
30888 {0xFB71BF72, 0xFED0FA5E, 0x96916BF8, 0x5798D02B, 0x18C34B6D} } ,
30889 { {0x2D237BF8, 0x80818F4C, 0x9B284740, 0x75BBB5B1, 0x1A816A9C},
30890 {0x9065DFAB, 0x4DDAB209, 0x5E1BE034, 0xA1CB9AD0, 0x12D2E1D1} } } ,
30891 { { {0x6D7185E3, 0xD9C598EC, 0x9BDAD0B8, 0xC6E67019, 0x1444AF97},
30892 {0x81BF4FFE, 0xE92AC8F1, 0x1F27E809, 0xA21A0E6B, 0x113C10DC} } ,
30893 { {0x6798EF73, 0xD9FDB46A, 0xFDFEE169, 0xFEFC9C09, 0x00965DDF},
30894 {0xD990EEE8, 0x4BDB7D93, 0x9E22E0D5, 0x88F75F38, 0x0B6CC998} } } ,
30895 { { {0x60784BED, 0x3406E52D, 0xD697EFD6, 0x00A135E2, 0x1C96C626},
30896 {0xBBC80C0F, 0xD1401B7E, 0x12A98648, 0xE8730070, 0x19E59A83} } ,
30897 { {0x19255172, 0xDE1D8BA6, 0xA7D31800, 0x3442A817, 0x111DD7B2},
30898 {0x4231082B, 0x490DBFAE, 0x100551CE, 0x1D7763E7, 0x1B8F091C} } } } ;
30899 static const fp12_t var_expected = { { { {0x1F71BB77, 0xF6FE4950, 0x356C042C, 0xFD767F3F, 0x10571F81},
30900 {0x7DB8DFB9, 0x7F687D2F, 0xCB48B5FC, 0xABCC6815, 0x0C61A5B6} } ,
30901 { {0x1691BDFC, 0x4040C7A6, 0xCD9423A0, 0x3ADDDAD8, 0x0D40B54E},
30902 {0xEE5B1903, 0x36040354, 0x4BB35069, 0xA890FB5B, 0x1B6A00EA} } } ,
30903 { { {0x5CE0EC1F, 0x7BF976C6, 0xEA92C8AB, 0xBB1E65FF, 0x1C22E7CD},
30904 {0xC0DFA7FF, 0xF4956478, 0x8F93F404, 0x510D0735, 0x089E086E} } ,
30905 { {0x59F4A0E7, 0xFC158485, 0x1BA4D103, 0xD7297BF8, 0x124BBEF1},
30906 {0xECC87774, 0xA5EDBEC9, 0x4F11706A, 0x447BAF9C, 0x05B664CC} } } ,
30907 { { {0xD6644F24, 0x291A1CE6, 0x87F1583A, 0xD7FBC8E4, 0x204BF314},
30908 {0x840C2F35, 0x77B6B80F, 0x25FA2373, 0xCBE4AE2B, 0x1EF35D43} } ,
30909 { {0x0C92A8B9, 0x6F0EC5D3, 0xD3E98C00, 0x1A21540B, 0x088EEBD9},
30910 {0x4740AD43, 0x339D8A27, 0xA4A80936, 0xE666DFE6, 0x1FC8148F} } } } ;
30912 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3401 a000");
30913 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3402 a001");
30914 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3403 a010");
30915 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3404 a011");
30916 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3405 a100");
30917 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3406 a101");
30918 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3407 a110");
30919 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3408 a111");
30920 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3409 a200");
30921 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3410 a201");
30922 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3411 a210");
30923 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3412 a211");
30926 static const fp12_t var_a = { { { {0x43E673B4, 0xB202E7EA, 0x010EF490, 0xC102D5CC, 0x006F3197},
30927 {0xD7694548, 0xCE5E48C4, 0x52385EEC, 0x38E2BFF6, 0x057FC030} } ,
30928 { {0x501C00BC, 0x1021FF95, 0x3414ABB4, 0x1FF76033, 0x0056E745},
30929 {0x665B8CD0, 0x580C62E8, 0xFFB5C683, 0xDFAAE7D0, 0x1989188C} } } ,
30930 { { {0xF12EC978, 0xC3B4A297, 0x2A69EC3B, 0x95972C4B, 0x131DB4FD},
30931 {0x30C52D36, 0x82CAF48E, 0xD758AD0F, 0xCD347C2E, 0x16938145} } ,
30932 { {0xABF979FA, 0x3108375D, 0x4AACDD3C, 0x2ED4A449, 0x0275A6A9},
30933 {0x3F33BD18, 0x32EB6DBC, 0xA1BB33BB, 0x813CC971, 0x0888C01F} } } ,
30934 { { {0x3DAE091D, 0x55C1FDB8, 0xEAF976C1, 0x1E7F3B7B, 0x12195B93},
30935 {0x0A5F0515, 0xFBD67879, 0xBAE0C66E, 0x163385A6, 0x00C02566} } ,
30936 { {0xC151984F, 0x3187EF2F, 0x5AF4675D, 0x8CB4B587, 0x0038BE42},
30937 {0x0363307C, 0x663ED666, 0xF7814073, 0x3920FEE0, 0x0E83C65E} } } } ;
30938 static const fp12_t var_expected = { { { {0x21F339DA, 0x590173F5, 0x00877A48, 0xE0816AE6, 0x003798CB},
30939 {0x6BB4A2A4, 0x672F2462, 0x291C2F76, 0x1C715FFB, 0x02BFE018} } ,
30940 { {0xA80E005E, 0x0810FFCA, 0x9A0A55DA, 0x8FFBB019, 0x002B73A2},
30941 {0x332DC668, 0xAC063174, 0x7FDAE341, 0x6FD573E8, 0x0CC48C46} } } ,
30942 { { {0xF89764BC, 0xE1DA514B, 0x9534F61D, 0xCACB9625, 0x098EDA7E},
30943 {0x1862969B, 0xC1657A47, 0x6BAC5687, 0xE69A3E17, 0x0B49C0A2} } ,
30944 { {0xD5FCBCFD, 0x18841BAE, 0xA5566E9E, 0x976A5224, 0x013AD354},
30945 {0x1F99DE8C, 0x9975B6DE, 0xD0DD99DD, 0xC09E64B8, 0x0444600F} } } ,
30946 { { {0x44FF2DBC, 0xB9F7A92C, 0x12221BAF, 0x66EACBB1, 0x1B0D3DCB},
30947 {0xAB57ABB8, 0x8D01E68C, 0x7A15C386, 0xE2C4F0C6, 0x1260A2B4} } ,
30948 { {0x06D0F555, 0xA7DAA1E8, 0xCA1F93FD, 0x1E0588B6, 0x121CEF23},
30949 {0x01B1983E, 0xB31F6B33, 0x7BC0A039, 0x1C907F70, 0x0741E32F} } } } ;
30951 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_hlv 3413 a000");
30952 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_hlv 3414 a001");
30953 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_hlv 3415 a010");
30954 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_hlv 3416 a011");
30955 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_hlv 3417 a100");
30956 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_hlv 3418 a101");
30957 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_hlv 3419 a110");
30958 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_hlv 3420 a111");
30959 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_hlv 3421 a200");
30960 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_hlv 3422 a201");
30961 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_hlv 3423 a210");
30962 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_hlv 3424 a211");
30965 static const fp12_t var_a = { { { {0x8A265B6B, 0xDF260612, 0x7541AC61, 0x8CEECAE6, 0x1DFB1E36},
30966 {0x4C3696B9, 0x6A79051F, 0x3A9CB541, 0xC7FE659E, 0x1D6D536C} } ,
30967 { {0x09DB1C46, 0xF353EDE2, 0xEF5122E7, 0x9FD8D12E, 0x02139000},
30968 {0x3618A5BF, 0xEFD4E4AF, 0x984887EE, 0x856B6386, 0x06AE61A7} } } ,
30969 { { {0x781344C9, 0xA02BA909, 0xB948338D, 0xF9BD7495, 0x00A22CA4},
30970 {0x77403502, 0x13A15EEA, 0x0B84CE77, 0xAA80B3D3, 0x0B4A04BA} } ,
30971 { {0x153DE38B, 0x2CB25D57, 0xF223B75E, 0xBB70C325, 0x1A86FB12},
30972 {0x0D7B66B5, 0xF6ECB9A0, 0xD6632C5C, 0xA107FCC2, 0x00FA555F} } } ,
30973 { { {0x00ECAA28, 0xF13A12A5, 0x9A488619, 0xAFA5294E, 0x07F92F85},
30974 {0x14F4EB27, 0xABCB558E, 0xDAE7E0A3, 0x76C287FF, 0x1CC7B6E2} } ,
30975 { {0xE3FFECCC, 0x5FAA8672, 0x77DAC01C, 0xEE29464C, 0x05C4B554},
30976 {0x9B0D2DD0, 0xF9F56C44, 0x400A6B78, 0x1E99CBD4, 0x0F047823} } } } ;
30977 static const bigint_t var_b = {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
30978 static const fp12_t var_expected = { { { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
30979 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
30980 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
30981 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
30982 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
30983 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
30984 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
30985 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
30986 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
30987 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
30988 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
30989 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
30991 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3425 a000");
30992 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3426 a001");
30993 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3427 a010");
30994 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3428 a011");
30995 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3429 a100");
30996 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3430 a101");
30997 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3431 a110");
30998 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3432 a111");
30999 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3433 a200");
31000 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3434 a201");
31001 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3435 a210");
31002 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3436 a211");
31005 static const fp12_t var_a = { { { {0x9DF3F089, 0x280BE8F3, 0x34C1ED31, 0xFF818259, 0x00F1F02A},
31006 {0x431ABD27, 0x71927A7A, 0xD2006575, 0xFF68A0F2, 0x1DC92E40} } ,
31007 { {0xA971B3F3, 0x6F2A281E, 0x08AB720B, 0x5E4AF68D, 0x0A6CEDCF},
31008 {0x75994575, 0xBC55C261, 0xD9864A3A, 0x62B8AE58, 0x10D89741} } } ,
31009 { { {0xE394613F, 0x818DA78B, 0x3D969FC3, 0xA36A7BB5, 0x15292994},
31010 {0xDA898914, 0x8E238BF4, 0xFB94C1F3, 0x209B5D49, 0x06734594} } ,
31011 { {0x7A2874F3, 0x8169FE7B, 0x48DB320B, 0x878DF376, 0x04E35D49},
31012 {0x7B4DFA41, 0x5141E45C, 0x54B5559B, 0x9F480D53, 0x1179B198} } } ,
31013 { { {0xF0731A31, 0xC343ABFA, 0xFEB9EA86, 0x4D3F8667, 0x09B90A9D},
31014 {0xAA737936, 0xC1E17FF3, 0xBF9E311D, 0xC7A11AC4, 0x0693770B} } ,
31015 { {0x273E38D0, 0xDE364867, 0xF381BABF, 0x32378382, 0x051FB862},
31016 {0x7EE7C478, 0x5CB61F19, 0x8F83B31B, 0x6802F9D4, 0x0BBF138B} } } } ;
31017 static const bigint_t var_b = {0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
31018 static const fp12_t var_expected = { { { {0x9DF3F089, 0x280BE8F3, 0x34C1ED31, 0xFF818259, 0x00F1F02A},
31019 {0x431ABD27, 0x71927A7A, 0xD2006575, 0xFF68A0F2, 0x1DC92E40} } ,
31020 { {0xA971B3F3, 0x6F2A281E, 0x08AB720B, 0x5E4AF68D, 0x0A6CEDCF},
31021 {0x75994575, 0xBC55C261, 0xD9864A3A, 0x62B8AE58, 0x10D89741} } } ,
31022 { { {0xE394613F, 0x818DA78B, 0x3D969FC3, 0xA36A7BB5, 0x15292994},
31023 {0xDA898914, 0x8E238BF4, 0xFB94C1F3, 0x209B5D49, 0x06734594} } ,
31024 { {0x7A2874F3, 0x8169FE7B, 0x48DB320B, 0x878DF376, 0x04E35D49},
31025 {0x7B4DFA41, 0x5141E45C, 0x54B5559B, 0x9F480D53, 0x1179B198} } } ,
31026 { { {0xF0731A31, 0xC343ABFA, 0xFEB9EA86, 0x4D3F8667, 0x09B90A9D},
31027 {0xAA737936, 0xC1E17FF3, 0xBF9E311D, 0xC7A11AC4, 0x0693770B} } ,
31028 { {0x273E38D0, 0xDE364867, 0xF381BABF, 0x32378382, 0x051FB862},
31029 {0x7EE7C478, 0x5CB61F19, 0x8F83B31B, 0x6802F9D4, 0x0BBF138B} } } } ;
31031 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3437 a000");
31032 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3438 a001");
31033 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3439 a010");
31034 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3440 a011");
31035 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3441 a100");
31036 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3442 a101");
31037 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3443 a110");
31038 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3444 a111");
31039 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3445 a200");
31040 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3446 a201");
31041 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3447 a210");
31042 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3448 a211");
31045 static const fp12_t var_a = { { { {0xBAF7A693, 0x0DFB51B2, 0x99B137B0, 0x0A2AA37A, 0x1D54F44B},
31046 {0x94ADA231, 0xD4D719A6, 0xC39DE291, 0x2B5E7C9F, 0x002E2CA1} } ,
31047 { {0xA39113FF, 0x082078DB, 0xF9EBA720, 0x201B32A6, 0x0DB7E530},
31048 {0x06989A1E, 0x0482B578, 0xCAD784F3, 0xEA5604A3, 0x11FD2868} } } ,
31049 { { {0x298800A7, 0x455B92DB, 0xD051E6E2, 0xD5F86CF6, 0x12EF1BB9},
31050 {0x738707AD, 0x82B7E2B7, 0xA7682150, 0x01BBE0F3, 0x0DA3C854} } ,
31051 { {0x3B95A90E, 0x13EA92C8, 0x670330DE, 0xB7E386FD, 0x20C9A7A1},
31052 {0xFD657CA3, 0xD057E9E3, 0x60F80C55, 0x5510F000, 0x01821E20} } } ,
31053 { { {0x2D53045C, 0x372FF4A1, 0x35D46CB5, 0xF774FA07, 0x111E840D},
31054 {0x8FE251D6, 0x0C1A7123, 0xBD938117, 0xEDBEDE13, 0x1288E618} } ,
31055 { {0xCD5CF200, 0x1D9F7057, 0x21C86584, 0x6B0EF8F0, 0x0FBCCEBC},
31056 {0x794F53BF, 0xFA6C45EF, 0x65D4C1C4, 0x91DEF53F, 0x068260E0} } } } ;
31057 static const bigint_t var_b = {0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000};
31058 static const fp12_t var_expected = { { { {0xAA926E0F, 0x17E2BB5E, 0xE40C122A, 0xCD7312F7, 0x0D038407},
31059 {0xB96EA5F4, 0xF791C2DB, 0x540056F0, 0x074A8013, 0x0F451299} } ,
31060 { {0xBFDE2332, 0x2772B195, 0xD28327FE, 0xB860D38F, 0x1974C76C},
31061 {0x5A3E24CF, 0xACBF796B, 0x49AE6162, 0x625A4651, 0x139AE3D6} } } ,
31062 { { {0x849A993C, 0x17A8BC47, 0x8EAF40AA, 0x43AD416C, 0x03DD2D8E},
31063 {0xF89EE1FF, 0x7338E7C3, 0xAB786961, 0xF577C235, 0x0D9FE6D6} } ,
31064 { {0x1FD0A735, 0x5D5723DD, 0x7AE4C4AC, 0x648B363D, 0x0C29695E},
31065 {0x9F3397DC, 0xC1DA3B4B, 0xABC86A3F, 0x4F6601CA, 0x0D587C62} } } ,
31066 { { {0x5410B0CF, 0x7D92B4F8, 0x116EF08B, 0xDCF906C4, 0x1DB0ACD1},
31067 {0x5E32ADDC, 0xA86067E5, 0x291FDE97, 0xC43D1CBB, 0x1FD9DBDB} } ,
31068 { {0x315CEDF5, 0xFCCB0DBF, 0x58319D2B, 0x27D1AD82, 0x1A3576BF},
31069 {0xA3C84AFE, 0xAD0E7F23, 0xBEBB5D51, 0x97418E0B, 0x03CB9FFF} } } } ;
31071 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3449 a000");
31072 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3450 a001");
31073 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3451 a010");
31074 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3452 a011");
31075 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3453 a100");
31076 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3454 a101");
31077 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3455 a110");
31078 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3456 a111");
31079 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3457 a200");
31080 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3458 a201");
31081 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3459 a210");
31082 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3460 a211");
31085 static const fp12_t var_a = { { { {0x7A917145, 0x1151431C, 0xEC30866E, 0x6F623F82, 0x0DCDACFD},
31086 {0xE2EE5ECA, 0xE2B445E5, 0x8CD5D640, 0xCCC29301, 0x1F59E3BE} } ,
31087 { {0x43D265CA, 0x2911FB96, 0xF15D2A69, 0x49B85DBA, 0x0089C511},
31088 {0x5653BB00, 0xEC667EFA, 0xCDC7B42C, 0x44463EB8, 0x00D8ADF5} } } ,
31089 { { {0xD0B24FCE, 0xA6152C0E, 0x4D6B68C5, 0x175B5B5B, 0x10D96770},
31090 {0x3A175E15, 0x30146485, 0xC287D5A8, 0x56263ECA, 0x0F266C35} } ,
31091 { {0xBEF5D53D, 0xF7BD692B, 0x3659E7EB, 0x1FC659E7, 0x06CC86BA},
31092 {0xEC961DD7, 0xC781ECAC, 0xECE0543A, 0xEC659128, 0x00352692} } } ,
31093 { { {0xDC8F89C2, 0x273FA395, 0x9705EC8B, 0x2FB49BA4, 0x04D95DBE},
31094 {0x0EFA555F, 0x16A70D96, 0xFB254B53, 0x1A232FEC, 0x026EAFF9} } ,
31095 { {0x1307F994, 0x772CBEBE, 0x622A8D6A, 0x66E559B0, 0x1ED1A82C},
31096 {0xCD2DA3DF, 0x31CA86FF, 0x0126DBF9, 0x5A7118D3, 0x0BA7F246} } } } ;
31097 static const bigint_t var_b = {0xF5F55C72, 0x60F52B52, 0x64D72A1B, 0x2740C631, 0xD0AC0286};
31098 static const fp12_t var_expected = { { { {0x705BEBB4, 0x682A93D8, 0xC78584E4, 0x676A183F, 0x013EDDA1},
31099 {0x5D781A48, 0x62736518, 0x94E39B73, 0x3BEF1CED, 0x075900B5} } ,
31100 { {0xDC46B5B5, 0x312FAD8D, 0x813388E4, 0x01114CC9, 0x017FCA57},
31101 {0x009655CB, 0x7D5DF9E3, 0xD3F7CC22, 0xCA5E9F7E, 0x07C671AA} } } ,
31102 { { {0x8B42AA80, 0xF0F505F7, 0xD5107105, 0xF149BAE0, 0x18079991},
31103 {0xE17E0186, 0x0AC44123, 0x45931954, 0xCA994571, 0x1225F0BE} } ,
31104 { {0xD727175A, 0x6A4F4514, 0x49572726, 0xE5537CF9, 0x21F05C24},
31105 {0xD0211980, 0x78E56A8A, 0x96064A4E, 0x159F1CCC, 0x2334B329} } } ,
31106 { { {0x662DCBE0, 0x691549A0, 0x47CF2C3C, 0xE7D9C1B5, 0x12B3FEA7},
31107 {0xC7AA258F, 0x33CCE5E5, 0x587D29AC, 0xFB4FC49D, 0x228CA746} } ,
31108 { {0xC399F0BD, 0xDF704350, 0x809C73D2, 0x247F380E, 0x003372D7},
31109 {0x1A314966, 0x33109768, 0xDD38A34B, 0x14A76E90, 0x1FE9F698} } } } ;
31111 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3461 a000");
31112 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3462 a001");
31113 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3463 a010");
31114 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3464 a011");
31115 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3465 a100");
31116 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3466 a101");
31117 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3467 a110");
31118 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3468 a111");
31119 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3469 a200");
31120 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3470 a201");
31121 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3471 a210");
31122 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3472 a211");
31125 static const fp12_t var_a = { { { {0x223EB7A7, 0x4CCD2371, 0x16D69B56, 0xA59CD95B, 0x11B84490},
31126 {0x91709C41, 0x95EB817C, 0xBC9DFE17, 0xED3B8CA9, 0x085B6E6D} } ,
31127 { {0xDE0DF795, 0x97D794D8, 0xE65F27D9, 0xB937B7E4, 0x065360C4},
31128 {0xF17A2224, 0x4B6BE530, 0x7F2AC097, 0xF14B6FEE, 0x168382A2} } } ,
31129 { { {0xD8F0AA44, 0x42BA74D5, 0x326BE2A7, 0xF00B17E9, 0x2023E885},
31130 {0xF0B83E32, 0xC76B7460, 0x6A7AB6CE, 0xF9C51576, 0x0D364087} } ,
31131 { {0x52E91B89, 0x568987FC, 0xEAA08B77, 0x8C2C1498, 0x037DAAC5},
31132 {0xA7C169C1, 0x8A39124D, 0xCD7A2AB6, 0xE84C2DA4, 0x12D3F8A3} } } ,
31133 { { {0x82BCB567, 0x1BDEEABE, 0xA06E884C, 0x18263133, 0x0FF1685C},
31134 {0xF4FA144C, 0x1E24F92A, 0x2972846A, 0xF534E273, 0x14391BC0} } ,
31135 { {0x77D82BB4, 0x42359FAB, 0xD68056AE, 0xB821DB83, 0x08304F9F},
31136 {0xDC053053, 0xA95AA0EF, 0x1AA644EA, 0x13A8361E, 0x0D5AD39C} } } } ;
31137 static const bigint_t var_b = {0xB0190AEA, 0xB28FFF00, 0xD527661B, 0x08E5A47C, 0x5A4FFC57};
31138 static const fp12_t var_expected = { { { {0xC6D0338C, 0x529053D0, 0x05E7EE19, 0x2CEE95C7, 0x1E8FC8A5},
31139 {0xC2E19755, 0x2EEF2686, 0xBCD0D766, 0x8820216A, 0x194728C8} } ,
31140 { {0x1CE282D2, 0xA55C96B3, 0x8EAAAFA7, 0x223F525A, 0x1FC57A74},
31141 {0xA0697AF3, 0x2B2A7813, 0xB1C38472, 0x46017984, 0x139E382A} } } ,
31142 { { {0x2C13220D, 0xABB52D14, 0x0F58826C, 0x2F5BC827, 0x0FD8AC7F},
31143 {0xF72AFA45, 0x6C1F377D, 0x6722DDAB, 0x626D074D, 0x1FB7C03D} } ,
31144 { {0xC3FD2DB2, 0xA6FA807E, 0xC0BAE2EA, 0xAFD144C6, 0x171EAEE7},
31145 {0x272CDF5D, 0xF71358F5, 0xDED42E21, 0x57FFEBAE, 0x1E516881} } } ,
31146 { { {0xB93269FB, 0xE0D338DF, 0x8DAB4476, 0x46CC35F0, 0x1FECC39D},
31147 {0x65FD101C, 0x52ADE235, 0xE6476989, 0x56AA1D37, 0x1DDB9342} } ,
31148 { {0x4344161C, 0x0106AC59, 0x2F2F567C, 0x0D50CFEC, 0x09B26769},
31149 {0x70278973, 0x0500C058, 0x13F4B2E9, 0x61DE4AF3, 0x20B921AB} } } } ;
31151 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3473 a000");
31152 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3474 a001");
31153 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3475 a010");
31154 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3476 a011");
31155 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3477 a100");
31156 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3478 a101");
31157 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3479 a110");
31158 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3480 a111");
31159 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3481 a200");
31160 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3482 a201");
31161 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3483 a210");
31162 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3484 a211");
31165 static const fp12_t var_a = { { { {0xD64AD5B6, 0x2BE5F066, 0x31BFD8D9, 0xED9B857F, 0x098F1FAC},
31166 {0x3134B825, 0xF3F21B6E, 0x365F89DB, 0x89BFF890, 0x08DEC522} } ,
31167 { {0xE5BBA884, 0xE3F576D4, 0x261C0A5A, 0xBB26B2C3, 0x22D4216D},
31168 {0x3F08F14D, 0xF750A086, 0x134DC852, 0x2797DCF1, 0x1BF95632} } } ,
31169 { { {0xD68BFEEA, 0x21F1D53C, 0x1087E7FD, 0xD8C43027, 0x1DC56DD2},
31170 {0xF105A372, 0xA1A9D5EA, 0x5DD0F38B, 0xDC4F58CA, 0x23634399} } ,
31171 { {0xB7221ABC, 0xD72D67CD, 0x14A516C8, 0xAA4F0CC1, 0x0F759B8A},
31172 {0xF4625BD0, 0x4B4D093D, 0x4816EE14, 0x9833CD0D, 0x1722D358} } } ,
31173 { { {0x74F522A9, 0xFAFC0FC4, 0xB37DD0F8, 0x79B5D5BE, 0x1838513E},
31174 {0x76173A5C, 0x5EFA9AD9, 0xC95FF58F, 0x7AC0FFBF, 0x1D76BC13} } ,
31175 { {0x9347E129, 0x6F4789A7, 0x382B7266, 0x121BEEF6, 0x13114716},
31176 {0xE422E886, 0x02B7E240, 0xDD8B963D, 0x6796CD0B, 0x1ADE107C} } } } ;
31177 static const bigint_t var_b = {0xBCA3B233, 0xA2B26941, 0x9838F0AC, 0xEB113793, 0x0A1DD4DD};
31178 static const fp12_t var_expected = { { { {0x549E2DA7, 0xC346295E, 0x17C6651C, 0xF60A17E6, 0x0C437A1D},
31179 {0xFE4ADE7E, 0xF3CFAF05, 0xAC3FEFD9, 0x640B19EF, 0x00A558F3} } ,
31180 { {0x097E9251, 0x25D334A8, 0x3009E414, 0x87D79751, 0x11E66B9C},
31181 {0x807FFC72, 0xF0C306D6, 0xFB7C4EC6, 0xBF5DDF50, 0x0B024931} } } ,
31182 { { {0xD23C55FE, 0x387C605F, 0xB0286405, 0xB88FE0D3, 0x07F58FC9},
31183 {0x510C9D0C, 0x904B7C74, 0x33D12C0D, 0x3C8F8858, 0x0F1B19DB} } ,
31184 { {0x7BF099D6, 0x08963056, 0xA40DB307, 0xBC2C56A2, 0x11149915},
31185 {0xCBDA7767, 0x246AFF96, 0xBD0247EB, 0xA1D8A512, 0x11658D0B} } } ,
31186 { { {0xAE684FF4, 0x1717969A, 0x60C2C718, 0xC79B3A6C, 0x0B441BDB},
31187 {0x4E885BAE, 0x602B33F7, 0x72C27CA5, 0x436E95C4, 0x06FEA01F} } ,
31188 { {0x34429F5C, 0x98B6B8CD, 0xA324CA7E, 0x25D38230, 0x1D4056D9},
31189 {0xD2CFCA81, 0xEE54263D, 0x0905C7D2, 0xA6C35CFA, 0x2122FBAD} } } } ;
31191 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3485 a000");
31192 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3486 a001");
31193 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3487 a010");
31194 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3488 a011");
31195 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3489 a100");
31196 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3490 a101");
31197 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3491 a110");
31198 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3492 a111");
31199 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3493 a200");
31200 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3494 a201");
31201 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3495 a210");
31202 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3496 a211");
31205 static const fp12_t var_a = { { { {0xE357B02B, 0x9C5E0F4A, 0x2C3DB87F, 0x3DCFE3B0, 0x05EECE6D},
31206 {0xCC98343E, 0xBCF8E727, 0xA58DBDD3, 0x3F2ABF4B, 0x01899F15} } ,
31207 { {0x35F7EA03, 0x19F6C172, 0x890312AF, 0xE83EAEDB, 0x1E8A6F6B},
31208 {0x5FB9AA34, 0x2ECBB014, 0x2646047C, 0x87A98E68, 0x07008678} } } ,
31209 { { {0xCEAF2A50, 0xEA11F06F, 0xD748C4AB, 0xD4057DC3, 0x05B558A5},
31210 {0x28B1607D, 0xAFB01696, 0x9BAAD41F, 0x11E6F45B, 0x1C2EDB4A} } ,
31211 { {0xA8A815C7, 0xD57DD1A2, 0xD4FB76CD, 0xF11B24C8, 0x0A1F99A6},
31212 {0x266FDE61, 0xC51F0B27, 0x05EE6384, 0x97E1B230, 0x0B527C9B} } } ,
31213 { { {0xA9D57F0F, 0x5BD4EC87, 0xA0E977E7, 0xCBB1EBE0, 0x03AE0523},
31214 {0x9BC7F598, 0x6065A021, 0x218EB993, 0xC28E372B, 0x21AD5146} } ,
31215 { {0xAE1755A1, 0x40C8FF14, 0xD3CA2310, 0xE87C2D1F, 0x04E620FB},
31216 {0x245196B2, 0xE4C3347D, 0x926EA45A, 0xC7701D21, 0x173B3021} } } } ;
31217 static const bigint_t var_b = {0xDD20B761, 0x5B700B65, 0x775E40F0, 0xE6F23573, 0xE2564D9B};
31218 static const fp12_t var_expected = { { { {0x0D4F999A, 0x4DB8B902, 0x04C22D65, 0xE4955D64, 0x0A33B328},
31219 {0x982A4EE8, 0x300CA594, 0xE02B7F01, 0x61231C5E, 0x0A02D377} } ,
31220 { {0x9F44900C, 0x4417DC87, 0xE8835BF8, 0xB3C609C6, 0x0F56993E},
31221 {0x1DAA6E69, 0xF4D517B0, 0x43D4FE1D, 0xDF1BE8EE, 0x1867C507} } } ,
31222 { { {0x6C2E2F8C, 0xD89A658C, 0x531B976E, 0x7FCEAECC, 0x09A30EC8},
31223 {0x8601994A, 0x3BDD0551, 0x2ADDD4C5, 0x165BA22B, 0x22E288EF} } ,
31224 { {0x257202EF, 0x0CDBEF5E, 0xD1EE798B, 0xD374573D, 0x164A99F9},
31225 {0xA79FA68E, 0xFC6CFDBF, 0xFC023A5F, 0xF630A008, 0x100C59BF} } } ,
31226 { { {0xFD926640, 0xFDAAA618, 0x8A2B086F, 0x434AD600, 0x15DCC97F},
31227 {0xC5054388, 0xD9DDD166, 0x7D3A1024, 0x702EEA68, 0x208FBBBB} } ,
31228 { {0xCBDCE39B, 0xA4062E55, 0xB0DC073E, 0xF05FD7BC, 0x1F3A4F43},
31229 {0x27AEF69A, 0x18112629, 0x849C77DC, 0xE2A828A9, 0x0120BDCA} } } } ;
31231 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3497 a000");
31232 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3498 a001");
31233 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3499 a010");
31234 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3500 a011");
31235 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3501 a100");
31236 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3502 a101");
31237 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3503 a110");
31238 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3504 a111");
31239 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3505 a200");
31240 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3506 a201");
31241 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3507 a210");
31242 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3508 a211");
31245 static const fp12_t var_a = { { { {0xEB13113A, 0x2F0030C3, 0xC3760032, 0xF100C0A1, 0x20F4A1A2},
31246 {0x1ABEA44D, 0x550F3F50, 0xA60CEEB2, 0x62C5086F, 0x05F356AA} } ,
31247 { {0x92B7A443, 0x25B366D2, 0x84ED5933, 0x79600BEE, 0x04B6A190},
31248 {0x845E223D, 0x64A08E8F, 0x0C54D04E, 0x5C57E6A9, 0x06DF0017} } } ,
31249 { { {0xDC9F4AFE, 0x6DE517C0, 0x23ADE5CF, 0x05AF233E, 0x0B447EB5},
31250 {0x9616F5CC, 0x88F11915, 0x6FA6CA9D, 0xAF1E3644, 0x019576CD} } ,
31251 { {0x830ACDA7, 0x3C4BE321, 0x5D592406, 0x43A710A6, 0x20D557B9},
31252 {0x58261D29, 0xE4EEB98F, 0x3B12D010, 0x86C9E11A, 0x04B07CF1} } } ,
31253 { { {0x4787D345, 0x5C9468A9, 0xE4604931, 0x53F587C4, 0x08BA3848},
31254 {0xA4AEF07C, 0x32683D73, 0x92AC307E, 0x5D586816, 0x0659BF25} } ,
31255 { {0x7807183E, 0xDCE4A016, 0xE183039B, 0xF73EE544, 0x18C2C936},
31256 {0x527D61CA, 0xF86F9270, 0xED29CDA0, 0xF67863A7, 0x027100AB} } } } ;
31257 static const bigint_t var_b = {0x302F3B84, 0x8ADD49D1, 0x7C1FEBC9, 0x6FD226E0, 0xDC00444C};
31258 static const fp12_t var_expected = { { { {0x22D4FA9F, 0xBD5A40FC, 0xB58F561C, 0xC619F6DC, 0x1B738BCD},
31259 {0x38C6F290, 0x93B7AC95, 0xD29CE38C, 0x9CC1F46E, 0x119E5663} } ,
31260 { {0xE8CB865E, 0x61625060, 0x8B689A36, 0x415FFFF6, 0x2087D586},
31261 {0x7790E62B, 0x93DB4CD3, 0xBDA7F80A, 0x3185458B, 0x1FE3104F} } } ,
31262 { { {0xA637787B, 0x4B201840, 0xCD2BC2F6, 0xB3F6F6BB, 0x05142D12},
31263 {0x97A7A44B, 0xBB3530E7, 0xAD2DAC1B, 0x5F54D3D0, 0x03A23914} } ,
31264 { {0xF1C4F038, 0x17129F6C, 0x15A93090, 0xABCDB27F, 0x08E5A4F6},
31265 {0xE31398C6, 0x2A4AFF03, 0xF19F0548, 0x43F76B53, 0x227AD6A8} } } ,
31266 { { {0x4C4C8262, 0x56A8656A, 0xA7D332F3, 0xB919621D, 0x0365224E},
31267 {0x4FA4A44E, 0x5E2CCEBB, 0x14E712A7, 0x50D0BCC7, 0x0A380841} } ,
31268 { {0xE2CA1798, 0xFD2FC028, 0x1226E4E4, 0x447C952B, 0x16E792B0},
31269 {0x587A30FA, 0x6A18BE29, 0x2CF262C9, 0x731A0651, 0x03FE5CBF} } } } ;
31271 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3509 a000");
31272 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3510 a001");
31273 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3511 a010");
31274 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3512 a011");
31275 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3513 a100");
31276 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3514 a101");
31277 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3515 a110");
31278 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3516 a111");
31279 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3517 a200");
31280 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3518 a201");
31281 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3519 a210");
31282 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3520 a211");
31285 static const fp12_t var_a = { { { {0xDA2646F2, 0x766DA97F, 0xA9EFA225, 0xF85C3CA6, 0x188F949B},
31286 {0x06B48250, 0xBAEE62F2, 0xC764A04C, 0x9BC1137F, 0x0037DCA7} } ,
31287 { {0x6CB9442D, 0xD3AB9688, 0x3C572258, 0x347B9A7E, 0x1E06DF14},
31288 {0x96A5C8B0, 0x55E232B8, 0x03FE98F4, 0x5FF260C9, 0x0CBF4C24} } } ,
31289 { { {0xF12799EB, 0xA2EE0AE8, 0x3F0046CF, 0x01219A18, 0x1C92A53C},
31290 {0x4003E514, 0x10AC9B19, 0x2424AF71, 0xC98593C6, 0x19E287A9} } ,
31291 { {0xE75980DC, 0x3DDB6D0F, 0xE3FAE839, 0x10A8F6CC, 0x19ACDA77},
31292 {0x631082E3, 0x271D9366, 0x5F9C76A8, 0x966E8FB4, 0x1628B4A0} } } ,
31293 { { {0x56B465FE, 0xA81983FA, 0xD1256050, 0x07DD40D2, 0x025884CB},
31294 {0xD8C14BD4, 0xCC71BD05, 0x1DB7DCD1, 0xEF5152CF, 0x21CE8912} } ,
31295 { {0x17F53D48, 0xD79BDB9A, 0xE7E417F4, 0x5D89DFA4, 0x1B09A068},
31296 {0x0F8FEBFC, 0x8BCB2F84, 0x6E719723, 0x85A07682, 0x1B940429} } } } ;
31297 static const bigint_t var_b = {0xD3FD65B9, 0xEEC8E675, 0x6B28DF12, 0x5F9D54EC, 0xCB038DD2};
31298 static const fp12_t var_expected = { { { {0x4858E80E, 0xE534892F, 0x6CAE4E8C, 0xB2EB1EC6, 0x013BE966},
31299 {0xFFE670DE, 0x809DE509, 0x6B961A2F, 0xB0CA6087, 0x0E5BBA62} } ,
31300 { {0xFB3ADD60, 0x6C0F0B6C, 0x5C71C2E9, 0x4E50C28A, 0x15213E47},
31301 {0x4484A65B, 0x804BD5D2, 0xD3F638EC, 0x424BEAD5, 0x0BA0264F} } } ,
31302 { { {0xC3750D03, 0xAD7856D6, 0x83E614EF, 0x0469864B, 0x046003E8},
31303 {0xADD85DFB, 0x1A1CE69F, 0xEE143153, 0x5CC7A874, 0x1E8C5796} } ,
31304 { {0xEDA95E15, 0x01AB48DB, 0x87618547, 0x524F5EBD, 0x0206FEFA},
31305 {0xC6F7D1B1, 0xC3A98A1D, 0x696EFB16, 0xE560F1BE, 0x152375DC} } } ,
31306 { { {0xDC8014F2, 0x20AD7718, 0x595AFD65, 0x7361B881, 0x062A9F87},
31307 {0xE4E33C77, 0x64808477, 0x831FE0FB, 0xC026AB96, 0x124A624D} } ,
31308 { {0xC3B4A742, 0xF920D141, 0xEAB70F99, 0xB5ACFDEA, 0x0064AA20},
31309 {0x21C1A924, 0x2F401E86, 0x85158307, 0xC1E96CEF, 0x0AD0536F} } } } ;
31311 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3521 a000");
31312 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3522 a001");
31313 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3523 a010");
31314 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3524 a011");
31315 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3525 a100");
31316 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3526 a101");
31317 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3527 a110");
31318 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3528 a111");
31319 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3529 a200");
31320 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3530 a201");
31321 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3531 a210");
31322 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3532 a211");
31325 static const fp12_t var_a = { { { {0x6576EF4D, 0x484071AB, 0xE7156D23, 0xC5A615F5, 0x1732288F},
31326 {0xD7227A05, 0x80EC99E0, 0xAAF9897F, 0x52FFB1D0, 0x07AEA429} } ,
31327 { {0xCFC35328, 0xDF8958C3, 0x0B923415, 0xFDC9091C, 0x19078C08},
31328 {0x32E3235A, 0x989E8328, 0x78B5B1E2, 0xA5E291DE, 0x23805562} } } ,
31329 { { {0x09C2D555, 0xD101C1D9, 0x1284E44B, 0xCBB29D42, 0x057BE58C},
31330 {0xDD753ADA, 0x41573792, 0x8B3457C8, 0x2CE6500C, 0x1DD3011B} } ,
31331 { {0x6F76D1A6, 0x3278510C, 0xA3BDCCEA, 0x0428914F, 0x0A79E78B},
31332 {0x71E23474, 0x3BEC0DD9, 0x9A42F4D7, 0x7B3C0F1D, 0x1B3022BF} } } ,
31333 { { {0x21C5D95A, 0x2D5C667F, 0x1D7ED9F7, 0x66549BDE, 0x0DE7E9CB},
31334 {0xDD496148, 0x68E99C57, 0x959CF889, 0x4E3B80E6, 0x187F1E07} } ,
31335 { {0xDFC64027, 0xFA9329ED, 0x7620F7D9, 0xFFAB1172, 0x124FD3A1},
31336 {0x5508E3CB, 0xA5E05A94, 0x2177AFC8, 0xAD028F0A, 0x16A6F8D0} } } } ;
31337 static const bigint_t var_b = {0xF99FF1AF, 0x576E44F8, 0x186DE127, 0xC25800D0, 0x4516B1D0};
31338 static const fp12_t var_expected = { { { {0xE6E9F291, 0xA48F6CAA, 0xCA4A8883, 0x2B082FB6, 0x0926F12E},
31339 {0x1FFF1B37, 0x7CD7141C, 0xBD99AFA7, 0x67D7786C, 0x168AFCAC} } ,
31340 { {0x7AAB927E, 0xAA81BE2E, 0xC7C3950C, 0x36CC6DF0, 0x141167BF},
31341 {0xF3F2CA57, 0x63014A34, 0x67F59574, 0x6B7AEC66, 0x22D46EA0} } } ,
31342 { { {0x9F3AC91A, 0x5C5B5675, 0x695B651A, 0xBF1DAC01, 0x1A811A9E},
31343 {0xC62C8140, 0xD0521671, 0xA4C1B812, 0xC5087E7B, 0x20033473} } ,
31344 { {0x9A22DD6C, 0xA9ED43D6, 0x92281136, 0xE4BEB7CD, 0x2181E174},
31345 {0x59F5246C, 0x4511FEE3, 0x71718D1D, 0x00D65748, 0x1F528AAC} } } ,
31346 { { {0x95A4F218, 0x3DA39992, 0xB8CEA92A, 0xA18140C1, 0x1D111A52},
31347 {0xCC76ED81, 0x079E1C2B, 0xD6BD1A88, 0x23E2E6E7, 0x1A35ADBE} } ,
31348 { {0x248CC77F, 0x4BD2266F, 0x1BED2A04, 0x5E4A856F, 0x101B1F53},
31349 {0x0EE93A05, 0xCB000A9B, 0x9457DF91, 0xA50EA04E, 0x2307C874} } } } ;
31351 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3533 a000");
31352 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3534 a001");
31353 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3535 a010");
31354 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3536 a011");
31355 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3537 a100");
31356 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3538 a101");
31357 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3539 a110");
31358 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3540 a111");
31359 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3541 a200");
31360 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3542 a201");
31361 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3543 a210");
31362 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3544 a211");
31365 static const fp12_t var_a = { { { {0x4CDD2911, 0x7EC0977B, 0x6B802566, 0x79A51B08, 0x231852AB},
31366 {0x85A249CF, 0x2D9CB3D5, 0x3C3060C4, 0x889443ED, 0x0C1C6BAF} } ,
31367 { {0xDE22F30D, 0xD846BC7A, 0xEDFE0F2E, 0x02F587B9, 0x1BC0F7A4},
31368 {0x25543B0F, 0x104830EB, 0x0E919C98, 0x37C42D98, 0x20CF1DDE} } } ,
31369 { { {0xE64830F1, 0x5E146F6C, 0x2810A4C9, 0x817427E5, 0x16F48DA1},
31370 {0xDE980749, 0xB07E74E3, 0x2ACA409A, 0x3E90544A, 0x11148C72} } ,
31371 { {0x4534D6C9, 0xD2825BE8, 0x8DAC48B7, 0x4C31B0C0, 0x1BF4375B},
31372 {0x6FA8F4AA, 0x9623279B, 0x901CE86B, 0x9452CD78, 0x0B27D73D} } } ,
31373 { { {0x8710200C, 0x44D97B74, 0xC2F0BCFF, 0x054ECDA8, 0x0925504B},
31374 {0x27E4D556, 0x2952880C, 0x264ADD51, 0x15278071, 0x11593DAB} } ,
31375 { {0xD36CB0CF, 0xFD52068B, 0x1135BA91, 0xA3FB89A8, 0x1F26EE77},
31376 {0x89D3B33F, 0x572A3D6F, 0xFAE0ED5C, 0x171346ED, 0x148A61EE} } } } ;
31377 static const bigint_t var_b = {0xF70B4EAE, 0x0BE533B9, 0xB219BB26, 0xEF01B9D9, 0xCE0580F8};
31378 static const fp12_t var_expected = { { { {0x8A7AC81A, 0xB54C8373, 0x73E3993C, 0xE9AC8544, 0x1D609F9C},
31379 {0xDC0C43D0, 0x07F9F73A, 0xF707C8EF, 0xD15617B7, 0x0D498A46} } ,
31380 { {0xE160CCF6, 0x887A480D, 0xB8BDD584, 0xBF34EA13, 0x1D964E46},
31381 {0x48F7426B, 0xB787194B, 0x7316A1BE, 0xB94709EF, 0x07479A92} } } ,
31382 { { {0x80C4DB84, 0x88CAE421, 0x56316E3C, 0xFB5AB308, 0x147E237D},
31383 {0xB1C52095, 0xFDB716E0, 0x70D32EF7, 0xC35EAF02, 0x0B09858F} } ,
31384 { {0x359BE77F, 0xE07E4CBD, 0xD807EEAC, 0x2C608FA8, 0x014F15EB},
31385 {0x5FEC5A76, 0x50E5C570, 0xD6533A52, 0x16A7E5B0, 0x230629E1} } } ,
31386 { { {0x85EA3A99, 0x65236132, 0x8746B1C7, 0x45B7C0C4, 0x1821B17E},
31387 {0xAC11DE65, 0xE765C870, 0x175BCA84, 0xE97F58BE, 0x0E54273C} } ,
31388 { {0x1AFE3E68, 0x1A3619EC, 0x16EF0501, 0xA94D9A63, 0x156B04FF},
31389 {0xD40627CA, 0x72DA85AF, 0x8B5A2F88, 0x252FAD28, 0x1DB77573} } } } ;
31391 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3545 a000");
31392 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3546 a001");
31393 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3547 a010");
31394 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3548 a011");
31395 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3549 a100");
31396 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3550 a101");
31397 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3551 a110");
31398 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3552 a111");
31399 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3553 a200");
31400 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3554 a201");
31401 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3555 a210");
31402 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3556 a211");
31405 static const fp12_t var_a = { { { {0xB54CA66B, 0xB950F5A4, 0x0B3C7B35, 0xF8BA3766, 0x219295C3},
31406 {0x033441F7, 0x85B88748, 0x16B73850, 0xDD2681B4, 0x0D090967} } ,
31407 { {0x5A50AF12, 0x47CB3675, 0xED49CB6B, 0x69517958, 0x17768149},
31408 {0xF0689A77, 0xC8F9E0E0, 0x737CC0F4, 0xBC59DC0B, 0x232F4E2D} } } ,
31409 { { {0x42B00D12, 0x273035A6, 0x9DA1266B, 0xB27AE40F, 0x07B84AE7},
31410 {0x4F741230, 0x41C34141, 0x0ED31208, 0x3B7A225D, 0x1D004C51} } ,
31411 { {0x98FC6AF6, 0xE904A44B, 0x9ED2C147, 0x121709B6, 0x1A4E0708},
31412 {0x7288CE03, 0x76DB8A8E, 0x131EA27A, 0xB7CB399A, 0x162815F6} } } ,
31413 { { {0xF3C5E331, 0xCB3CD1E7, 0x0DCBCEF5, 0x7AAC76EC, 0x099B0519},
31414 {0x3F22E112, 0xEC82E89E, 0xFEC5C60D, 0x68F4D7D2, 0x21BCDAF6} } ,
31415 { {0xC2D1E881, 0xCB34C67B, 0xD32D34B0, 0x267EBA03, 0x1B06B6CE},
31416 {0x8B582BCC, 0xB55487F4, 0xFC22724B, 0x43404244, 0x19B7D5E6} } } } ;
31417 static const bigint_t var_b = {0x3094E970, 0xE36FA74A, 0x83CB4F62, 0x24C9DDE1, 0xB1ADEB51};
31418 static const fp12_t var_expected = { { { {0xA9C18551, 0xB17B4A5C, 0x0029079F, 0xC604FAA4, 0x1B077355},
31419 {0xBB534398, 0x54E05582, 0xF90791AF, 0xDA0BEAF7, 0x20A926DF} } ,
31420 { {0x83B1A386, 0x45C036EE, 0x4E3D7566, 0xACD65956, 0x1952E1E1},
31421 {0x706211C2, 0x5B22E9BA, 0xA59233D4, 0x85B06062, 0x00F32B90} } } ,
31422 { { {0xFB46B998, 0x264E518B, 0x6E7C0758, 0xCA83FF0B, 0x1E2EDB26},
31423 {0xA46DC7BA, 0xC66C5231, 0x688023E5, 0x643A0C8E, 0x0F64AC1D} } ,
31424 { {0x0269CB64, 0xC2130D98, 0xD4DE5E76, 0xC8FF68D9, 0x1789BE4E},
31425 {0x29527181, 0x61E503DA, 0x847C2393, 0x1C0F79F1, 0x220EA4F9} } } ,
31426 { { {0x467ED2F2, 0x68715B17, 0x5E94C188, 0x7087E6AB, 0x1EC067BE},
31427 {0x69324125, 0x2E7EFB44, 0x59BF7D4C, 0xF5FD5F5C, 0x0C05395A} } ,
31428 { {0x40D9393C, 0x94791C88, 0xA13BFFD5, 0x0DEF7106, 0x03809CE5},
31429 {0x41BF20B4, 0xFBDE55B3, 0x262CCC23, 0x7E12BEF4, 0x12A20610} } } } ;
31431 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3557 a000");
31432 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3558 a001");
31433 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3559 a010");
31434 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3560 a011");
31435 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3561 a100");
31436 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3562 a101");
31437 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3563 a110");
31438 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3564 a111");
31439 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3565 a200");
31440 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3566 a201");
31441 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3567 a210");
31442 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3568 a211");
31445 static const fp12_t var_a = { { { {0xF9044B23, 0xD9E5797A, 0x3C856F19, 0x1BAD0E2D, 0x1DBA2437},
31446 {0x4B6586E8, 0x59D727CC, 0xD76830C9, 0xDCA5A8E0, 0x1C7192F0} } ,
31447 { {0xEADBC500, 0x3A0303B1, 0xD90C1C09, 0x6AC615F2, 0x23357D01},
31448 {0x76098C5C, 0x9BE5A63F, 0x02FCE801, 0x90BB684F, 0x17954D9E} } } ,
31449 { { {0x9F800C52, 0x7D9734C0, 0xF98CFEC0, 0xA3D577FA, 0x0C8BA00F},
31450 {0x362937F7, 0x9693AFC1, 0xC35EE7C1, 0x8CB04DB1, 0x0E966115} } ,
31451 { {0x6AC44D05, 0x62CFD1C4, 0x647C00C3, 0x4B8EC979, 0x0882619B},
31452 {0x81D1A2B4, 0xF04F64F0, 0xFB5B0A2B, 0xDAD915CB, 0x014E44F9} } } ,
31453 { { {0x73AEF395, 0xE04907CA, 0xA387B6C8, 0xE31A8240, 0x18A99A8E},
31454 {0x37B9F9A0, 0x7E6E8E3E, 0x0924A82E, 0xFF7DBCD7, 0x0AA61ADB} } ,
31455 { {0x19DEE2BB, 0x9EDFF1D7, 0x0CCD13EE, 0x576628F2, 0x15C0712D},
31456 {0x28296E2A, 0x599D6213, 0xDAD06F3F, 0x56B4F0C0, 0x1B305BAB} } } } ;
31457 static const bigint_t var_b = {0xD03AD5B3, 0xE520F971, 0x19B586F6, 0xA2C3CBC9, 0xED85CBF1};
31458 static const fp12_t var_expected = { { { {0xAE81275E, 0x77015B2F, 0x80471D2B, 0x9E807A2D, 0x0DC05BE6},
31459 {0x847E9EAC, 0x4BFC1F93, 0x5239CD7F, 0x8DFF0AF7, 0x0F4D76CD} } ,
31460 { {0x83F09D85, 0x164E47CC, 0x376F2A48, 0xF01271B0, 0x21B9D8BE},
31461 {0xF3AE0D72, 0xF3103A6C, 0x6ED0655B, 0xF1726738, 0x00709B06} } } ,
31462 { { {0x4F43F9A8, 0xE5032027, 0xA676E25A, 0x2B6949A5, 0x0F3D6451},
31463 {0xFF6290A6, 0x1CBD7C70, 0x349D0B67, 0xD20181D0, 0x1E367986} } ,
31464 { {0x0EBDCF88, 0x603C2713, 0x899935A9, 0xB658B3A7, 0x1FF3169D},
31465 {0x4771175D, 0x17483CFC, 0x267A5309, 0x64B1788C, 0x0358851A} } } ,
31466 { { {0xAA2E6A0E, 0x1E6AF791, 0x1F049F1A, 0x1F2B79D2, 0x1AA379F1},
31467 {0xDB6082BC, 0x000CA772, 0xD674F144, 0xC3B21977, 0x11BEF3F0} } ,
31468 { {0xAB7FB699, 0x4B0979C6, 0xFDDB1D2A, 0xF0C239CE, 0x0B8D6129},
31469 {0xB419F1CC, 0xD5D6D737, 0x467FDBEC, 0xF678C985, 0x124E1310} } } } ;
31471 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3569 a000");
31472 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3570 a001");
31473 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3571 a010");
31474 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3572 a011");
31475 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3573 a100");
31476 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3574 a101");
31477 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3575 a110");
31478 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3576 a111");
31479 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3577 a200");
31480 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3578 a201");
31481 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3579 a210");
31482 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3580 a211");
31485 static const fp12_t var_a = { { { {0xB8909C7C, 0xF3BC8864, 0xF41BAC37, 0x49A36134, 0x0999F437},
31486 {0xF0423E49, 0xE6F18E8C, 0x17636BD9, 0xDE0DAC8D, 0x1413D206} } ,
31487 { {0xD0B7EFE0, 0x88100BF7, 0xD902305B, 0xB67B17B9, 0x13E8103A},
31488 {0x5F461C43, 0x0BC88E1A, 0xF9D28A02, 0x10C4F71F, 0x0E8796FE} } } ,
31489 { { {0x035F2CC2, 0xE484FB31, 0x91386317, 0x72C04CF1, 0x0B16D02C},
31490 {0xC3ACA042, 0xEF3C5A26, 0x0B868C1D, 0x4D98D90D, 0x00CE3B61} } ,
31491 { {0x0C5B81CE, 0x6B6A79AF, 0x7D47783F, 0x9331CCD1, 0x1F9EEDEB},
31492 {0x04BD5AA4, 0x8376CE1C, 0xCFD836F9, 0xBE39535B, 0x12787A58} } } ,
31493 { { {0x5E43B161, 0x40484F62, 0xDB64E8FA, 0x8241CEE1, 0x1CBD268B},
31494 {0x65AED0DC, 0x762DF736, 0x08E57A6F, 0xE37BB248, 0x0FCA5854} } ,
31495 { {0x0425EDCD, 0x427E2C09, 0xCDC8DC56, 0x9857763A, 0x18B7520F},
31496 {0x6EDA7486, 0xA738A94D, 0xD3F9B989, 0xC7BA46EF, 0x1C61F6B7} } } } ;
31497 static const bigint_t var_b = {0x1C7F6B90, 0x7F4EFAA9, 0x8A3333E4, 0xD866600C, 0xA67DB871};
31498 static const fp12_t var_expected = { { { {0xD0924BC6, 0x8345305E, 0x65CCF40E, 0xD7F14584, 0x07D0897A},
31499 {0x0888C691, 0x8D3322D3, 0x21A3FB65, 0x984B82E7, 0x1B20091D} } ,
31500 { {0x0CEEB64C, 0x982FFB44, 0x769AF0D0, 0xB9D0B736, 0x10C078C4},
31501 {0xCA20F434, 0x6EF693C4, 0x79617ECA, 0xF1EA370B, 0x13DC3A25} } } ,
31502 { { {0x7CE85F06, 0xACF5CC4D, 0x09358ABB, 0xEA70DBE4, 0x044F7A45},
31503 {0x374E4173, 0x6510D99C, 0x76C88E10, 0xF4267128, 0x1ECC480C} } ,
31504 { {0x063624A0, 0xA0469C49, 0xD52430D0, 0xB7DCB187, 0x13C73BE2},
31505 {0xD99DBA60, 0xDF01AE25, 0xE720A3D3, 0x742C1384, 0x1726E44D} } } ,
31506 { { {0xB89BB89A, 0x0F37CE1A, 0x3D700ACF, 0x2E339A0F, 0x03B72808},
31507 {0x49AB9B31, 0xA8E7F7E4, 0xC00073A4, 0xA42600A2, 0x0F40B483} } ,
31508 { {0x8F471C77, 0x91F39BA3, 0x018D96DE, 0xCEAF02DC, 0x1B632A42},
31509 {0x5FD31B90, 0x09532A34, 0xE084420A, 0x3F5597EB, 0x0C68F8A7} } } } ;
31511 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3581 a000");
31512 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3582 a001");
31513 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3583 a010");
31514 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3584 a011");
31515 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3585 a100");
31516 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3586 a101");
31517 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3587 a110");
31518 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3588 a111");
31519 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3589 a200");
31520 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3590 a201");
31521 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3591 a210");
31522 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3592 a211");
31525 static const fp12_t var_a = { { { {0xA286142C, 0xE3EB7A11, 0x8F1BD32B, 0x23B4CC25, 0x16C72020},
31526 {0x76EA4AC1, 0x7F41F933, 0x21DFCE02, 0x993CE585, 0x1DF472A7} } ,
31527 { {0x92B3D137, 0x74718817, 0x1C806F57, 0x1ED4C902, 0x1B048922},
31528 {0x5F6A4C35, 0x9D3A3075, 0x5685D22A, 0x8EED1A2B, 0x1C3CDEEE} } } ,
31529 { { {0x765263B3, 0x766FFC3E, 0x0F09ECCB, 0xAA602C2B, 0x0EFA8017},
31530 {0x66D91035, 0xA841BEC0, 0x4B0B7B61, 0xB1A5ECE0, 0x0AAAF3F0} } ,
31531 { {0xE5892B74, 0xFCC048FE, 0x68014313, 0x28872973, 0x21332903},
31532 {0x4B9B2E37, 0x4F848738, 0x035E3319, 0x8A9C36ED, 0x017A51D8} } } ,
31533 { { {0x969D85E4, 0x2A06388D, 0xBB7AC3BA, 0x00E81ADD, 0x22E0F2B9},
31534 {0x7AEBFE0C, 0xC221604B, 0xFB680BC1, 0x2421E1F2, 0x0F17A742} } ,
31535 { {0x2DF17805, 0x74DEC103, 0x8FDD30FE, 0x5BACF5FD, 0x039DDB27},
31536 {0x1602AFE9, 0x24E66913, 0x9394E27F, 0x2AE65CD3, 0x1CF34B7B} } } } ;
31537 static const bigint_t var_b = {0x0A902E61, 0xA2F64090, 0x3920C89E, 0x5FD6C607, 0x6050463D};
31538 static const fp12_t var_expected = { { { {0xA6D03FD9, 0xE81B84C7, 0x4F46252E, 0x14519CC7, 0x13CD5D12},
31539 {0x87A206FC, 0x80BA18FA, 0xC9B3210C, 0x9F2943A9, 0x11DE043E} } ,
31540 { {0x27F482E8, 0x29B10EDB, 0x579E33AC, 0x46BC6248, 0x08859E22},
31541 {0x3EE35E9C, 0x2A40902D, 0x97741980, 0xD809F8E0, 0x1A8FCB99} } } ,
31542 { { {0x0FDC510C, 0x28522C72, 0x6FA31315, 0x1F985D8B, 0x129BDB43},
31543 {0x1DAA9A92, 0xB1340341, 0xECEC1857, 0x719CEAA1, 0x18D5966F} } ,
31544 { {0x4735A510, 0xD6DD256C, 0xA5C6B81D, 0xA8BBAA7B, 0x04293EB6},
31545 {0x47B426E6, 0xDB7214CA, 0x5A38AE4F, 0x89041DA7, 0x06759E91} } } ,
31546 { { {0xB5B3634D, 0x60FAF8C8, 0x06718C0C, 0x533847B3, 0x1B9F7552},
31547 {0x7DACC5AD, 0x9524C680, 0xE6D76B68, 0x61D14BC8, 0x14F5F762} } ,
31548 { {0xA79EAF18, 0xEC6738D0, 0x60BB9373, 0xD49D22E8, 0x0CA5F0AE},
31549 {0xEEBF18EF, 0xCCE5BF00, 0x51D4A5B2, 0x0B3745E2, 0x04DE3C70} } } } ;
31551 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3593 a000");
31552 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3594 a001");
31553 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3595 a010");
31554 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3596 a011");
31555 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3597 a100");
31556 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3598 a101");
31557 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3599 a110");
31558 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3600 a111");
31559 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3601 a200");
31560 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3602 a201");
31561 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3603 a210");
31562 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3604 a211");
31565 static const fp12_t var_a = { { { {0xEC5F8A93, 0x502BB005, 0x8EB1E371, 0x73A90CDE, 0x18CFACBF},
31566 {0xDE01992F, 0xF56F1059, 0x3E5D0FCA, 0x93EF69F7, 0x0A109FBD} } ,
31567 { {0x78E5897E, 0x97B79EBB, 0xE32BDAC1, 0x2AC3F871, 0x1614A79E},
31568 {0x922B7F54, 0x80565FD3, 0xC5E38768, 0x9DE69E27, 0x1F60C83F} } } ,
31569 { { {0xA2B8A312, 0x51C90843, 0x36CAE367, 0x7941B0DB, 0x09FAB80B},
31570 {0xA4961BDC, 0x0D317553, 0x7EEE0412, 0x8A98B3E5, 0x1F86D553} } ,
31571 { {0x41657791, 0xEB8F2441, 0xC3F3ADD0, 0x6C31E847, 0x1DDA7CBB},
31572 {0x0ED938B1, 0x4D03E5FD, 0xD4F3DC8A, 0x3E0E63C2, 0x05ECD060} } } ,
31573 { { {0xBCD3E6F5, 0x4E019EC3, 0x488A09C2, 0x5869194C, 0x1292FC69},
31574 {0x1613BD0F, 0x09AED46B, 0xA1CA98C0, 0x7066900C, 0x1A73212F} } ,
31575 { {0x95026D10, 0xF4EA46B8, 0x62BBB184, 0x376C7512, 0x10F5BC06},
31576 {0x0578C184, 0x4A6AEA8B, 0x92F2D2FC, 0xB5863C55, 0x081000AA} } } } ;
31577 static const bigint_t var_b = {0xC9BF7683, 0x1234F641, 0xB168AC68, 0x3ECDBAF8, 0xA5539773};
31578 static const fp12_t var_expected = { { { {0x541C0F9B, 0xB2F1DF9B, 0x892050A3, 0xA7E782AA, 0x19B752BE},
31579 {0x5939AC9D, 0x6DC4EF48, 0xDB64F036, 0xA3C0CE40, 0x13697C16} } ,
31580 { {0x874A7AD2, 0xFFE09318, 0xD7E471B7, 0x809B0F23, 0x17849397},
31581 {0x07D8F32C, 0x53F50A6D, 0x1188719B, 0x76423B46, 0x0570B25B} } } ,
31582 { { {0x24384D53, 0x4D053B4F, 0x8F3E5DD8, 0xE088D875, 0x104D122F},
31583 {0x38E26480, 0xF4C93664, 0x96BD3B89, 0xC05481A2, 0x00E33C9E} } ,
31584 { {0x81E226A4, 0xE8DC1BCB, 0x07B9F3B6, 0x2D56DEEC, 0x1337DC0D},
31585 {0xA758DABB, 0x5AF92A95, 0x795E1BA8, 0xDCE50F96, 0x1AB46599} } } ,
31586 { { {0xF531218C, 0x507B7B02, 0x03D81859, 0x7DA54CE3, 0x198EAE87},
31587 {0x374DC9CE, 0x3F10C231, 0x6C032DFE, 0x91AC2589, 0x007CA637} } ,
31588 { {0xAEEF5F1D, 0x2F569934, 0x5D1AC266, 0x11B40307, 0x1B4CDAC3},
31589 {0x780A6993, 0xF929346D, 0xEF54350F, 0xC7CB960A, 0x1C39B5CB} } } } ;
31591 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3605 a000");
31592 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3606 a001");
31593 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3607 a010");
31594 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3608 a011");
31595 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3609 a100");
31596 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3610 a101");
31597 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3611 a110");
31598 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3612 a111");
31599 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3613 a200");
31600 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3614 a201");
31601 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3615 a210");
31602 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3616 a211");
31605 static const fp12_t var_a = { { { {0x71BB5711, 0x722BC12D, 0x8A5CF9BB, 0xE6AAE881, 0x2350063B},
31606 {0x2F08EFCD, 0x27C5E9B9, 0x7D9833B6, 0x11F56A6A, 0x0810E42E} } ,
31607 { {0x53C37135, 0xFAB52BD5, 0xB2C59561, 0xF604C136, 0x16E4B890},
31608 {0x2E3A503D, 0x7501932E, 0xCB217673, 0xF0994CFF, 0x0AF0D617} } } ,
31609 { { {0x54C5AADB, 0x0972DBE5, 0x9A615E81, 0x5E12D0F0, 0x21B5EB0D},
31610 {0x52384FEE, 0x8E997659, 0xE6248443, 0x44779442, 0x02529C4F} } ,
31611 { {0x1137F704, 0x3C30B069, 0x17C1C91A, 0xF60D4E97, 0x0F5F68D5},
31612 {0x8A30B7AF, 0x02280202, 0x8CBFAD7E, 0xD5E49808, 0x1BD12D11} } } ,
31613 { { {0x7872DBE5, 0xCF05BE3C, 0xDD52DAB2, 0xC9A6E866, 0x0E704365},
31614 {0x4AADAF50, 0x009A7245, 0x2341A5F8, 0x96CE1A0A, 0x18660215} } ,
31615 { {0xEA940621, 0xE4A5A245, 0x7AD0C178, 0x44061B3C, 0x0E4A3B45},
31616 {0x7A58EC3A, 0x5595B115, 0xAF4F37B7, 0xAB3238EE, 0x20EEEDF7} } } } ;
31617 static const bigint_t var_b = {0x103D790D, 0x8F548F82, 0xB67962D0, 0x8B097C08, 0xCFB2CD6B};
31618 static const fp12_t var_expected = { { { {0x0007EDB4, 0x124A5D15, 0x5F2A0A87, 0xED810E98, 0x05804561},
31619 {0xDCC11685, 0x799F2530, 0xE08BE305, 0x63AD835D, 0x1DD15DD2} } ,
31620 { {0xA99BC662, 0x0C651354, 0x7E0CB64A, 0xECD02B88, 0x1B83393F},
31621 {0x427010CC, 0x98396888, 0xF1B898A2, 0x373C39EE, 0x0CEC0226} } } ,
31622 { { {0x21C66FDA, 0x71DE3DFE, 0xC7FFFD08, 0x93184CC0, 0x0769430C},
31623 {0xCF0AB3C8, 0x83E157E5, 0x1DA324F6, 0x548BBDD9, 0x0F69BA50} } ,
31624 { {0x4AF10A27, 0xE8DB96BB, 0x92A177DB, 0xB9EA673C, 0x0F04B12C},
31625 {0xA11F86F0, 0x2D220D5C, 0x55962C7F, 0xEE0F2D40, 0x1254C432} } } ,
31626 { { {0x1CC07333, 0xB008DA4E, 0x5CE04647, 0x0244B81B, 0x0280C194},
31627 {0x8AB4FFE0, 0xDED153F4, 0x65185927, 0x245C9ACD, 0x17CB33B2} } ,
31628 { {0xF0747A08, 0x53A4BE21, 0xDDF77063, 0xA4D1412E, 0x21C04A51},
31629 {0xADFB58D8, 0x9C24E62D, 0x63116DB4, 0x1C27E817, 0x1E3118BF} } } } ;
31631 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3617 a000");
31632 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3618 a001");
31633 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3619 a010");
31634 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3620 a011");
31635 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3621 a100");
31636 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3622 a101");
31637 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3623 a110");
31638 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3624 a111");
31639 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3625 a200");
31640 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3626 a201");
31641 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3627 a210");
31642 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3628 a211");
31645 static const fp12_t var_a = { { { {0xF05A8F30, 0x1E3EC5FE, 0x77619526, 0xC03CE976, 0x0A0BBFB5},
31646 {0xC2331D29, 0x88D73CD2, 0xC31D348B, 0x732D46B7, 0x03A5F726} } ,
31647 { {0x4494CB2B, 0xC1939233, 0x065EAD0F, 0xC1CF6C0F, 0x1E0A04F0},
31648 {0x825280C6, 0x0BC722EB, 0xB21DE711, 0xD7CF967E, 0x1E54EC3F} } } ,
31649 { { {0x072351BF, 0xBAEF7A06, 0xBBBC552E, 0xC17C3F3A, 0x108ED3BD},
31650 {0x34D4A3B8, 0x3CD01B8C, 0x08431A78, 0xAA14242B, 0x1D57096A} } ,
31651 { {0xF0C7ED5D, 0xF2FE3F47, 0x5373E928, 0x9982BCE4, 0x1339FF7B},
31652 {0x77A03F3A, 0x28C2FF71, 0x72C47D49, 0x4EB1BEDE, 0x21524326} } } ,
31653 { { {0x79DD7E6A, 0x304C9AD4, 0x57BE6F64, 0xFBE0E3D2, 0x03CB7537},
31654 {0x7682C46A, 0xE58C23C5, 0x7E1B3D54, 0xA5DADC7A, 0x0018962C} } ,
31655 { {0x250B0756, 0x84CC503E, 0x7D2AF26B, 0x0A729A74, 0x20050241},
31656 {0x0ECB421D, 0x3268D84C, 0x201D8B25, 0x17353438, 0x160FF0FF} } } } ;
31657 static const bigint_t var_b = {0x00C59683, 0xD714DD8F, 0x092F4197, 0x3860229D, 0x704D6CA9};
31658 static const fp12_t var_expected = { { { {0x2705ECD8, 0x8714E2A8, 0xABE41F77, 0xFEBE5130, 0x0AE663BE},
31659 {0x6D917D0C, 0x8D898E9E, 0xE27CD42E, 0x295AE87C, 0x06C0D918} } ,
31660 { {0x107A0859, 0x52E0EA19, 0x75E2A799, 0x8CE5F516, 0x1962F9CC},
31661 {0x57976DE2, 0x871017B5, 0x2AF835D3, 0x8057C14E, 0x1DA9ED4C} } } ,
31662 { { {0x054175F1, 0xCB41E2FD, 0x527145A8, 0xC8BC54B5, 0x0530E307},
31663 {0x98334FE0, 0x4C6307A5, 0xED8679C8, 0x916CFC74, 0x09A0E281} } ,
31664 { {0xB0B86D00, 0x6258C367, 0x1D0F0084, 0xBA1A27B1, 0x1C338861},
31665 {0x83C151D1, 0x64353F86, 0x798A4128, 0x2D29D8F5, 0x199431A2} } } ,
31666 { { {0x045EC85F, 0xBF9722CA, 0x80F00C10, 0xD95A1352, 0x131E7AF8},
31667 {0xD42FC6FA, 0x59A406ED, 0xAFBD5DE4, 0x14F8EFCA, 0x048D4EAB} } ,
31668 { {0x40AB96D1, 0x745AC6A8, 0x0BC856A0, 0x198F3664, 0x1766224C},
31669 {0x6880F230, 0x0298D3D8, 0x69CFF658, 0xBB78F19F, 0x1C3E578E} } } } ;
31671 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3629 a000");
31672 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3630 a001");
31673 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3631 a010");
31674 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3632 a011");
31675 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3633 a100");
31676 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3634 a101");
31677 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3635 a110");
31678 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3636 a111");
31679 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3637 a200");
31680 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3638 a201");
31681 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3639 a210");
31682 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3640 a211");
31685 static const fp12_t var_a = { { { {0x7E2B59E1, 0x70664F0D, 0xF2FB59AF, 0xCC3694FF, 0x02B207C0},
31686 {0x8C21D9B9, 0x1F94A823, 0xF749D924, 0xD1D86CDA, 0x139E7C5E} } ,
31687 { {0xA9FC0ECA, 0x2C84BA4E, 0xDC12CE4E, 0x6CC79695, 0x1DE6E7FA},
31688 {0x5D1D0082, 0xB7FA7C0F, 0x5A6C1B4F, 0x5438C658, 0x0F558304} } } ,
31689 { { {0x9C0C53F7, 0x68B8D218, 0x5C7F2B86, 0xE9E4CF97, 0x16291AEF},
31690 {0xD651E7DB, 0x7B105AF7, 0x6823764B, 0xFEF0E5F9, 0x037431D2} } ,
31691 { {0x3AF865D4, 0x7A04D82E, 0x8CFFA62F, 0x2EA8912A, 0x212CC447},
31692 {0xF02CC471, 0x389A480C, 0x14CE8138, 0x0D5D1D0B, 0x01986784} } } ,
31693 { { {0xF39639A3, 0xD5D5142D, 0x611983FD, 0x4B55DFB3, 0x1C33608F},
31694 {0x8C98B5F1, 0x9E1E818F, 0xA724625E, 0xF77F298F, 0x1D06F21D} } ,
31695 { {0x1C2458A9, 0x55AB495D, 0xB8854B17, 0x58C0488C, 0x1F77F332},
31696 {0x8A8758BC, 0x7043082F, 0xD723F33B, 0x7109424F, 0x0021963F} } } } ;
31697 static const bigint_t var_b = {0xC4D8A45D, 0xBD59CBFD, 0x1DFD4059, 0x78BDDA00, 0xD82616A1};
31698 static const fp12_t var_expected = { { { {0xF4152CF6, 0x62A2EB9D, 0xF5082BBD, 0x98BE739B, 0x11526CB5},
31699 {0x565F571B, 0x6DEA2AC0, 0xABB9D987, 0x1F90BBEE, 0x193EA985} } ,
31700 { {0xD8022FDA, 0x210C94FE, 0x0FBE3C71, 0xBB73F59F, 0x10969036},
31701 {0x17D77EF1, 0x7F0F41CB, 0xD634FB04, 0x3EF64044, 0x01102CB8} } } ,
31702 { { {0xD2905EC6, 0x07C73145, 0x2AA58281, 0x2FDE70B0, 0x1C2899D4},
31703 {0xA970F5CE, 0x27EDBA0C, 0x5B7515B6, 0x31706416, 0x17A2C2F0} } ,
31704 { {0x5E22738F, 0x826030F1, 0x5C70CD5E, 0xA8BD9A01, 0x1C102DF5},
31705 {0x516D46A1, 0xC3F6C26A, 0x43FD8649, 0xEDF9413E, 0x05751ECB} } } ,
31706 { { {0xC56294DA, 0x4BCA1151, 0xF037AA79, 0x94024AC6, 0x102B2872},
31707 {0x89041245, 0xA8CE1B48, 0xFA55B18A, 0xA3487B5A, 0x0202CCCB} } ,
31708 { {0x5FFB548B, 0x00079B88, 0xD05E74E0, 0x5EB71280, 0x2397C80E},
31709 {0xC3D216E3, 0xF7028391, 0x5D5F2B29, 0x8B9D4B1E, 0x1780FF1F} } } } ;
31711 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_exp 3641 a000");
31712 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_exp 3642 a001");
31713 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_exp 3643 a010");
31714 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_exp 3644 a011");
31715 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_exp 3645 a100");
31716 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_exp 3646 a101");
31717 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_exp 3647 a110");
31718 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_exp 3648 a111");
31719 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_exp 3649 a200");
31720 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_exp 3650 a201");
31721 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_exp 3651 a210");
31722 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_exp 3652 a211");
31725 static const fp12_t var_a = { { { {0xAA8D432D, 0xC1E2EB97, 0x24D66F04, 0x85CC3007, 0x143435B4},
31726 {0x99CE7230, 0x6026C555, 0x4C5F7AA9, 0x0D54C68F, 0x13111508} } ,
31727 { {0x7A52C877, 0xE5F2D35E, 0x89F73E55, 0x583EC72F, 0x19483962},
31728 {0x05B28940, 0xAF87EE2C, 0x320ED700, 0x67419302, 0x0140759C} } } ,
31729 { { {0xFFF5C689, 0x0E6675E3, 0x08A38D8F, 0x71A22CA5, 0x147BEDD0},
31730 {0x6F8D7BAA, 0xC5047FB0, 0xCAE95176, 0xB7B1C5EB, 0x21749FDB} } ,
31731 { {0x7282B754, 0x159114F9, 0x4D4A6908, 0xDE49F1D6, 0x1D07126F},
31732 {0x2173BD29, 0xC723CA70, 0xF616A12A, 0x358ADD8A, 0x1C61F8E9} } } ,
31733 { { {0xE9DE4587, 0x0CAD438B, 0x64DDD3AA, 0xA1D6125E, 0x065A2856},
31734 {0xEC4266E6, 0x4F100BD1, 0x996BCBDE, 0xC696BB1D, 0x1233A28F} } ,
31735 { {0x293D9A44, 0x63CAC3C9, 0xE23D6195, 0xEB93EC4D, 0x027E588E},
31736 {0xA30B4684, 0xDF1A755C, 0x5EF04BBF, 0x6105311E, 0x0369E93E} } } } ;
31737 static const fp12_t var_expected = { { { {0xA1C30F2E, 0x5C4A6908, 0x14745199, 0x298A2BDF, 0x0FCCEA4F},
31738 {0xB281E02B, 0xBE068F4A, 0xECEB45F4, 0xA2019556, 0x10F00AFB} } ,
31739 { {0xD1FD89E4, 0x383A8141, 0xAF538248, 0x571794B6, 0x0AB8E6A1},
31740 {0x469DC91B, 0x6EA56674, 0x073BE99D, 0x4814C8E4, 0x22C0AA67} } } ,
31741 { { {0x4C5A8BD2, 0x0FC6DEBC, 0x30A7330F, 0x3DB42F41, 0x0F853233},
31742 {0xDCC2D6B1, 0x5928D4EF, 0x6E616F27, 0xF7A495FA, 0x028C8027} } ,
31743 { {0xD9CD9B07, 0x089C3FA6, 0xEC005796, 0xD10C6A0F, 0x06FA0D93},
31744 {0x2ADC9532, 0x57098A30, 0x43341F73, 0x79CB7E5B, 0x079F271A} } } ,
31745 { { {0x62720CD4, 0x11801114, 0xD46CECF4, 0x0D804987, 0x1DA6F7AD},
31746 {0x600DEB75, 0xCF1D48CE, 0x9FDEF4BF, 0xE8BFA0C8, 0x11CD7D73} } ,
31747 { {0x2312B817, 0xBA6290D7, 0x570D5F08, 0xC3C26F98, 0x2182C774},
31748 {0xA9450BD7, 0x3F12DF43, 0xDA5A74DE, 0x4E512AC7, 0x209736C5} } } } ;
31750 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3653 a000");
31751 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3654 a001");
31752 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3655 a010");
31753 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3656 a011");
31754 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3657 a100");
31755 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3658 a101");
31756 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3659 a110");
31757 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3660 a111");
31758 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3661 a200");
31759 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3662 a201");
31760 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3663 a210");
31761 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3664 a211");
31764 static const fp12_t var_a = { { { {0xA520E79E, 0x35C5ABD9, 0x6940348C, 0x23A70AA6, 0x1BAE626D},
31765 {0x16B65E5A, 0x8985ABE4, 0xBD3AC37F, 0x0C9E9474, 0x1C9DC717} } ,
31766 { {0x318D6443, 0x66357068, 0xE2D8FA92, 0x4DC987A2, 0x1073BC69},
31767 {0x989C6663, 0x5823A52B, 0x03C65A6A, 0x628191D1, 0x0BF38FA5} } } ,
31768 { { {0xDF8D17C2, 0x2D16248F, 0x79EF46F4, 0x326A5470, 0x08952442},
31769 {0x10FD1D99, 0xC12925F1, 0xFCF5926E, 0x25DFCB69, 0x199B8DDC} } ,
31770 { {0xC2EB9A95, 0xFD9F2461, 0xDC831253, 0xBE0C9E12, 0x030A01B1},
31771 {0xEC93CB20, 0xA249DAFE, 0x40DB5A79, 0xA0A8D686, 0x15CD650E} } } ,
31772 { { {0xC7A4D5E0, 0xBE1A8FD6, 0xBFEDDE71, 0x636C0655, 0x116D1254},
31773 {0x0C9AB293, 0xB6401A58, 0x78A17DFD, 0xDBFB4EE2, 0x0472252E} } ,
31774 { {0x9D0DB971, 0x18A4826F, 0x779D2160, 0x6FD15394, 0x14293AC6},
31775 {0xC703A25F, 0xD7F09494, 0x44D81388, 0xA1CFF5E5, 0x144DB9BC} } } } ;
31776 static const fp12_t var_expected = { { { {0xA72F6ABD, 0xE867A8C6, 0xD00A8C11, 0x8BAF513F, 0x0852BD96},
31777 {0x3599F401, 0x94A7A8BC, 0x7C0FFD1E, 0xA2B7C771, 0x076358EC} } ,
31778 { {0x1AC2EE18, 0xB7F7E438, 0x5671C60B, 0x618CD443, 0x138D639A},
31779 {0xB3B3EBF8, 0xC609AF74, 0x35846633, 0x4CD4CA15, 0x180D905E} } } ,
31780 { { {0x6CC33A99, 0xF1173010, 0xBF5B79A9, 0x7CEC0775, 0x1B6BFBC1},
31781 {0x3B5334C2, 0x5D042EAF, 0x3C552E2F, 0x8976907C, 0x0A659227} } ,
31782 { {0x8964B7C6, 0x208E303E, 0x5CC7AE4A, 0xF149BDD3, 0x20F71E51},
31783 {0x5FBC873B, 0x7BE379A1, 0xF86F6624, 0x0EAD855F, 0x0E33BAF5} } } ,
31784 { { {0x84AB7C7B, 0x6012C4C9, 0x795CE22C, 0x4BEA5590, 0x12940DAF},
31785 {0x3FB59FC8, 0x67ED3A48, 0xC0A942A0, 0xD35B0D03, 0x1F8EFAD4} } ,
31786 { {0xAF4298EA, 0x0588D230, 0xC1AD9F3E, 0x3F850851, 0x0FD7E53D},
31787 {0x854CAFFC, 0x463CC00B, 0xF472AD15, 0x0D866600, 0x0FB36647} } } } ;
31789 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3665 a000");
31790 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3666 a001");
31791 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3667 a010");
31792 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3668 a011");
31793 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3669 a100");
31794 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3670 a101");
31795 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3671 a110");
31796 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3672 a111");
31797 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3673 a200");
31798 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3674 a201");
31799 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3675 a210");
31800 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3676 a211");
31803 static const fp12_t var_a = { { { {0x9A4F3255, 0x3236E76D, 0x67A01259, 0x22DAACD5, 0x0D36D75D},
31804 {0xCD1536FA, 0xDC54FCD5, 0x9FCA1FAD, 0x945B53DC, 0x0403B3A1} } ,
31805 { {0x9C05689A, 0x92B46022, 0x98283B80, 0xF2E2011A, 0x22FC0C09},
31806 {0xF36001A2, 0xCBEB1277, 0x1B6DBD47, 0x6383BB48, 0x1C023592} } } ,
31807 { { {0x962C7A2D, 0xBB05C8B3, 0x80E0EE17, 0xDEDAA248, 0x0D3512B6},
31808 {0x1AC1B533, 0x6983C99B, 0x09FFE91D, 0x54F0FA47, 0x06EC5A55} } ,
31809 { {0xDBDE8CD3, 0x5837F513, 0xC6C0809B, 0x92E221CC, 0x11AD7DF1},
31810 {0x7CD44DAB, 0x3A84D71A, 0x0264AF67, 0xCFD69936, 0x0E4EA6D6} } } ,
31811 { { {0x2D83F5CC, 0xC7D720F7, 0xCBDF2604, 0x1A1FF07C, 0x16755DF1},
31812 {0x9AA212D9, 0xC71BD552, 0x3F54C8B7, 0xDAF0AB20, 0x2245FB98} } ,
31813 { {0xAACA86FD, 0x806EADD8, 0xC7BE2B68, 0x1E8BC0EB, 0x1750C12C},
31814 {0xC4F3DABB, 0x0056D207, 0x22FBEA34, 0x37FA9096, 0x2095BFFE} } } } ;
31815 static const fp12_t var_expected = { { { {0xB2012006, 0xEBF66D32, 0xD1AAAE44, 0x8C7BAF10, 0x16CA48A6},
31816 {0x7F3B1B61, 0x41D857CA, 0x9980A0F0, 0x1AFB0809, 0x1FFD6C62} } ,
31817 { {0xB04AE9C1, 0x8B78F47D, 0xA122851D, 0xBC745ACB, 0x010513F9},
31818 {0x58F050B9, 0x52424228, 0x1DDD0356, 0x4BD2A09E, 0x07FEEA71} } } ,
31819 { { {0xB623D82E, 0x63278BEC, 0xB869D286, 0xD07BB99D, 0x16CC0D4C},
31820 {0x318E9D28, 0xB4A98B05, 0x2F4AD780, 0x5A65619F, 0x1D14C5AE} } ,
31821 { {0x7071C588, 0xC5F55F8C, 0x728A4002, 0x1C743A19, 0x1253A212},
31822 {0xCF7C04B0, 0xE3A87D85, 0x36E61136, 0xDF7FC2B0, 0x15B2792C} } } ,
31823 { { {0x1ECC5C8F, 0x565633A9, 0x6D6B9A99, 0x95366B69, 0x0D8BC212},
31824 {0xB1AE3F82, 0x57117F4D, 0xF9F5F7E6, 0xD465B0C5, 0x01BB246A} } ,
31825 { {0xA185CB5E, 0x9DBEA6C7, 0x718C9535, 0x90CA9AFA, 0x0CB05ED7},
31826 {0x875C77A0, 0x1DD68298, 0x164ED66A, 0x775BCB50, 0x036B6005} } } } ;
31828 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3677 a000");
31829 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3678 a001");
31830 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3679 a010");
31831 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3680 a011");
31832 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3681 a100");
31833 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3682 a101");
31834 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3683 a110");
31835 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3684 a111");
31836 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3685 a200");
31837 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3686 a201");
31838 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3687 a210");
31839 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3688 a211");
31842 static const fp12_t var_a = { { { {0x7CECE79C, 0x1CFE3AD5, 0x2DB002AF, 0x99375AAC, 0x0FEF63FF},
31843 {0x8754AEEF, 0xA32673FD, 0x3A12CB66, 0x598DAB95, 0x1EBB5822} } ,
31844 { {0xA8216B15, 0x2040D91C, 0x5C53A6C5, 0xDF771AE0, 0x1E214DFE},
31845 {0x481ADFED, 0x7C17EA35, 0x1885E66A, 0x1C9D978F, 0x1BE12445} } } ,
31846 { { {0xA7826C55, 0x535CEEB0, 0xB079703C, 0xC4478860, 0x07F7D04D},
31847 {0x35A0ABE8, 0x30957DDE, 0x7C2D7BCE, 0x4EB56BE0, 0x1C33DE80} } ,
31848 { {0x6DA6DD1F, 0x69201A83, 0x3E78A722, 0x9B86F2BF, 0x1EF89963},
31849 {0x98277C47, 0x05B34121, 0xBF722068, 0xBEFF965F, 0x1789A2DB} } } ,
31850 { { {0xCF729212, 0xA9C2F922, 0xB9CD6450, 0x2B616B05, 0x129C2CE9},
31851 {0xE7A66847, 0x4D63CE3E, 0xCBC7A509, 0x7FABC3FC, 0x1AAE83C5} } ,
31852 { {0x7293050E, 0x18EA7C64, 0x98A1182B, 0xBA1B9996, 0x1F81811F},
31853 {0x6AA9CA8E, 0x8B272172, 0x8EEDD764, 0x87A95B24, 0x1426F759} } } } ;
31854 static const fp12_t var_expected = { { { {0xCF636ABF, 0x012F19CA, 0x0B9ABDEF, 0x161F013A, 0x1411BC04},
31855 {0xC4FBA36C, 0x7B06E0A2, 0xFF37F537, 0x55C8B050, 0x0545C7E1} } ,
31856 { {0xA42EE746, 0xFDEC7B83, 0xDCF719D8, 0xCFDF4105, 0x05DFD204},
31857 {0x0435726E, 0xA2156A6B, 0x20C4DA33, 0x92B8C457, 0x081FFBBE} } } ,
31858 { { {0xA4CDE606, 0xCAD065EF, 0x88D15061, 0xEB0ED385, 0x1C094FB5},
31859 {0x16AFA673, 0xED97D6C2, 0xBD1D44CF, 0x60A0F005, 0x07CD4183} } ,
31860 { {0xDEA9753C, 0xB50D3A1C, 0xFAD2197B, 0x13CF6926, 0x050886A0},
31861 {0xB428D614, 0x187A137E, 0x79D8A036, 0xF056C586, 0x0C777D27} } } ,
31862 { { {0x7CDDC049, 0x746A5B7D, 0x7F7D5C4D, 0x83F4F0E0, 0x1164F31A},
31863 {0x64A9EA14, 0xD0C98661, 0x6D831B94, 0x2FAA97E9, 0x09529C3E} } ,
31864 { {0xD9BD4D4D, 0x0542D83B, 0xA0A9A873, 0xF53AC24F, 0x047F9EE3},
31865 {0xE1A687CD, 0x9306332D, 0xAA5CE939, 0x27AD00C1, 0x0FDA28AA} } } } ;
31867 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3689 a000");
31868 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3690 a001");
31869 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3691 a010");
31870 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3692 a011");
31871 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3693 a100");
31872 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3694 a101");
31873 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3695 a110");
31874 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3696 a111");
31875 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3697 a200");
31876 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3698 a201");
31877 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3699 a210");
31878 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3700 a211");
31881 static const fp12_t var_a = { { { {0x2CA35B23, 0x7B42F2AD, 0x3ECEDF0D, 0xD48A3B94, 0x0201F36D},
31882 {0xB9AC8A9B, 0x78F9E585, 0x4259F80D, 0x7C739CF5, 0x1F72EC6F} } ,
31883 { {0x35021FBF, 0x11AEEEFC, 0x84111EAE, 0xCA5CD0D9, 0x1A9250EC},
31884 {0x71105A95, 0xD183805E, 0x28E7EB28, 0x50E9CC32, 0x23E608CE} } } ,
31885 { { {0x8307A0A1, 0xFE994C01, 0xEF0443E4, 0x02611C69, 0x218FE696},
31886 {0x21A4A90D, 0xB9C8BCCF, 0x5B084DEB, 0x58A56748, 0x03EECBC4} } ,
31887 { {0xD546CAE8, 0xC8B43AD6, 0xE4D7E493, 0xE4FF3703, 0x09A37666},
31888 {0xBA4F84FE, 0xBBD881A2, 0xDF8958DB, 0xD28F2496, 0x23AB6F96} } } ,
31889 { { {0xEC1E19A5, 0x73711CD0, 0x9A6132E8, 0xD17C1FF9, 0x053E209D},
31890 {0x6A3DDA21, 0xE8264F82, 0x109128FF, 0x83A2EC5D, 0x191AE4DB} } ,
31891 { {0x9ADF4741, 0xE0063F80, 0x523541C0, 0x95DA95D4, 0x18649805},
31892 {0xE3477156, 0x3D35BC4E, 0x599A5DAB, 0xF91D5BD0, 0x08E69E79} } } } ;
31893 static const fp12_t var_expected = { { { {0x1FACF738, 0xA2EA61F3, 0xFA7BE190, 0xDACC2051, 0x21FF2C95},
31894 {0x92A3C7C0, 0xA5336F1A, 0xF6F0C890, 0x32E2BEF0, 0x048E3394} } ,
31895 { {0x174E329C, 0x0C7E65A4, 0xB539A1F0, 0xE4F98B0C, 0x096ECF16},
31896 {0xDB3FF7C6, 0x4CA9D441, 0x1062D575, 0x5E6C8FB4, 0x001B1735} } } ,
31897 { { {0xC948B1BA, 0x1F94089E, 0x4A467CB9, 0xACF53F7C, 0x0271396D},
31898 {0x2AABA94E, 0x646497D1, 0xDE4272B2, 0x56B0F49D, 0x2012543F} } ,
31899 { {0x77098773, 0x557919C9, 0x5472DC0A, 0xCA5724E2, 0x1A5DA99C},
31900 {0x9200CD5D, 0x6254D2FD, 0x59C167C2, 0xDCC7374F, 0x0055B06C} } } ,
31901 { { {0x603238B6, 0xAABC37CF, 0x9EE98DB5, 0xDDDA3BEC, 0x1EC2FF65},
31902 {0xE212783A, 0x3607051D, 0x28B9979E, 0x2BB36F89, 0x0AE63B28} } ,
31903 { {0xB1710B1A, 0x3E27151F, 0xE7157EDD, 0x197BC611, 0x0B9C87FE},
31904 {0x6908E105, 0xE0F79851, 0xDFB062F2, 0xB6390015, 0x1B1A8189} } } } ;
31906 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3701 a000");
31907 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3702 a001");
31908 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3703 a010");
31909 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3704 a011");
31910 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3705 a100");
31911 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3706 a101");
31912 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3707 a110");
31913 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3708 a111");
31914 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3709 a200");
31915 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3710 a201");
31916 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3711 a210");
31917 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3712 a211");
31920 static const fp12_t var_a = { { { {0x542D9BA2, 0x123BFB2D, 0xF18C806B, 0x06F1F5A1, 0x1343194D},
31921 {0x63677C50, 0x55A41D81, 0xB5CB9C98, 0x0018A4B4, 0x1F1C3715} } ,
31922 { {0x07919432, 0xC1E68C13, 0x28AE0E53, 0x6A6810BF, 0x059EE9F8},
31923 {0xD1F68199, 0x28D8A87A, 0x3FE3DD65, 0x51F6D12A, 0x234D43A7} } } ,
31924 { { {0xABA25EEC, 0x45F6665F, 0x2813A018, 0xB71AB8B0, 0x040397B2},
31925 {0x45BB285D, 0x94F20295, 0xBB7A594A, 0x112D41B5, 0x07475147} } ,
31926 { {0xB955FED5, 0x697AF546, 0x1A353C4B, 0x1B2C0939, 0x0E642921},
31927 {0x7A9CCF94, 0x2469BD00, 0x77BFA227, 0xF0C5FCBC, 0x174A2C42} } } ,
31928 { { {0x91950130, 0x80A1EB8D, 0xAFFD9582, 0x7638C3D0, 0x017E8034},
31929 {0x6233DFC7, 0x3B472723, 0x2CDA2B42, 0x6D4E7451, 0x190C6074} } ,
31930 { {0xEC868FF7, 0x080F5975, 0x74BC8675, 0x2494AFA2, 0x05F29B69},
31931 {0xAC27D74B, 0x03B2EDC1, 0xB1220678, 0x3CF97B01, 0x1B0BC370} } } } ;
31932 static const fp12_t var_expected = { { { {0xF822B6B9, 0x0BF15972, 0x47BE4033, 0xA8646644, 0x10BE06B6},
31933 {0xE8E8D60B, 0xC889371E, 0x837F2405, 0xAF3DB731, 0x04E4E8EE} } ,
31934 { {0x44BEBE29, 0x5C46C88D, 0x109CB24A, 0x44EE4B27, 0x1E62360B},
31935 {0x7A59D0C2, 0xF554AC25, 0xF966E338, 0x5D5F8ABB, 0x00B3DC5C} } } ,
31936 { { {0xA0ADF36F, 0xD836EE40, 0x11372085, 0xF83BA336, 0x1FFD8850},
31937 {0x069529FE, 0x893B520B, 0x7DD06753, 0x9E291A30, 0x1CB9CEBC} } ,
31938 { {0x92FA5386, 0xB4B25F59, 0x1F158452, 0x942A52AD, 0x159CF6E2},
31939 {0xD1B382C7, 0xF9C3979F, 0xC18B1E76, 0xBE905F29, 0x0CB6F3C0} } } ,
31940 { { {0xBABB512B, 0x9D8B6912, 0x894D2B1B, 0x391D9815, 0x22829FCF},
31941 {0xEA1C7294, 0xE2E62D7C, 0x0C70955B, 0x4207E795, 0x0AF4BF8F} } ,
31942 { {0x5FC9C264, 0x161DFB2A, 0xC48E3A29, 0x8AC1AC43, 0x1E0E849A},
31943 {0xA0287B10, 0x1A7A66DE, 0x8828BA26, 0x725CE0E4, 0x08F55C93} } } } ;
31945 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3713 a000");
31946 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3714 a001");
31947 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3715 a010");
31948 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3716 a011");
31949 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3717 a100");
31950 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3718 a101");
31951 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3719 a110");
31952 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3720 a111");
31953 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3721 a200");
31954 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3722 a201");
31955 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3723 a210");
31956 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3724 a211");
31959 static const fp12_t var_a = { { { {0xD459277D, 0xC67B6F24, 0xB7EFF6D8, 0xB08DAC0F, 0x15403AD2},
31960 {0x3F72AF0C, 0x02F229E9, 0xBE1D4E92, 0xAB13BE61, 0x1A3C1D04} } ,
31961 { {0x390F542F, 0x5DF44488, 0x321259BA, 0x62CF1B4D, 0x1058F46A},
31962 {0x30A46BCA, 0x17925ADB, 0x9048457A, 0xF7B63CB6, 0x16D01DD5} } } ,
31963 { { {0x020C843A, 0x52F4C3E9, 0x78FFF1BB, 0x340FDCC0, 0x1875CDC4},
31964 {0xCA65B063, 0xB438B2D9, 0x48D54BB0, 0x4F327F47, 0x1CA68DC6} } ,
31965 { {0x70886A08, 0x1741C19E, 0x6A668BB7, 0x1FA7E7E2, 0x16E6EA0B},
31966 {0x8D5A4F1E, 0xABDAE9B6, 0xD2C44F5F, 0xF09559D5, 0x10846FFD} } } ,
31967 { { {0x16ACA831, 0x8212F726, 0x24AB86B8, 0xB0D9D701, 0x1EDC7AC2},
31968 {0xA9E19D3A, 0x677428C7, 0xE5BB5B45, 0x0E9A3769, 0x05822D6A} } ,
31969 { {0xC79C9FE3, 0xD895C0BD, 0x4CCDBFF8, 0x60204A0D, 0x02DF19CA},
31970 {0x46ECA5F4, 0x52AC3CF7, 0xA2267117, 0xE143E772, 0x1596687F} } } } ;
31971 static const fp12_t var_expected = { { { {0x77F72ADE, 0x57B1E57B, 0x815AC9C5, 0xFEC8AFD6, 0x0EC0E530},
31972 {0x0CDDA34F, 0x1B3B2AB7, 0x7B2D720C, 0x04429D84, 0x09C502FF} } ,
31973 { {0x1340FE2C, 0xC0391018, 0x073866E3, 0x4C874099, 0x13A82B99},
31974 {0x1BABE691, 0x069AF9C5, 0xA9027B24, 0xB7A01F2F, 0x0D31022D} } } ,
31975 { { {0x4A43CE21, 0xCB3890B7, 0xC04ACEE2, 0x7B467F25, 0x0B8B523F},
31976 {0x81EAA1F8, 0x69F4A1C6, 0xF07574ED, 0x6023DC9E, 0x075A923D} } ,
31977 { {0xDBC7E853, 0x06EB9301, 0xCEE434E7, 0x8FAE7403, 0x0D1A35F8},
31978 {0xBEF6033D, 0x72526AE9, 0x6686713E, 0xBEC10210, 0x137CB005} } } ,
31979 { { {0x35A3AA2A, 0x9C1A5D7A, 0x149F39E5, 0xFE7C84E5, 0x0524A540},
31980 {0xA26EB521, 0xB6B92BD8, 0x538F6558, 0xA0BC247C, 0x1E7EF299} } ,
31981 { {0x84B3B278, 0x459793E2, 0xEC7D00A5, 0x4F3611D8, 0x21220639},
31982 {0x0563AC67, 0xCB8117A9, 0x97244F86, 0xCE127473, 0x0E6AB783} } } } ;
31984 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3725 a000");
31985 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3726 a001");
31986 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3727 a010");
31987 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3728 a011");
31988 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3729 a100");
31989 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3730 a101");
31990 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3731 a110");
31991 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3732 a111");
31992 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3733 a200");
31993 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3734 a201");
31994 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3735 a210");
31995 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3736 a211");
31998 static const fp12_t var_a = { { { {0xC6BD32C0, 0x182E6F2B, 0xF868E0C7, 0x6EB55082, 0x051D4BCD},
31999 {0x3C7D7118, 0x4CDECF6E, 0x648574BC, 0xFAC54F29, 0x04200367} } ,
32000 { {0xE818F575, 0x17827EB2, 0xE142570B, 0xDFC779A0, 0x1F1C8E80},
32001 {0xB61BD731, 0xAB9D1046, 0x4069EEC4, 0x30228051, 0x0E5CD8CB} } } ,
32002 { { {0x510D4E2C, 0x0BD1EB04, 0x5678B8AC, 0x908CDE21, 0x0FB1B1E9},
32003 {0xB3E66887, 0xBC198B93, 0x54F45EFE, 0xDD2866CC, 0x1DC655A3} } ,
32004 { {0x934F970D, 0xE2695042, 0xF714BC30, 0x75E09B2F, 0x1798FE47},
32005 {0xFD415F66, 0xD50C7DA8, 0xF75F94FC, 0xE7A87EAC, 0x16DAD9EE} } } ,
32006 { { {0x63E6365C, 0xCCD81193, 0x6D6E748D, 0x589DFF85, 0x233EB08F},
32007 {0x18496083, 0x740536DF, 0x66BB1FA6, 0x98442CC7, 0x088C0BAB} } ,
32008 { {0x245533BB, 0x10622748, 0x58303ACB, 0x0D143135, 0x08C8F6F9},
32009 {0xDDF00342, 0x622FAABD, 0x599E99BA, 0x7E5152E2, 0x1B7C5923} } } } ;
32010 static const fp12_t var_expected = { { { {0x85931F9B, 0x05FEE574, 0x40E1DFD7, 0x40A10B63, 0x1EE3D436},
32011 {0x0FD2E143, 0xD14E8532, 0xD4C54BE1, 0xB4910CBC, 0x1FE11C9B} } ,
32012 { {0x64375CE6, 0x06AAD5ED, 0x58086993, 0xCF8EE245, 0x04E49182},
32013 {0x96347B2A, 0x72904459, 0xF8E0D1D9, 0x7F33DB94, 0x15A44738} } } ,
32014 { { {0xFB43042F, 0x125B699B, 0xE2D207F2, 0x1EC97DC4, 0x144F6E1A},
32015 {0x9869E9D4, 0x6213C90C, 0xE456619F, 0xD22DF519, 0x063ACA5F} } ,
32016 { {0xB900BB4E, 0x3BC4045D, 0x4236046D, 0x3975C0B6, 0x0C6821BC},
32017 {0x4F0EF2F5, 0x4920D6F7, 0x41EB2BA1, 0xC7ADDD39, 0x0D264614} } } ,
32018 { { {0xE86A1BFF, 0x5155430C, 0xCBDC4C10, 0x56B85C60, 0x00C26F74},
32019 {0x3406F1D8, 0xAA281DC1, 0xD28FA0F7, 0x17122F1E, 0x1B751458} } ,
32020 { {0x27FB1EA0, 0x0DCB2D58, 0xE11A85D3, 0xA2422AB0, 0x1B38290A},
32021 {0x6E604F19, 0xBBFDA9E2, 0xDFAC26E3, 0x31050903, 0x0884C6E0} } } } ;
32023 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3737 a000");
32024 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3738 a001");
32025 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3739 a010");
32026 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3740 a011");
32027 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3741 a100");
32028 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3742 a101");
32029 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3743 a110");
32030 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3744 a111");
32031 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3745 a200");
32032 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3746 a201");
32033 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3747 a210");
32034 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3748 a211");
32037 static const fp12_t var_a = { { { {0xB8DFC284, 0xAFEC7143, 0x0CFFFB8B, 0x97D1D4CF, 0x0A3534DE},
32038 {0x0A6427CF, 0xB46B0263, 0x144B6473, 0x3B034C60, 0x01C11D15} } ,
32039 { {0x23324C52, 0x95E88DCD, 0xD794315F, 0xCFB30065, 0x14AB7695},
32040 {0xC400BBFD, 0x46A33E45, 0xF7532B01, 0xB4B4B12C, 0x020B86AB} } } ,
32041 { { {0x4958CAB4, 0x5E718DD1, 0x245DD7FD, 0x9F876819, 0x010FA903},
32042 {0x9C867365, 0x095258D3, 0x7C7018CE, 0x2459C89B, 0x17B1224E} } ,
32043 { {0x2A8D50CB, 0x403271C6, 0x9F25212E, 0x0774AD3A, 0x047911F0},
32044 {0x7D9676DE, 0x09543612, 0xD4E480D8, 0xDF113392, 0x1C094846} } } ,
32045 { { {0x7DEAB162, 0x70FAC1A0, 0x701D7C6C, 0x120CBD12, 0x117FCD38},
32046 {0xE09F4117, 0x769D1E76, 0x44DAD5E1, 0x0865A32E, 0x03613D81} } ,
32047 { {0x3C5E38AD, 0x8118E114, 0xBCA247E0, 0xA5FD827B, 0x17BD017D},
32048 {0x7977293A, 0x5EE97B31, 0x708045B6, 0x2A379FAD, 0x066A8852} } } } ;
32049 static const fp12_t var_expected = { { { {0x93708FD7, 0x6E40E35C, 0x2C4AC512, 0x17848717, 0x19CBEB25},
32050 {0x41EC2A8C, 0x69C2523D, 0x24FF5C2A, 0x74530F86, 0x224002EE} } ,
32051 { {0x291E0609, 0x8844C6D3, 0x61B68F3E, 0xDFA35B80, 0x0F55A96D},
32052 {0x884F965E, 0xD78A165A, 0x41F7959C, 0xFAA1AAB9, 0x21F59957} } } ,
32053 { { {0x02F787A7, 0xBFBBC6CF, 0x14ECE8A0, 0x0FCEF3CD, 0x22F17700},
32054 {0xAFC9DEF6, 0x14DAFBCC, 0xBCDAA7D0, 0x8AFC934A, 0x0C4FFDB5} } ,
32055 { {0x21C30190, 0xDDFAE2DA, 0x9A259F6F, 0xA7E1AEAB, 0x1F880E13},
32056 {0xCEB9DB7D, 0x14D91E8D, 0x64663FC6, 0xD0452853, 0x07F7D7BC} } } ,
32057 { { {0xCE65A0F9, 0xAD3292FF, 0xC92D4431, 0x9D499ED3, 0x128152CB},
32058 {0x6BB11144, 0xA7903629, 0xF46FEABC, 0xA6F0B8B7, 0x209FE282} } ,
32059 { {0x0FF219AE, 0x9D14738C, 0x7CA878BD, 0x0958D96A, 0x0C441E86},
32060 {0xD2D92921, 0xBF43D96E, 0xC8CA7AE7, 0x851EBC38, 0x1D9697B1} } } } ;
32062 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3749 a000");
32063 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3750 a001");
32064 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3751 a010");
32065 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3752 a011");
32066 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3753 a100");
32067 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3754 a101");
32068 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3755 a110");
32069 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3756 a111");
32070 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3757 a200");
32071 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3758 a201");
32072 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3759 a210");
32073 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3760 a211");
32076 static const fp12_t var_a = { { { {0x879F79D4, 0x6F967BCB, 0xA4A5F845, 0xDDD86CBE, 0x014E42AD},
32077 {0x104C2121, 0x1A23A325, 0xD5948B73, 0xFC7A9A5C, 0x0248FDA2} } ,
32078 { {0x4506CFFB, 0x7A0B7759, 0x824EB66E, 0x6F94F559, 0x207CCE96},
32079 {0x19AA636A, 0x9148E09A, 0x5129503B, 0x18D9A4A5, 0x02104104} } } ,
32080 { { {0x5F831DB9, 0x30CD218F, 0xE78DD6B8, 0xC1237373, 0x1B01669E},
32081 {0x3A4FC5FF, 0xA3DEDC01, 0xAE14DC38, 0x9B644721, 0x1164513C} } ,
32082 { {0x60E90244, 0xDB44E46E, 0xDE508B22, 0xC80836CC, 0x219F52AF},
32083 {0x849C47B1, 0x1621C4D1, 0xCDCB3AAB, 0xB9D82134, 0x226785A5} } } ,
32084 { { {0xAB284C50, 0xD2748127, 0xF50766A0, 0x8E03BF69, 0x02066092},
32085 {0xFC37142F, 0xE8D2AE43, 0x6DF7950A, 0xF5CE65A9, 0x0C669263} } ,
32086 { {0xF2F0B661, 0xEF543EF3, 0x5B274F5B, 0x79A6232A, 0x1ACA0E38},
32087 {0x9ABD07ED, 0x60A7A859, 0x811176C5, 0x2FA5F714, 0x1A802C96} } } } ;
32088 static const fp12_t var_expected = { { { {0xC4B0D887, 0xAE96D8D4, 0x94A4C858, 0xD17DEF27, 0x22B2DD55},
32089 {0x3C04313A, 0x0409B17B, 0x63B6352B, 0xB2DBC189, 0x21B82260} } ,
32090 { {0x07498260, 0xA421DD47, 0xB6FC0A2F, 0x3FC1668C, 0x0384516D},
32091 {0x32A5EEF1, 0x8CE47406, 0xE8217062, 0x967CB740, 0x21F0DEFF} } } ,
32092 { { {0xECCD34A2, 0xED603310, 0x51BCE9E5, 0xEE32E872, 0x08FFB964},
32093 {0x12008C5C, 0x7A4E789F, 0x8B35E465, 0x13F214C4, 0x129CCEC7} } ,
32094 { {0xEB675017, 0x42E87031, 0x5AFA357B, 0xE74E2519, 0x0261CD53},
32095 {0xC7B40AAA, 0x080B8FCE, 0x6B7F85F3, 0xF57E3AB1, 0x01999A5D} } } ,
32096 { { {0xA128060B, 0x4BB8D378, 0x444359FD, 0x21529C7C, 0x21FABF71},
32097 {0x50193E2C, 0x355AA65C, 0xCB532B93, 0xB987F63C, 0x179A8D9F} } ,
32098 { {0x595F9BFA, 0x2ED915AC, 0xDE237142, 0x35B038BB, 0x093711CB},
32099 {0xB1934A6E, 0xBD85AC46, 0xB83949D8, 0x7FB064D1, 0x0980F36D} } } } ;
32101 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3761 a000");
32102 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3762 a001");
32103 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3763 a010");
32104 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3764 a011");
32105 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3765 a100");
32106 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3766 a101");
32107 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3767 a110");
32108 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3768 a111");
32109 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3769 a200");
32110 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3770 a201");
32111 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3771 a210");
32112 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3772 a211");
32115 static const fp12_t var_a = { { { {0xEAB7C5ED, 0xDBAF13BB, 0x225B1CD5, 0xD664C2DE, 0x06AA63E5},
32116 {0xAC378115, 0xB0234771, 0x6F706034, 0x620B22BC, 0x00662A0C} } ,
32117 { {0xB6BE3BFA, 0x6D0BED13, 0xA4F52CE2, 0x60A47020, 0x158F7B82},
32118 {0x6EB413F7, 0x279F1CEA, 0x6832115B, 0x8AB6235A, 0x11FD22C6} } } ,
32119 { { {0x5222F059, 0xA41974FC, 0xA5A6AA72, 0xD3D56129, 0x06B8E915},
32120 {0x47442353, 0xD676BA7F, 0x47B0E0FA, 0x19528A58, 0x164D081E} } ,
32121 { {0x987E1D51, 0x4E776F2B, 0x7D8CBB70, 0x408D9017, 0x026A8AFF},
32122 {0x4769833A, 0x5529ADE9, 0xC21927A1, 0xE4C9ABF5, 0x11284509} } } ,
32123 { { {0xDD3C92F7, 0xD5406F7C, 0xCD2A2CDB, 0xAC509333, 0x22FD6DDB},
32124 {0xD7316184, 0xA82F46E9, 0xC0514F2F, 0x4F802F50, 0x05D537C8} } ,
32125 { {0x8A4B4A0C, 0x40720B79, 0x32A02485, 0xF6C8962E, 0x07DA592F},
32126 {0x1344DB04, 0xA1A8F59F, 0x09738D8B, 0x1DDDBFF7, 0x08D04179} } } } ;
32127 static const fp12_t var_expected = { { { {0x61988C6E, 0x427E40E4, 0x16EFA3C8, 0xD8F19908, 0x1D56BC1D},
32128 {0xA018D146, 0x6E0A0D2E, 0xC9DA6069, 0x4D4B3929, 0x239AF5F7} } ,
32129 { {0x95921661, 0xB121678C, 0x945593BB, 0x4EB1EBC5, 0x0E71A481},
32130 {0xDD9C3E64, 0xF68E37B5, 0xD118AF42, 0x24A0388B, 0x1203FD3D} } } ,
32131 { { {0xFA2D6202, 0x7A13DFA3, 0x93A4162B, 0xDB80FABC, 0x1D4836ED},
32132 {0x050C2F08, 0x47B69A21, 0xF199DFA3, 0x9603D18D, 0x0DB417E5} } ,
32133 { {0xB3D2350A, 0xCFB5E574, 0xBBBE052D, 0x6EC8CBCE, 0x21969504},
32134 {0x04E6CF21, 0xC903A6B7, 0x773198FC, 0xCA8CAFF0, 0x12D8DAF9} } } ,
32135 { { {0x6F13BF64, 0x48ECE523, 0x6C2093C2, 0x0305C8B2, 0x0103B228},
32136 {0x751EF0D7, 0x75FE0DB6, 0x78F9716E, 0x5FD62C95, 0x1E2BE83B} } ,
32137 { {0xC205084F, 0xDDBB4926, 0x06AA9C18, 0xB88DC5B8, 0x1C26C6D3},
32138 {0x390B7757, 0x7C845F01, 0x2FD73312, 0x91789BEF, 0x1B30DE8A} } } } ;
32140 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3773 a000");
32141 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3774 a001");
32142 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3775 a010");
32143 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3776 a011");
32144 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3777 a100");
32145 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3778 a101");
32146 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3779 a110");
32147 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3780 a111");
32148 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3781 a200");
32149 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3782 a201");
32150 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3783 a210");
32151 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3784 a211");
32154 static const fp12_t var_a = { { { {0xCAD1D419, 0xAA59E91B, 0xB00E97C5, 0x75D5FF08, 0x1D57D616},
32155 {0xAB343E8A, 0xE0FFF24D, 0xE0CB601F, 0x1CFB058C, 0x2391E6A3} } ,
32156 { {0xC7C3A615, 0xCFF52209, 0x0423C52F, 0x51B6D14B, 0x049EC7B4},
32157 {0xEAEF546B, 0x39BD7ECA, 0x983B4BFD, 0x4C185D16, 0x1E57B8F4} } } ,
32158 { { {0x63DB46B8, 0x7037A047, 0xD0220523, 0xBAE76AB2, 0x1E14785C},
32159 {0x9E16C778, 0x4A2BCA9A, 0xF6B64D81, 0xB74D2DAB, 0x13B611B0} } ,
32160 { {0x43ECCD3E, 0xB34B94D7, 0x32A65E88, 0xBAF67FF4, 0x0961BA12},
32161 {0x891F7FFE, 0xC8FF9F6F, 0x8106A308, 0xC0D87973, 0x1F02DE4F} } } ,
32162 { { {0x2D6E03D4, 0x05A432F5, 0x66C94A7B, 0xB5A4A054, 0x20A8417F},
32163 {0x612D48DA, 0x9FABBFA4, 0xCFFA3FB2, 0x0982A510, 0x0175AF35} } ,
32164 { {0x0A2511D0, 0x2801A470, 0xCE972B87, 0xC53CC6FA, 0x01749F0A},
32165 {0xCCBE430C, 0x7F83217E, 0x0D6494E9, 0x5D194A15, 0x03C914BD} } } } ;
32166 static const fp12_t var_expected = { { { {0x817E7E42, 0x73D36B84, 0x893C28D8, 0x39805CDD, 0x06A949ED},
32167 {0xA11C13D1, 0x3D2D6252, 0x587F607E, 0x925B5659, 0x006F3960} } ,
32168 { {0x848CAC46, 0x4E383296, 0x3526FB6E, 0x5D9F8A9B, 0x1F62584F},
32169 {0x6160FDF0, 0xE46FD5D5, 0xA10F74A0, 0x633DFECF, 0x05A9670F} } } ,
32170 { { {0xE8750BA3, 0xADF5B458, 0x6928BB7A, 0xF46EF133, 0x05ECA7A6},
32171 {0xAE398AE3, 0xD4018A05, 0x4294731C, 0xF8092E3A, 0x104B0E52} } ,
32172 { {0x0863851D, 0x6AE1BFC9, 0x06A46215, 0xF45FDBF2, 0x1A9F65F0},
32173 {0xC330D25D, 0x552DB530, 0xB8441D95, 0xEE7DE272, 0x04FE41B3} } } ,
32174 { { {0x1EE24E87, 0x188921AB, 0xD2817623, 0xF9B1BB91, 0x0358DE83},
32175 {0xEB230981, 0x7E8194FB, 0x695080EB, 0xA5D3B6D5, 0x228B70CE} } ,
32176 { {0x422B408B, 0xF62BB030, 0x6AB39516, 0xEA1994EB, 0x228C80F8},
32177 {0x7F920F4F, 0x9EAA3321, 0x2BE62BB4, 0x523D11D1, 0x20380B46} } } } ;
32179 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3785 a000");
32180 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3786 a001");
32181 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3787 a010");
32182 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3788 a011");
32183 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3789 a100");
32184 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3790 a101");
32185 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3791 a110");
32186 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3792 a111");
32187 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3793 a200");
32188 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3794 a201");
32189 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3795 a210");
32190 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3796 a211");
32193 static const fp12_t var_a = { { { {0xB1B7E762, 0xCC97E930, 0xEE84475C, 0x106A470E, 0x1FD6B0C5},
32194 {0x2306AFB3, 0x66B31D53, 0x64395023, 0x3455E8E9, 0x0E3E62CD} } ,
32195 { {0x4C77AC99, 0x910850E6, 0xACCCC396, 0xC4503E5D, 0x012DF16E},
32196 {0x87576D03, 0x555A60FE, 0x4578AA47, 0xD101F855, 0x1006E77E} } } ,
32197 { { {0x05D71610, 0x04391C6E, 0xCFC5735E, 0x0F25EC8C, 0x031FD529},
32198 {0x8624AE1B, 0x458EC2D0, 0xF8B2BFDE, 0x36CA1C89, 0x02C562AD} } ,
32199 { {0x91CE7781, 0xA3C0C9C0, 0x24DF6980, 0x5D7A811C, 0x09C14E11},
32200 {0xE676BFFA, 0x7794BFAE, 0xB3469B73, 0xEFE5CCC6, 0x037126E3} } } ,
32201 { { {0x79A1B3D1, 0xFD941C42, 0xF8BD79FD, 0x75C138BE, 0x10475F8B},
32202 {0x9762DDE8, 0x08232F70, 0x95007BD4, 0x048A5286, 0x0B2D520B} } ,
32203 { {0xEE643A98, 0xDADAD5C6, 0xC7A9CB8E, 0xC70FA3AC, 0x1145FE6B},
32204 {0x31DEAAC8, 0xAD96C60A, 0xBAE172F0, 0x333F5E81, 0x070E8366} } } } ;
32205 static const fp12_t var_expected = { { { {0x9A986AF9, 0x51956B6F, 0x4AC67941, 0x9EEC14D7, 0x042A6F3E},
32206 {0x2949A2A8, 0xB77A374D, 0xD511707A, 0x7B0072FC, 0x15C2BD36} } ,
32207 { {0xFFD8A5C2, 0x8D2503B9, 0x8C7DFD07, 0xEB061D88, 0x22D32E94},
32208 {0xC4F8E558, 0xC8D2F3A1, 0xF3D21656, 0xDE546390, 0x13FA3884} } } ,
32209 { { {0x46793C4B, 0x19F43832, 0x69854D40, 0xA0306F59, 0x20E14ADA},
32210 {0xC62BA440, 0xD89E91CF, 0x409800BF, 0x788C3F5C, 0x213BBD56} } ,
32211 { {0xBA81DADA, 0x7A6C8ADF, 0x146B571D, 0x51DBDACA, 0x1A3FD1F2},
32212 {0x65D99261, 0xA69894F1, 0x8604252A, 0xBF708F1F, 0x208FF91F} } } ,
32213 { { {0xD2AE9E8A, 0x2099385D, 0x408D46A0, 0x39952327, 0x13B9C078},
32214 {0xB4ED7473, 0x160A252F, 0xA44A44CA, 0xAACC095F, 0x18D3CDF8} } ,
32215 { {0x5DEC17C3, 0x43527ED9, 0x71A0F50F, 0xE846B839, 0x12BB2197},
32216 {0x1A71A793, 0x70968E96, 0x7E694DAD, 0x7C16FD64, 0x1CF29C9D} } } } ;
32218 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3797 a000");
32219 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3798 a001");
32220 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3799 a010");
32221 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3800 a011");
32222 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3801 a100");
32223 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3802 a101");
32224 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3803 a110");
32225 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3804 a111");
32226 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3805 a200");
32227 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3806 a201");
32228 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3807 a210");
32229 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3808 a211");
32232 static const fp12_t var_a = { { { {0x96DE0F59, 0x515198B6, 0x7F446362, 0xD8C90EAB, 0x20712E57},
32233 {0xF1CD1FBE, 0xBC521904, 0xBFD1D625, 0x56AAB451, 0x04AECB67} } ,
32234 { {0x19599478, 0x9FD6A3DF, 0xF959E7B0, 0x7E6373A6, 0x0029A9EF},
32235 {0x130BB335, 0x082C585E, 0x6A50102E, 0x36BE8D24, 0x0F4954C0} } } ,
32236 { { {0xC4488DF5, 0xD0BC6772, 0x93878C16, 0x23141E4E, 0x0FB7588C},
32237 {0x8234BE83, 0x1FAE99A3, 0xA09C619F, 0x75B93619, 0x0A143953} } ,
32238 { {0x5175E296, 0x889748A4, 0xF10C238F, 0x4A4D2058, 0x015B3947},
32239 {0xCE46B825, 0x17B88D19, 0xCE42565C, 0x6B5D9FB4, 0x1F747BB3} } } ,
32240 { { {0x244DEC83, 0x5ADBDF62, 0xA8BDDF9A, 0xB58E4C9D, 0x01BA0DBA},
32241 {0xC7FD242E, 0x4E5C52B9, 0x6872597D, 0x112C18C3, 0x21565C55} } ,
32242 { {0xA6926ECB, 0x84812859, 0x2635DF52, 0x0F15AD3E, 0x0A42643D},
32243 {0x50B507FD, 0xE6940B04, 0x3322D8AF, 0x63C37E48, 0x18D90E33} } } } ;
32244 static const fp12_t var_expected = { { { {0xB5724302, 0xCCDBBBE9, 0xBA065D3B, 0xD68D4D3A, 0x038FF1AB},
32245 {0x5A83329D, 0x61DB3B9B, 0x7978EA78, 0x58ABA794, 0x1F52549C} } ,
32246 { {0x32F6BDE3, 0x7E56B0C1, 0x3FF0D8ED, 0x30F2E83F, 0x23D77614},
32247 {0x39449F26, 0x1600FC42, 0xCEFAB070, 0x7897CEC1, 0x14B7CB43} } } ,
32248 { { {0x8807C466, 0x4D70ED2D, 0xA5C33487, 0x8C423D97, 0x1449C777},
32249 {0xCA1B93D8, 0xFE7EBAFC, 0x98AE5EFE, 0x399D25CC, 0x19ECE6B0} } ,
32250 { {0xFADA6FC5, 0x95960BFB, 0x483E9D0E, 0x65093B8D, 0x22A5E6BC},
32251 {0x7E099A36, 0x0674C786, 0x6B086A42, 0x43F8BC31, 0x048CA450} } } ,
32252 { { {0x280265D8, 0xC351753E, 0x908CE103, 0xF9C80F48, 0x22471248},
32253 {0x84532E2D, 0xCFD101E6, 0xD0D86720, 0x9E2A4322, 0x02AAC3AE} } ,
32254 { {0xA5BDE390, 0x99AC2C46, 0x1314E14B, 0xA040AEA8, 0x19BEBBC6},
32255 {0xFB9B4A5E, 0x3799499B, 0x0627E7EE, 0x4B92DD9E, 0x0B2811D0} } } } ;
32257 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3809 a000");
32258 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3810 a001");
32259 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3811 a010");
32260 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3812 a011");
32261 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3813 a100");
32262 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3814 a101");
32263 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3815 a110");
32264 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3816 a111");
32265 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3817 a200");
32266 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3818 a201");
32267 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3819 a210");
32268 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3820 a211");
32271 static const fp12_t var_a = { { { {0x953A9A1E, 0xCDCC7607, 0xD02227EA, 0x54E8E492, 0x1D5205AA},
32272 {0x03D9EF6D, 0x0EEE8325, 0x7C2D4D24, 0x35F3817C, 0x1E37B496} } ,
32273 { {0x72803CD0, 0x9C63A7F3, 0xA5CF2250, 0xF38B0970, 0x0D8FDE34},
32274 {0x5CE2B6C7, 0xA24949E7, 0x915B3462, 0x34F4205E, 0x07D90AA2} } } ,
32275 { { {0xA692A56A, 0x192949F0, 0x4A691580, 0xFAD9F0ED, 0x021BB512},
32276 {0x70CA9E85, 0x91E62C6E, 0xA3387925, 0x748C5642, 0x1862588A} } ,
32277 { {0xF6AD0B0B, 0xB20CF549, 0x959F888C, 0x27882F6E, 0x115DD852},
32278 {0xAA881489, 0x7D205379, 0xFA2ED53D, 0x70143A11, 0x1B51B6AC} } } ,
32279 { { {0x1BFF1CD4, 0x6292C2E0, 0x302ADA9F, 0x45367F9C, 0x0A41E4D7},
32280 {0x8501A65A, 0x7D516CD1, 0x260DEBAF, 0xB44AF468, 0x199BA5E1} } ,
32281 { {0x5D0F5D8C, 0xAF7C3AAD, 0xCD57CB18, 0xCFF1AC3E, 0x0C79B68F},
32282 {0x66385B90, 0xFFFB9002, 0x2CC8FB07, 0x91ECF50C, 0x15255E43} } } } ;
32283 static const fp12_t var_expected = { { { {0xB715B83D, 0x5060DE98, 0x692898B3, 0x5A6D7753, 0x06AF1A59},
32284 {0x487662EE, 0x0F3ED17B, 0xBD1D737A, 0x7962DA69, 0x05C96B6D} } ,
32285 { {0xD9D0158B, 0x81C9ACAC, 0x937B9E4D, 0xBBCB5275, 0x167141CE},
32286 {0xEF6D9B94, 0x7BE40AB8, 0xA7EF8C3B, 0x7A623B87, 0x1C281561} } } ,
32287 { { {0xA5BDACF1, 0x05040AAF, 0xEEE1AB1E, 0xB47C6AF8, 0x21E56AF0},
32288 {0xDB85B3D6, 0x8C472831, 0x96124778, 0x3ACA05A3, 0x0B9EC779} } ,
32289 { {0x55A34750, 0x6C205F56, 0xA3AB3811, 0x87CE2C77, 0x12A347B1},
32290 {0xA1C83DD2, 0xA10D0126, 0x3F1BEB60, 0x3F4221D4, 0x08AF6957} } } ,
32291 { { {0x30513587, 0xBB9A91C0, 0x091FE5FE, 0x6A1FDC4A, 0x19BF3B2C},
32292 {0xC74EAC01, 0xA0DBE7CE, 0x133CD4EE, 0xFB0B677E, 0x0A657A21} } ,
32293 { {0xEF40F4CF, 0x6EB119F2, 0x6BF2F585, 0xDF64AFA7, 0x17876973},
32294 {0xE617F6CB, 0x1E31C49D, 0x0C81C596, 0x1D6966DA, 0x0EDBC1C0} } } } ;
32296 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3821 a000");
32297 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3822 a001");
32298 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3823 a010");
32299 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3824 a011");
32300 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3825 a100");
32301 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3826 a101");
32302 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3827 a110");
32303 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3828 a111");
32304 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3829 a200");
32305 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3830 a201");
32306 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3831 a210");
32307 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3832 a211");
32310 static const fp12_t var_a = { { { {0x6BC79713, 0x0D231D72, 0xC2CDC4F4, 0x444C4C3C, 0x00E80397},
32311 {0xAF62DCB8, 0x27DCB3CD, 0x817C6ECA, 0xD570BAA4, 0x11FF10FF} } ,
32312 { {0xC6571894, 0x76FBEB9C, 0xD69DA35E, 0xB1E6D8D4, 0x1E01D679},
32313 {0x78C2B875, 0xAC96C63C, 0xF18718F8, 0xE388FCBB, 0x0DF4A300} } } ,
32314 { { {0xF68B7B44, 0xA803B859, 0x3B47B0CB, 0x4CABD236, 0x0E96F866},
32315 {0x2AA9104B, 0xFCE53C2A, 0x910192B2, 0xD6379ACA, 0x09621DBC} } ,
32316 { {0x563D82BA, 0x2BAE3569, 0xEDDFD381, 0xAD1D2E5D, 0x03F1721C},
32317 {0x0F6E5B6F, 0x38C33905, 0xD7DD50E4, 0x9E88342D, 0x0B54DA15} } } ,
32318 { { {0x5A69AC0D, 0x9B7C9F27, 0xE1DA9891, 0xEFA75D6C, 0x1875B6FA},
32319 {0xD9576FE2, 0x15C414C2, 0xBD5CC982, 0x9E207889, 0x022893FD} } ,
32320 { {0x5BD3CC5B, 0x2CE35692, 0x2E3014E8, 0x3BB93E95, 0x0C0E65F8},
32321 {0x9B572D32, 0xCC744497, 0x8B66360E, 0x54440101, 0x0BD24806} } } } ;
32322 static const fp12_t var_expected = { { { {0xE088BB48, 0x110A372D, 0x767CFBAA, 0x6B0A0FA9, 0x23191C6C},
32323 {0x9CED75A3, 0xF650A0D2, 0xB7CE51D3, 0xD9E5A141, 0x12020F03} } ,
32324 { {0x85F939C7, 0xA7316903, 0x62AD1D3F, 0xFD6F8311, 0x05FF4989},
32325 {0xD38D99E6, 0x71968E63, 0x47C3A7A5, 0xCBCD5F2A, 0x160C7D02} } } ,
32326 { { {0x55C4D717, 0x76299C46, 0xFE030FD2, 0x62AA89AF, 0x156A279D},
32327 {0x21A74210, 0x21481876, 0xA8492DEB, 0xD91EC11B, 0x1A9F0246} } ,
32328 { {0xF612CFA1, 0xF27F1F36, 0x4B6AED1C, 0x02392D88, 0x200FADE7},
32329 {0x3CE1F6EC, 0xE56A1B9B, 0x616D6FB9, 0x10CE27B8, 0x18AC45EE} } } ,
32330 { { {0xF1E6A64E, 0x82B0B578, 0x5770280C, 0xBFAEFE79, 0x0B8B6908},
32331 {0x72F8E279, 0x08693FDD, 0x7BEDF71C, 0x1135E35C, 0x21D88C06} } ,
32332 { {0xF07C8600, 0xF149FE0D, 0x0B1AABB5, 0x739D1D51, 0x17F2BA0B},
32333 {0xB0F92529, 0x51B91008, 0xADE48A8F, 0x5B125AE4, 0x182ED7FD} } } } ;
32335 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_neg 3833 a000");
32336 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_neg 3834 a001");
32337 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_neg 3835 a010");
32338 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_neg 3836 a011");
32339 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_neg 3837 a100");
32340 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_neg 3838 a101");
32341 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_neg 3839 a110");
32342 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_neg 3840 a111");
32343 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_neg 3841 a200");
32344 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_neg 3842 a201");
32345 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_neg 3843 a210");
32346 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_neg 3844 a211");
32349 static const fp12_t var_a = { { { {0x64C8A9DD, 0x08711E5B, 0x02645A05, 0xB3830F2B, 0x1C4E88E7},
32350 {0xE1388DA5, 0xC85A0F47, 0x97D3D0A0, 0xDB259040, 0x0881CF37} } ,
32351 { {0x7DE82520, 0x9C5F2E2E, 0x0F7D5BFC, 0x013FAC24, 0x00325BA3},
32352 {0x3D4B632E, 0x0E7CAD8C, 0x4BE202DF, 0xC538F167, 0x0DF93825} } } ,
32353 { { {0xFBE190C4, 0xCD2D42FF, 0x16FCCDFE, 0x559B7DE9, 0x0A6B7B88},
32354 {0x9016F33E, 0xC91FC1BD, 0xEC15D3E4, 0x3239DD9E, 0x155FF1B9} } ,
32355 { {0xED3AF616, 0xEAD28082, 0x7BD6EFE0, 0xA83EDF23, 0x08FB03AB},
32356 {0xB3386C4C, 0x14E54CDA, 0x99D8E007, 0xDB12EEDE, 0x13A09423} } } ,
32357 { { {0x577D04DF, 0xE1173D11, 0x0B1F7AC8, 0x6E8C84B5, 0x158D187B},
32358 {0xFDA0525E, 0x47285B42, 0x492354F5, 0x79162013, 0x19DD77C2} } ,
32359 { {0x0EEFAEFB, 0xE1AD888C, 0xC8840343, 0xEB55D92E, 0x13E00082},
32360 {0x563C58DC, 0xF78687E6, 0xFC1C7A08, 0xA03FD3A4, 0x18BF8DE1} } } } ;
32361 static const fp12_t var_expected = { { { {0x7D41015F, 0xF2B4E816, 0xCB7DF36B, 0xB7AFC26F, 0x149BF1CB},
32362 {0xC2711B4A, 0x90B41E8F, 0x2FA7A141, 0xB64B2081, 0x11039E6F} } ,
32363 { {0xFBD04A40, 0x38BE5C5C, 0x1EFAB7F9, 0x027F5848, 0x0064B746},
32364 {0x7A96C65C, 0x1CF95B18, 0x97C405BE, 0x8A71E2CE, 0x1BF2704B} } } ,
32365 { { {0xF7C32188, 0x9A5A85FF, 0x2DF99BFD, 0xAB36FBD2, 0x14D6F710},
32366 {0xD3DD9421, 0x74122EDA, 0x9EE0E72B, 0xB51D5F57, 0x06BEC36E} } ,
32367 { {0xDA75EC2C, 0xD5A50105, 0xF7ADDFC1, 0x507DBE46, 0x11F60757},
32368 {0x1A20863D, 0x0B9D4515, 0xFA66FF70, 0x06CF81D6, 0x03400844} } } ,
32369 { { {0x62A9B763, 0xA4012582, 0xDCF434F3, 0x2DC2AD83, 0x071910F3},
32370 {0xAEF05261, 0x702361E5, 0x58FBE94C, 0x42D5E440, 0x0FB9CF81} } ,
32371 { {0xD18F0B9B, 0xA52DBC77, 0x57BD45E9, 0x27555677, 0x03BEE102},
32372 {0x60285F5D, 0xD0DFBB2C, 0xBEEE3373, 0x91294B63, 0x0D7DFBBF} } } } ;
32374 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3845 a000");
32375 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3846 a001");
32376 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3847 a010");
32377 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3848 a011");
32378 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3849 a100");
32379 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3850 a101");
32380 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3851 a110");
32381 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3852 a111");
32382 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3853 a200");
32383 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3854 a201");
32384 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3855 a210");
32385 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3856 a211");
32388 static const fp12_t var_a = { { { {0xF8732017, 0xF93A75A6, 0x2396D0BD, 0x1D4146E2, 0x23AA33D0},
32389 {0x1820DAF2, 0x8A9B85B9, 0x94158B5C, 0x7B3A8913, 0x0B5A95BD} } ,
32390 { {0x2702B33C, 0x02505324, 0xC1AE9BCF, 0xB1F9B145, 0x143145E9},
32391 {0xAA51E751, 0xE923F371, 0x860C97C7, 0xB58D98A5, 0x213CF605} } } ,
32392 { { {0x5B9FC8E5, 0x0FC7EAF7, 0xA4E0CCA8, 0x335005AD, 0x01BA4FCA},
32393 {0xED53E08C, 0x78BE1498, 0x9C7713FF, 0x95D99DEC, 0x0577CE0C} } ,
32394 { {0x5F7786F5, 0x18F28E37, 0x9435A7E3, 0x4322BC0A, 0x1820F8DC},
32395 {0xB73E3CFE, 0x9CB03DB0, 0xC5059EBD, 0xD0F5B78C, 0x1E8E8679} } } ,
32396 { { {0x1511661D, 0xB592F1D3, 0x83245CB1, 0x58E8B349, 0x07C629AD},
32397 {0xC98E248E, 0xEDAA412F, 0xAC6456CB, 0x54CC19FF, 0x1C8FFF0C} } ,
32398 { {0xC297227E, 0x27246901, 0xF1433611, 0x5C00F430, 0x1876A8EB},
32399 {0x4AC2376B, 0x5DBA479D, 0xA5E3E3C1, 0x70F22AE1, 0x1022281C} } } } ;
32400 static const fp12_t var_expected = { { { {0xA495EDD3, 0xD44796AD, 0x0DE2E0DD, 0x8B2C31DE, 0x2353479C},
32401 {0x3041B5E4, 0x15370B72, 0x282B16B9, 0xF6751227, 0x16B52B7A} } ,
32402 { {0x01B5141D, 0xE67351A8, 0x4A1276FF, 0xB49D06A5, 0x04616BCF},
32403 {0x08537C47, 0xB41A9243, 0xD2CE6EF1, 0xBBC4D564, 0x1E78CC07} } } ,
32404 { { {0xB73F91CA, 0x1F8FD5EE, 0x49C19950, 0x66A00B5B, 0x03749F94},
32405 {0xDAA7C118, 0xF17C2931, 0x38EE27FE, 0x2BB33BD9, 0x0AEF9C19} } ,
32406 { {0x729EBB8F, 0x13B7C7CE, 0xEF208F28, 0xD6EF1C2E, 0x0C40D1B4},
32407 {0x222C27A1, 0x1B3326C1, 0x50C07CDD, 0xF2951333, 0x191BECEF} } } ,
32408 { { {0x2A22CC3A, 0x6B25E3A6, 0x0648B963, 0xB1D16693, 0x0F8C535A},
32409 {0x46CBF6C1, 0xBD272DBF, 0x1F7DECF9, 0xFA41D819, 0x151EDE14} } ,
32410 { {0x38DDF2A1, 0x301B7D63, 0xA93BAB84, 0x08AB8C7B, 0x0CEC31D3},
32411 {0x95846ED6, 0xBB748F3A, 0x4BC7C782, 0xE1E455C3, 0x20445038} } } } ;
32413 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3857 a000");
32414 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3858 a001");
32415 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3859 a010");
32416 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3860 a011");
32417 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3861 a100");
32418 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3862 a101");
32419 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3863 a110");
32420 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3864 a111");
32421 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3865 a200");
32422 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3866 a201");
32423 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3867 a210");
32424 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3868 a211");
32427 static const fp12_t var_a = { { { {0xBD0027C0, 0x09C5197C, 0x1B9E188B, 0xB493FEEE, 0x06B5C8D3},
32428 {0x89B7E9C4, 0x5AA0D042, 0x7F60C2EA, 0xB27D06E5, 0x1731CE6F} } ,
32429 { {0x3BD00BD2, 0xACC4787A, 0x4945738E, 0xFC10E127, 0x0BE42CE3},
32430 {0x85968166, 0x796F5187, 0x6EFE90C3, 0xD582DC65, 0x0CA8389A} } } ,
32431 { { {0xA889A3B1, 0xA53255F2, 0x62BF4252, 0xAE938EF3, 0x031E08D7},
32432 {0xB013E308, 0x35477868, 0xACBECF63, 0xEE670BC6, 0x107CF2B5} } ,
32433 { {0xC52F4155, 0xFB8B2C0E, 0x425FEE44, 0x41F258FA, 0x1085C77F},
32434 {0x107F60EE, 0x4EA76C89, 0x3A5970B1, 0x86FC0C11, 0x06777A06} } } ,
32435 { { {0xE289CC1F, 0x5C786927, 0x9E5F65A5, 0xD28F2FEA, 0x23398002},
32436 {0x4568ED0C, 0x18528AE3, 0xE48EC795, 0xEFB14ECA, 0x14A80F1E} } ,
32437 { {0x743E313C, 0x9934A582, 0x552C581C, 0xD12895B1, 0x1E140F98},
32438 {0x8DDC5C75, 0x4951176E, 0x38884F67, 0x62FEC7A0, 0x07772C47} } } } ;
32439 static const fp12_t var_expected = { { { {0x7A004F80, 0x138A32F9, 0x373C3116, 0x6927FDDC, 0x0D6B91A7},
32440 {0xC71F812D, 0x97144BE4, 0xC576C536, 0xB5A3B1E4, 0x0A627CDB} } ,
32441 { {0x77A017A4, 0x5988F0F4, 0x928AE71D, 0xF821C24E, 0x17C859C7},
32442 {0x0B2D02CC, 0xF2DEA30F, 0xDDFD2186, 0xAB05B8CA, 0x19507135} } } ,
32443 { { {0x51134762, 0x4A64ABE5, 0xC57E84A5, 0x5D271DE6, 0x063C11AF},
32444 {0x6027C610, 0x6A8EF0D1, 0x597D9EC6, 0xDCCE178D, 0x20F9E56B} } ,
32445 { {0x8A5E82AA, 0xF716581D, 0x84BFDC89, 0x83E4B1F4, 0x210B8EFE},
32446 {0x20FEC1DC, 0x9D4ED912, 0x74B2E162, 0x0DF81822, 0x0CEEF40D} } } ,
32447 { { {0x78C345E3, 0x9AC37DAF, 0x03740AAC, 0xF5C803EF, 0x2271E001},
32448 {0x3E8187BD, 0x1277C126, 0x8FD2CE8C, 0x300C41AF, 0x054EFE3A} } ,
32449 { {0x9C2C101D, 0x143BF664, 0x710DEF9B, 0xF2FACF7C, 0x1826FF2D},
32450 {0x1BB8B8EA, 0x92A22EDD, 0x71109ECE, 0xC5FD8F40, 0x0EEE588E} } } } ;
32452 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3869 a000");
32453 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3870 a001");
32454 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3871 a010");
32455 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3872 a011");
32456 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3873 a100");
32457 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3874 a101");
32458 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3875 a110");
32459 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3876 a111");
32460 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3877 a200");
32461 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3878 a201");
32462 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3879 a210");
32463 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3880 a211");
32466 static const fp12_t var_a = { { { {0x9BFC5743, 0x41E52B1E, 0xF77F0F75, 0xF3475502, 0x0C502C00},
32467 {0x784778E3, 0x27CFD5F7, 0x2324E1EB, 0x1C60E604, 0x0CB72159} } ,
32468 { {0x7A6C08FD, 0xD0777BF2, 0x878C12E4, 0x291A6B47, 0x047084DE},
32469 {0x6B236AA9, 0x171BEE99, 0x0240FF79, 0x8F41EFC2, 0x07388D5E} } } ,
32470 { { {0x31F27073, 0x7A004DE2, 0xD4EA0B48, 0xF4131611, 0x03342791},
32471 {0xC3A3FEEF, 0x93CAA847, 0x0BDB89F8, 0x27AC2427, 0x1B96BA79} } ,
32472 { {0x1BDEA886, 0xB035879B, 0x93CB7736, 0xDF30D27C, 0x17F30FFE},
32473 {0xBF692EC2, 0x30A23E7C, 0xCC7F6A3C, 0x2A73A008, 0x1B1F5A7A} } } ,
32474 { { {0xD534CDCF, 0xAB09BD0B, 0x7B176552, 0x612707B1, 0x0E76BB10},
32475 {0x43F8482C, 0x2353114D, 0xB3A8C53B, 0x010D80A7, 0x02F63EEB} } ,
32476 { {0x4EC5F0CF, 0x3EFE1E6F, 0xB6A334A9, 0xDA52EB24, 0x164F6D82},
32477 {0x13C89FDE, 0x42A1D725, 0x55C39A1B, 0x42E627F0, 0x13F02B20} } } } ;
32478 static const fp12_t var_expected = { { { {0x37F8AE86, 0x83CA563D, 0xEEFE1EEA, 0xE68EAA05, 0x18A05801},
32479 {0xF08EF1C6, 0x4F9FABEE, 0x4649C3D6, 0x38C1CC08, 0x196E42B2} } ,
32480 { {0xF4D811FA, 0xA0EEF7E4, 0x0F1825C9, 0x5234D68F, 0x08E109BC},
32481 {0xD646D552, 0x2E37DD32, 0x0481FEF2, 0x1E83DF84, 0x0E711ABD} } } ,
32482 { { {0x63E4E0E6, 0xF4009BC4, 0xA9D41690, 0xE8262C23, 0x06684F23},
32483 {0x3AF7AB83, 0x0967FBEF, 0xDE6C5353, 0xA001EC67, 0x132C54EE} } ,
32484 { {0xEB6CFEB1, 0x423DBA95, 0xEE4C2DCF, 0x0F0B4912, 0x0BE4FFFA},
32485 {0x32820B29, 0x43172859, 0x5FB413DA, 0xA590E42B, 0x123D94F0} } } ,
32486 { { {0xAA699B9E, 0x56137A17, 0xF62ECAA5, 0xC24E0F62, 0x1CED7620},
32487 {0x87F09058, 0x46A6229A, 0x67518A76, 0x021B014F, 0x05EC7DD6} } ,
32488 { {0x513B8F43, 0x5FCEE83E, 0x33FBA8B4, 0x054F7A63, 0x089DBB02},
32489 {0xDB40ED61, 0x671659A9, 0x723C7398, 0xD675F3FA, 0x03DF363C} } } } ;
32491 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3881 a000");
32492 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3882 a001");
32493 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3883 a010");
32494 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3884 a011");
32495 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3885 a100");
32496 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3886 a101");
32497 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3887 a110");
32498 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3888 a111");
32499 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3889 a200");
32500 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3890 a201");
32501 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3891 a210");
32502 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3892 a211");
32505 static const fp12_t var_a = { { { {0xCD27E3A8, 0xFA2AE558, 0x7AD630E2, 0x33FD30B9, 0x082DC347},
32506 {0xDFE67140, 0x17CD388A, 0xADD89E4E, 0x2D57CB1E, 0x0E516EFE} } ,
32507 { {0x6BAEB513, 0xCFE222D6, 0x8F3CFA95, 0x233ACF1F, 0x1C662A85},
32508 {0x0CBE28E6, 0xB24C0516, 0x4CA5CF52, 0x66FC8B4D, 0x1722A903} } } ,
32509 { { {0xABEDDEAD, 0x2D927E00, 0xD9C4AC7C, 0x68737369, 0x09C901BD},
32510 {0xF8D58A4E, 0x4CAE40F0, 0xF33C0A5A, 0xA3CFF8B3, 0x09988860} } ,
32511 { {0x23F9FAB5, 0x076B8809, 0x44B56298, 0x07E368B8, 0x07E00F4F},
32512 {0x74121F5C, 0x67229BFA, 0x571889D2, 0x14E98821, 0x0F52BD06} } } ,
32513 { { {0x7618DFC5, 0x659D0A95, 0xFE52F044, 0xB2F69471, 0x20C5E7B5},
32514 {0x3FD205AC, 0xB2AE5EA3, 0x0A8B7219, 0x12FCF64D, 0x08B80AE2} } ,
32515 { {0xB9DD3A7D, 0x5CDEB75F, 0x6A10CD7E, 0xBA8E5952, 0x21985040},
32516 {0x8D12A61E, 0xE92C6B59, 0x8D33024E, 0x2D341393, 0x1787A415} } } } ;
32517 static const fp12_t var_expected = { { { {0x9A4FC750, 0xF455CAB1, 0xF5AC61C5, 0x67FA6172, 0x105B868E},
32518 {0xBFCCE280, 0x2F9A7115, 0x5BB13C9C, 0x5AAF963D, 0x1CA2DDFC} } ,
32519 { {0x8B0D17CB, 0x8196F10C, 0xE52F348D, 0x971F4258, 0x14CB3506},
32520 {0xCD2BFF71, 0x466AB58B, 0x6000DE07, 0x1EA2BAB4, 0x0A443203} } } ,
32521 { { {0x57DBBD5A, 0x5B24FC01, 0xB38958F8, 0xD0E6E6D3, 0x1392037A},
32522 {0xF1AB149C, 0x995C81E1, 0xE67814B4, 0x479FF167, 0x133110C1} } ,
32523 { {0x47F3F56A, 0x0ED71012, 0x896AC530, 0x0FC6D170, 0x0FC01E9E},
32524 {0xE8243EB8, 0xCE4537F4, 0xAE3113A4, 0x29D31042, 0x1EA57A0C} } } ,
32525 { { {0x9FE16D2F, 0xAD0CC08A, 0xC35B1FEA, 0xB696CCFD, 0x1D8AAF67},
32526 {0x7FA40B58, 0x655CBD46, 0x1516E433, 0x25F9EC9A, 0x117015C4} } ,
32527 { {0x276A229F, 0x9B901A1F, 0x9AD6DA5E, 0xC5C656BE, 0x1F2F807D},
32528 {0xCDD4F9E1, 0xB42B8212, 0xE11B43FF, 0xAB11CB40, 0x0B0E2826} } } } ;
32530 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3893 a000");
32531 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3894 a001");
32532 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3895 a010");
32533 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3896 a011");
32534 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3897 a100");
32535 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3898 a101");
32536 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3899 a110");
32537 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3900 a111");
32538 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3901 a200");
32539 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3902 a201");
32540 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3903 a210");
32541 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3904 a211");
32544 static const fp12_t var_a = { { { {0xDBD9C957, 0xAF4E9768, 0xCC79A398, 0x57FECB1A, 0x1803E8D3},
32545 {0x868B25A5, 0xFBF66585, 0x783F8F70, 0x6794DDC3, 0x1B7F7B86} } ,
32546 { {0xF672C028, 0x605B3C80, 0x0781CB93, 0x3BFCA82C, 0x1A583708},
32547 {0xA0C8A45E, 0x3A50132E, 0x8D1A46F9, 0x18C87044, 0x00BDF870} } } ,
32548 { { {0x4BE73E4D, 0xD70428D2, 0x5E2DA870, 0x2905E5F1, 0x0769B296},
32549 {0x21771DA9, 0xCDA5D66D, 0x9F449303, 0x62EB3E57, 0x0469265B} } ,
32550 { {0x9DD53AED, 0x71AD5E97, 0x4AB0B770, 0x9404FB4F, 0x1148980D},
32551 {0x88562EC1, 0x9A476797, 0x7B49C22E, 0xFD0A8CA3, 0x21115670} } } ,
32552 { { {0x3B808482, 0x818119D7, 0x021F0565, 0xBE7155F6, 0x123488B2},
32553 {0x0578808D, 0x146E27F1, 0x53EF0FF8, 0x39D9A756, 0x0D1E2AAA} } ,
32554 { {0xEE6488E5, 0x877C3DA4, 0x193C77D6, 0x3E8BC355, 0x0C12AE5B},
32555 {0xF5A38299, 0xB6B8D4DC, 0xBBE34E3F, 0x79ECEAB5, 0x186FB304} } } } ;
32556 static const fp12_t var_expected = { { { {0x6B634053, 0x406FDA31, 0x5FA88693, 0x00A73A4F, 0x0C06B1A3},
32557 {0xC0C5F8EF, 0xD9BF766A, 0xB7345E43, 0x1FD35FA0, 0x12FDD709} } ,
32558 { {0xA0952DF5, 0xA2892461, 0xD5B8D688, 0xC8A2F471, 0x10AF4E0C},
32559 {0x419148BC, 0x74A0265D, 0x1A348DF2, 0x3190E089, 0x017BF0E0} } } ,
32560 { { {0x97CE7C9A, 0xAE0851A4, 0xBC5B50E1, 0x520BCBE2, 0x0ED3652C},
32561 {0x42EE3B52, 0x9B4BACDA, 0x3E892607, 0xC5D67CAF, 0x08D24CB6} } ,
32562 { {0x3BAA75DA, 0xE35ABD2F, 0x95616EE0, 0x2809F69E, 0x2291301B},
32563 {0xC45C0B27, 0x16617A8E, 0xBD48C3BF, 0x4ABEBD60, 0x1E218CDE} } } ,
32564 { { {0x2AB0B6A9, 0xE4D4DF0E, 0xCAF34A2C, 0xCD8C5005, 0x0067F161},
32565 {0x0AF1011A, 0x28DC4FE2, 0xA7DE1FF0, 0x73B34EAC, 0x1A3C5554} } ,
32566 { {0xDCC911CA, 0x0EF87B49, 0x3278EFAD, 0x7D1786AA, 0x18255CB6},
32567 {0x9EF6B2D7, 0x4F445519, 0x3E7BDBE1, 0x44837985, 0x0CDE4605} } } } ;
32569 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3905 a000");
32570 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3906 a001");
32571 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3907 a010");
32572 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3908 a011");
32573 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3909 a100");
32574 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3910 a101");
32575 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3911 a110");
32576 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3912 a111");
32577 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3913 a200");
32578 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3914 a201");
32579 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3915 a210");
32580 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3916 a211");
32583 static const fp12_t var_a = { { { {0xA0B31E19, 0x3B7E5F4C, 0x70106D6B, 0x595D242B, 0x169B1291},
32584 {0x2FD2686E, 0xA4E2E06D, 0xA559F704, 0x6ADFD534, 0x1D3B7799} } ,
32585 { {0x861F926E, 0x633C6B6A, 0x7365FC9D, 0x3AEE2CDC, 0x198780D4},
32586 {0x761C57F1, 0xF1838792, 0x79FDC8E8, 0x58FB2081, 0x20F8F904} } } ,
32587 { { {0xDFC267A5, 0x8B69D7F7, 0x597193D9, 0xB98A8DBC, 0x1EFE6BF9},
32588 {0x4BA3AC6B, 0x5C7AD59A, 0x28EEBC7E, 0xD740CE12, 0x0EE2DA61} } ,
32589 { {0x244324C1, 0x8DFD1680, 0xD56043C9, 0x18EA9DA6, 0x2379DDE9},
32590 {0x4C9A74E7, 0x804954AD, 0x283BF673, 0x455B74DE, 0x17955778} } } ,
32591 { { {0x6961D5E8, 0x5D979E41, 0x18076115, 0x25069A09, 0x02086907},
32592 {0xFD6327E9, 0xBEC8A956, 0x964A4F1A, 0xC180749F, 0x04134C68} } ,
32593 { {0x84643FCD, 0xFF7551CE, 0xBA75B164, 0xA810E7D2, 0x14288ACF},
32594 {0x317BD1CE, 0x11B2207A, 0xB09A565E, 0x0E629765, 0x14CD7DBF} } } } ;
32595 static const fp12_t var_expected = { { { {0xF515E9D7, 0x58CF69F8, 0xA6D61A38, 0x0363EC70, 0x0935051F},
32596 {0x13547E81, 0x2B986C3A, 0x11692D6B, 0x26694E83, 0x1675CF2F} } ,
32597 { {0xBFEED281, 0xA84B8234, 0xAD81389C, 0xC685FDD2, 0x0F0DE1A4},
32598 {0x9FE85D87, 0xC4D9BA84, 0xBAB0D133, 0x029FE51C, 0x1DF0D205} } } ,
32599 { { {0x73347CEF, 0xF8A65B4F, 0x79986714, 0xC3BEBF92, 0x19FBB7EF},
32600 {0x974758D6, 0xB8F5AB34, 0x51DD78FC, 0xAE819C24, 0x1DC5B4C3} } ,
32601 { {0xFC35F727, 0xFDCCD85F, 0x7175C6F4, 0x827EDF67, 0x22F29BCE},
32602 {0x4CE49773, 0xE26554BA, 0x172D2C48, 0xDB608DD6, 0x0B298EEC} } } ,
32603 { { {0xD2C3ABD0, 0xBB2F3C82, 0x300EC22A, 0x4A0D3412, 0x0410D20E},
32604 {0xFAC64FD2, 0x7D9152AD, 0x2C949E35, 0x8300E93F, 0x082698D1} } ,
32605 { {0xBC782D3F, 0xE0BD4EFC, 0x3BA0A22B, 0xA0CB73BF, 0x044FF59B},
32606 {0x16A75141, 0x0536EC54, 0x27E9EC1E, 0x6D6ED2E5, 0x0599DB7A} } } } ;
32608 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3917 a000");
32609 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3918 a001");
32610 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3919 a010");
32611 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3920 a011");
32612 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3921 a100");
32613 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3922 a101");
32614 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3923 a110");
32615 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3924 a111");
32616 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3925 a200");
32617 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3926 a201");
32618 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3927 a210");
32619 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3928 a211");
32622 static const fp12_t var_a = { { { {0xC66288B8, 0xD487D461, 0x00046775, 0xC47F302B, 0x01BC9ED8},
32623 {0x2962E98D, 0xE0BBBB45, 0x6B4F64B7, 0xA47EF3BE, 0x01FD4F77} } ,
32624 { {0xEA90C76A, 0x5CA081B7, 0x6BB16308, 0xDA6ECAF3, 0x1CE9E5BE},
32625 {0x3C4BDB40, 0x44D3EA17, 0xAA67856D, 0xE4AFFCE4, 0x0847771B} } } ,
32626 { { {0x0FACD8D9, 0x521A917D, 0xC3D1844D, 0xDBB77ADD, 0x0FFC46D4},
32627 {0xE7C13948, 0x95F310E4, 0xA8F91838, 0x19F73029, 0x141B6FA0} } ,
32628 { {0x8712E8FE, 0x4BCA8128, 0x12E36568, 0x72D59D0E, 0x1DA4FDA1},
32629 {0xB6EEFFBB, 0x0DCBFD9A, 0x72C7A910, 0x7BF37C8C, 0x17FCFCF0} } } ,
32630 { { {0x1C3723EF, 0x82099F69, 0x08474D0D, 0x76EFFFF0, 0x0002FDD9},
32631 {0xAE4FCB6F, 0xC76A4E51, 0xBF9CFE46, 0x8FF2F2B7, 0x0252DA59} } ,
32632 { {0x6D5A334B, 0x35E47D80, 0x34F919C8, 0xBEC19D10, 0x10C0E8ED},
32633 {0xC8DF0107, 0x58096298, 0xD0DBDE82, 0x0228C526, 0x1D050D11} } } } ;
32634 static const fp12_t var_expected = { { { {0x8CC51170, 0xA90FA8C3, 0x0008CEEB, 0x88FE6056, 0x03793DB1},
32635 {0x52C5D31A, 0xC177768A, 0xD69EC96F, 0x48FDE77C, 0x03FA9EEF} } ,
32636 { {0x88D13C79, 0x9B13AECF, 0x9E180572, 0x05873A00, 0x15D2AB7A},
32637 {0x7897B680, 0x89A7D42E, 0x54CF0ADA, 0xC95FF9C9, 0x108EEE37} } } ,
32638 { { {0x1F59B1B2, 0xA43522FA, 0x87A3089A, 0xB76EF5BB, 0x1FF88DA9},
32639 {0x83322035, 0x0DB8CD29, 0x18A76FD3, 0x8498046D, 0x0435BF3C} } ,
32640 { {0xC1D57FA1, 0x7967ADB0, 0xEC7C0A32, 0x3654DE35, 0x1748DB3F},
32641 {0x218DAD1B, 0xFD6AA695, 0xAC449181, 0x48909D32, 0x0BF8D9DD} } } ,
32642 { { {0x386E47DE, 0x04133ED2, 0x108E9A1B, 0xEDDFFFE0, 0x0005FBB2},
32643 {0x5C9F96DE, 0x8ED49CA3, 0x7F39FC8D, 0x1FE5E56F, 0x04A5B4B3} } ,
32644 { {0xDAB46696, 0x6BC8FB00, 0x69F23390, 0x7D833A20, 0x2181D1DB},
32645 {0x456DAFB3, 0x91E57091, 0x686CFC66, 0x54FB2E67, 0x1608FA1E} } } } ;
32647 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3929 a000");
32648 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3930 a001");
32649 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3931 a010");
32650 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3932 a011");
32651 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3933 a100");
32652 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3934 a101");
32653 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3935 a110");
32654 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3936 a111");
32655 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3937 a200");
32656 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3938 a201");
32657 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3939 a210");
32658 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3940 a211");
32661 static const fp12_t var_a = { { { {0x80C09BC3, 0x0BE0EFC2, 0x517F76EA, 0xA28C8D8B, 0x164C38C5},
32662 {0x114A397E, 0x78A9B8BD, 0x3F02BEFB, 0x55DC5572, 0x1337ABC9} } ,
32663 { {0xAE62136B, 0x62467329, 0xF0192CE0, 0xB05C1DDC, 0x18CCF7C4},
32664 {0x8D2CFAE1, 0x3BB72444, 0xAEF08797, 0x8B49079B, 0x1E0C8651} } } ,
32665 { { {0x6E36220E, 0xEAEEB4CF, 0x6EA56CED, 0x04A58AE6, 0x14856B9F},
32666 {0xD7BDFB93, 0x068308CB, 0x58A0BEBB, 0xBBDE2DA2, 0x1C141A13} } ,
32667 { {0xB0670022, 0x1A32F812, 0x591309B8, 0xB1910405, 0x0A40DE87},
32668 {0xD45388C1, 0x8FDCA198, 0xD8D2117E, 0xBA127E9C, 0x02593C54} } } ,
32669 { { {0x92F79D2B, 0xB8C7A29C, 0xBD0E03B5, 0x2D673C8E, 0x033742A8},
32670 {0x164BCFE1, 0x26FF2118, 0xF9B19089, 0x6DBD55B5, 0x1598F70A} } ,
32671 { {0x665180ED, 0xFBF15842, 0xF4ED6213, 0x056D1A96, 0x118E57AF},
32672 {0x0E8AA999, 0xC08B534A, 0x477FF849, 0x05EE83F8, 0x13E06F8E} } } } ;
32673 static const fp12_t var_expected = { { { {0xB530E52B, 0xF9948AE4, 0x69B42D35, 0x95C2BF30, 0x08975187},
32674 {0xD64420A1, 0xD3261CD9, 0x44BABD58, 0xFC624EFE, 0x026E378E} } ,
32675 { {0x1073D47B, 0xA65F91B3, 0xA6E79922, 0xB161DFD3, 0x0D98CF85},
32676 {0xCE09A367, 0x5940F3E8, 0x24964E90, 0x673BB351, 0x1817EC9F} } } ,
32677 { { {0x901BF1C1, 0xB7B014FE, 0xA400193D, 0x59F4B9E6, 0x0509B73A},
32678 {0x632BA4CB, 0xEED8BCF7, 0x77F6BCD7, 0xC865FF5E, 0x14271423} } ,
32679 { {0x60CE0044, 0x3465F025, 0xB2261370, 0x6322080A, 0x1481BD0F},
32680 {0xA8A71182, 0x1FB94331, 0xB1A422FD, 0x7424FD39, 0x04B278A9} } } ,
32681 { { {0x25EF3A56, 0x718F4539, 0x7A1C076B, 0x5ACE791D, 0x066E8550},
32682 {0xE0474D67, 0x2FD0ED8F, 0xBA186074, 0x2C244F85, 0x0730CE11} } ,
32683 { {0xCCA301DA, 0xF7E2B084, 0xE9DAC427, 0x0ADA352D, 0x231CAF5E},
32684 {0xD0C500D7, 0x62E951F3, 0x55B52FF5, 0x5C86AC0A, 0x03BFBF18} } } } ;
32686 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3941 a000");
32687 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3942 a001");
32688 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3943 a010");
32689 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3944 a011");
32690 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3945 a100");
32691 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3946 a101");
32692 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3947 a110");
32693 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3948 a111");
32694 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3949 a200");
32695 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3950 a201");
32696 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3951 a210");
32697 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3952 a211");
32700 static const fp12_t var_a = { { { {0xA47BE862, 0x55C612D7, 0x70E879BB, 0x28613A25, 0x1F0820DA},
32701 {0x9C65776F, 0x670AC487, 0x2419C6FA, 0x4C4DDA20, 0x0B250EE2} } ,
32702 { {0x0B150092, 0xF7BA965A, 0x4580B045, 0x35541266, 0x23D8919B},
32703 {0x63803FBA, 0xD705A3BD, 0xF9E3EE86, 0xECDB97EA, 0x0244044A} } } ,
32704 { { {0x0318E479, 0x2755D013, 0x054CB57A, 0xA42C13A4, 0x0F5480F7},
32705 {0x6A99FE30, 0x3C214CBA, 0x6EFF9E7F, 0x2DBEF7A3, 0x04190C68} } ,
32706 { {0x96FB98E0, 0x028D1D79, 0x7F28C60F, 0x42EE0C1C, 0x00E1C601},
32707 {0x1CF79935, 0x3165EACF, 0xFC1BF121, 0x1BC362EB, 0x20A32D8D} } } ,
32708 { { {0xE9E69FD5, 0x8FBA2EEA, 0xE55DE598, 0x462C9E49, 0x1D540580},
32709 {0xCB9CAB0B, 0x7B40ECDF, 0xC9611F14, 0xF16A843E, 0x0E47F5E0} } ,
32710 { {0x4AD38A99, 0xE280FFCF, 0xE6A632B3, 0xB9F1386D, 0x152BDE52},
32711 {0x1EB637D8, 0xC2238A79, 0xEEC91584, 0xD94A74AA, 0x1D0A159E} } } } ;
32712 static const fp12_t var_expected = { { { {0xFCA77E69, 0x8D5ED10E, 0xA88632D8, 0xA16C1864, 0x1A0F21B0},
32713 {0x38CAEEDE, 0xCE15890F, 0x48338DF4, 0x989BB440, 0x164A1DC4} } ,
32714 { {0xC9D9AEC9, 0xD147D813, 0x51B69FED, 0xBB51C8E6, 0x23B00332},
32715 {0xC7007F74, 0xAE0B477A, 0xF3C7DD0D, 0xD9B72FD5, 0x04880895} } } ,
32716 { { {0x0631C8F2, 0x4EABA026, 0x0A996AF4, 0x48582748, 0x1EA901EF},
32717 {0xD533FC60, 0x78429974, 0xDDFF3CFE, 0x5B7DEF46, 0x083218D0} } ,
32718 { {0x2DF731C0, 0x051A3AF3, 0xFE518C1E, 0x85DC1838, 0x01C38C02},
32719 {0xED9EE00F, 0x449E80FD, 0xBEED21A4, 0x883069F1, 0x1D453B16} } } ,
32720 { { {0x877CED4F, 0x01470935, 0x91710A93, 0xDD02E0AD, 0x16A6EAFC},
32721 {0x97395616, 0xF681D9BF, 0x92C23E28, 0xE2D5087D, 0x1C8FEBC1} } ,
32722 { {0x4956C2D7, 0xA6D4AAFE, 0x9401A4C9, 0xC48C14F5, 0x06569CA1},
32723 {0xF11C1D55, 0x6619C051, 0xA4476A6B, 0x033E8D6F, 0x16130B3A} } } } ;
32725 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3953 a000");
32726 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3954 a001");
32727 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3955 a010");
32728 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3956 a011");
32729 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3957 a100");
32730 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3958 a101");
32731 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3959 a110");
32732 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3960 a111");
32733 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3961 a200");
32734 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3962 a201");
32735 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3963 a210");
32736 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3964 a211");
32739 static const fp12_t var_a = { { { {0x05FA7FA4, 0x712E7780, 0xB2E0C417, 0x9E00D058, 0x04714A7A},
32740 {0x0C33F5E4, 0x98D3DD8C, 0x043F2E40, 0x3FD500E3, 0x0F627F25} } ,
32741 { {0xF31B2D15, 0xC51FA690, 0x76BAAA90, 0x0D2950CB, 0x1FC7783A},
32742 {0xCF29F0A8, 0xB8AC658B, 0x07F8C2E7, 0x7C14F23E, 0x239CF664} } } ,
32743 { { {0xE3302F95, 0xD617690C, 0xFCAC25FF, 0x695CD031, 0x1E2F6599},
32744 {0x5E5F76AA, 0x4E8580C3, 0xD0C8F8AF, 0xF7F3D99C, 0x114E62F7} } ,
32745 { {0xC52FEF4C, 0xD01E2C91, 0x9C63E129, 0x74552668, 0x0151A37B},
32746 {0x1E8E6DA9, 0x18CA62FD, 0xAAE02CC2, 0x2CDCBDA3, 0x147A1CAD} } } ,
32747 { { {0x71118AC2, 0x8E368D61, 0x561D3B7A, 0xD1B85E11, 0x04EACCA8},
32748 {0x89F74E05, 0xD876BDB0, 0xDD67BD67, 0x76DA03B7, 0x16DD11EE} } ,
32749 { {0x5C5B3067, 0x79AD24DE, 0x07CDF02E, 0xAF28C6E0, 0x0B347675},
32750 {0x6861E5BB, 0xFEFB3107, 0xBAF738DA, 0xC5229E11, 0x14B35E04} } } } ;
32751 static const fp12_t var_expected = { { { {0x0BF4FF48, 0xE25CEF00, 0x65C1882E, 0x3C01A0B1, 0x08E294F5},
32752 {0x1867EBC8, 0x31A7BB18, 0x087E5C81, 0x7FAA01C6, 0x1EC4FE4A} } ,
32753 { {0x99E607CF, 0x6C11F881, 0xB42A9483, 0x6AFC45B0, 0x1B8DD070},
32754 {0x52038EF5, 0x532B7677, 0xD6A6C531, 0x48D38895, 0x2338CCC5} } } ,
32755 { { {0x7A100CCF, 0x8E017D79, 0xC00D8B61, 0x2363447D, 0x185DAB2F},
32756 {0xBCBEED54, 0x9D0B0186, 0xA191F15E, 0xEFE7B339, 0x229CC5EF} } ,
32757 { {0x8A5FDE98, 0xA03C5923, 0x38C7C253, 0xE8AA4CD1, 0x02A346F6},
32758 {0xF0CC88F7, 0x13677159, 0x1C7598E6, 0xAA631F61, 0x04F31956} } } ,
32759 { { {0xE2231584, 0x1C6D1AC2, 0xAC3A76F5, 0xA370BC22, 0x09D59951},
32760 {0xC79E49AF, 0x92C026C0, 0x8184BA31, 0x3E5DAB89, 0x09B903D9} } ,
32761 { {0xB8B660CE, 0xF35A49BC, 0x0F9BE05C, 0x5E518DC0, 0x1668ECEB},
32762 {0x8473791B, 0xDFC90D6E, 0x3CA3B117, 0xDAEEE03D, 0x05659C05} } } } ;
32764 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3965 a000");
32765 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3966 a001");
32766 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3967 a010");
32767 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3968 a011");
32768 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3969 a100");
32769 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3970 a101");
32770 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3971 a110");
32771 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3972 a111");
32772 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3973 a200");
32773 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3974 a201");
32774 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3975 a210");
32775 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3976 a211");
32778 static const fp12_t var_a = { { { {0x0D84340D, 0x546799F5, 0x275D048D, 0x78F56B23, 0x008DE196},
32779 {0x29996700, 0x8B6D491C, 0x41E6421F, 0x5B9D5DD9, 0x1EC304F8} } ,
32780 { {0x742BF9D1, 0xAC4B9DE2, 0xA90A0A71, 0xF6949F9F, 0x093BB117},
32781 {0xFA3BAC62, 0x3274CFD5, 0x02E1845B, 0x8FE60B25, 0x0480D903} } } ,
32782 { { {0xE7E27ECA, 0x83E5B7E0, 0xCC108CEF, 0x5E276E34, 0x1A6CFDF1},
32783 {0xB0E8A32B, 0xBD9EA550, 0xB6643914, 0xD5EC4132, 0x1D7986E9} } ,
32784 { {0x21C5186C, 0x98266E43, 0xE00C74B3, 0xF2364859, 0x1B1EF47A},
32785 {0x56E07BE5, 0x6EAD753B, 0x1DDE4101, 0xE965D7B2, 0x08F3D846} } } ,
32786 { { {0xB704837D, 0x661638A6, 0xF9D283D5, 0xFED86638, 0x0687476B},
32787 {0x072CAF3C, 0x099AD33F, 0x26314D66, 0x77C7C51F, 0x23E50EF6} } ,
32788 { {0xBCCC4E8D, 0xA083D447, 0x68F1713A, 0xA60D984E, 0x22F3BFC4},
32789 {0xA61E0289, 0x690DC3FF, 0xF981BB0B, 0x9DD13DEC, 0x00C489A4} } } } ;
32790 static const fp12_t var_expected = { { { {0x1B08681A, 0xA8CF33EA, 0x4EBA091A, 0xF1EAD646, 0x011BC32C},
32791 {0x06E27BA5, 0xF8AD3D98, 0x4A81C3A0, 0x07E45FCC, 0x1984E9ED} } ,
32792 { {0xE857F3A2, 0x58973BC4, 0x521414E3, 0xED293F3F, 0x1277622F},
32793 {0xF47758C4, 0x64E99FAB, 0x05C308B6, 0x1FCC164A, 0x0901B207} } } ,
32794 { { {0x8374AB39, 0xE99E1B21, 0x5ED65940, 0x0CF88083, 0x10D8DBDF},
32795 {0x1580F3FB, 0x5D0FF601, 0x337DB18B, 0xFC82267F, 0x16F1EDCF} } ,
32796 { {0xF739DE7D, 0x121F87E5, 0x86CE28C9, 0x351634CD, 0x123CC8F2},
32797 {0xADC0F7CA, 0xDD5AEA76, 0x3BBC8202, 0xD2CBAF64, 0x11E7B08D} } } ,
32798 { { {0x6E0906FA, 0xCC2C714D, 0xF3A507AA, 0xFDB0CC71, 0x0D0E8ED7},
32799 {0xC2090C1D, 0xF50851DD, 0x1317DA2D, 0x40392E58, 0x23C8FDE9} } ,
32800 { {0x2D484ABF, 0x22DA53EF, 0x989821D7, 0x9CC4D4B6, 0x21E65F85},
32801 {0x4C3C0512, 0xD21B87FF, 0xF3037616, 0x3BA27BD9, 0x01891349} } } } ;
32803 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3977 a000");
32804 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3978 a001");
32805 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3979 a010");
32806 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3980 a011");
32807 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3981 a100");
32808 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3982 a101");
32809 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3983 a110");
32810 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3984 a111");
32811 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3985 a200");
32812 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3986 a201");
32813 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3987 a210");
32814 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 3988 a211");
32817 static const fp12_t var_a = { { { {0x806B9F0D, 0xBBA99DB7, 0x16DD0E86, 0xC5426E41, 0x197A96E9},
32818 {0xFABA7806, 0x3E199181, 0x1B78F535, 0x9A8B9164, 0x0531ACE6} } ,
32819 { {0x842278E2, 0xBD51A313, 0x019FC838, 0xED0EF14E, 0x18D54C57},
32820 {0x00FB8F41, 0xA639E48E, 0xA4EB0E73, 0xE8D87454, 0x09B41434} } } ,
32821 { { {0x0FEAB662, 0x825B35E9, 0x4F5A07D6, 0xE246AA28, 0x0DE06574},
32822 {0x32F27BBE, 0x7A3ABED8, 0xAECFC121, 0x112E3D99, 0x12C525B5} } ,
32823 { {0xC967294B, 0x1A9B52DE, 0xF3FA24E1, 0x8467217C, 0x07077085},
32824 {0xC771D700, 0x20816952, 0x59D5BD24, 0xA8D5EE79, 0x03016317} } } ,
32825 { { {0x161DF830, 0xDC5ADA61, 0xC1088FA2, 0xCEC68310, 0x235AA3A9},
32826 {0xD0A6B520, 0x8692330B, 0x389AFCA2, 0x60904D78, 0x168939C9} } ,
32827 { {0x15E923E8, 0xCAFCF2D1, 0x2616E59D, 0x8F27CD29, 0x1FE894EE},
32828 {0x08F63C5E, 0x7D7B6ADB, 0xC62668BB, 0x8C4387C3, 0x038F67A7} } } } ;
32829 static const fp12_t var_expected = { { { {0xB486EBBF, 0x5925E6CE, 0xF46F5C6F, 0xDB2E809B, 0x0EF40DCF},
32830 {0xF574F00C, 0x7C332303, 0x36F1EA6A, 0x351722C8, 0x0A6359CD} } ,
32831 { {0xBBF49F69, 0x5C75F186, 0xC9F4CFD3, 0x2AC786B5, 0x0DA978AC},
32832 {0x01F71E82, 0x4C73C91C, 0x49D61CE7, 0xD1B0E8A9, 0x13682869} } } ,
32833 { { {0x1FD56CC4, 0x04B66BD2, 0x9EB40FAD, 0xC48D5450, 0x1BC0CAE9},
32834 {0x1994A521, 0xD6482910, 0x2454C1A4, 0x73061F4D, 0x01892B66} } ,
32835 { {0x92CE5296, 0x3536A5BD, 0xE7F449C2, 0x08CE42F9, 0x0E0EE10B},
32836 {0x8EE3AE00, 0x4102D2A5, 0xB3AB7A48, 0x51ABDCF2, 0x0602C62F} } } ,
32837 { { {0xDFEB9E05, 0x9A886021, 0x48C65EA7, 0xEE36AA3B, 0x22B4274F},
32838 {0x54FD17E5, 0xEEF71177, 0x37EB38A6, 0x11CA3F0A, 0x0911538F} } ,
32839 { {0xDF81F575, 0x77CC9101, 0x12E30A9D, 0x6EF93E6C, 0x1BD009D9},
32840 {0x11EC78BC, 0xFAF6D5B6, 0x8C4CD176, 0x18870F87, 0x071ECF4F} } } } ;
32842 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 3989 a000");
32843 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 3990 a001");
32844 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 3991 a010");
32845 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 3992 a011");
32846 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 3993 a100");
32847 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 3994 a101");
32848 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 3995 a110");
32849 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 3996 a111");
32850 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 3997 a200");
32851 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 3998 a201");
32852 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 3999 a210");
32853 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4000 a211");
32856 static const fp12_t var_a = { { { {0x56A97DD7, 0x73DAA104, 0x8DABC2ED, 0xB636BBE2, 0x1BEB30CF},
32857 {0x5A4CC8D3, 0x56825DBB, 0x5CBC53D7, 0x12C007EC, 0x11E16055} } ,
32858 { {0x03691571, 0x711DDE57, 0xD8B9AE66, 0x86177C4B, 0x1D086D2F},
32859 {0x4C0FC0F6, 0xEB73E465, 0x8958348B, 0x28A212BE, 0x03328AE2} } } ,
32860 { { {0x96BC39CE, 0x0011D492, 0xB2A7BC23, 0x24E4A136, 0x02B4E5F8},
32861 {0xDA8013D5, 0x613B4DEF, 0xB85E034B, 0x38609925, 0x23B3FCA3} } ,
32862 { {0xE0871666, 0x309E3380, 0x3601BC3F, 0xAF87E9FF, 0x0EAF6D09},
32863 {0x0CB49AB4, 0x5A0BD8FA, 0xAD2538A1, 0xFD3680A4, 0x0D7596BE} } } ,
32864 { { {0x43DBF43C, 0x595B5B5D, 0xDA6B7F2D, 0xCA816E9E, 0x13449E1A},
32865 {0x6EA0A06C, 0x74C09A53, 0xC27EC0FD, 0xB6DF546A, 0x1E0258BA} } ,
32866 { {0xEC8E9159, 0x65AAD76D, 0x689EA738, 0x88128B16, 0x152A2CA3},
32867 {0x97F30378, 0x4702B724, 0x4FAC71C0, 0x42F7F736, 0x20AD3A6A} } } } ;
32868 static const fp12_t var_expected = { { { {0x6102A953, 0xC987ED68, 0xE20CC53C, 0xBD171BDE, 0x13D5419B},
32869 {0xB49991A6, 0xAD04BB76, 0xB978A7AE, 0x25800FD8, 0x23C2C0AA} } ,
32870 { {0xBA81D887, 0xC40E680D, 0x78289C2E, 0x5CD89CB1, 0x160FBA5B},
32871 {0x981F81EC, 0xD6E7C8CA, 0x12B06917, 0x5144257D, 0x066515C4} } } ,
32872 { { {0x2D78739C, 0x0023A925, 0x654F7846, 0x49C9426D, 0x0569CBF0},
32873 {0x68AFD54F, 0xA449473F, 0x377145F8, 0xC16AD665, 0x2366D942} } ,
32874 { {0xC10E2CCC, 0x613C6701, 0x6C03787E, 0x5F0FD3FE, 0x1D5EDA13},
32875 {0x19693568, 0xB417B1F4, 0x5A4A7142, 0xFA6D0149, 0x1AEB2D7D} } } ,
32876 { { {0x3B67961D, 0x9489621A, 0x7B8C3DBC, 0xE5AC8157, 0x02881C31},
32877 {0x90F0EE7D, 0xCB53E006, 0x4BB2C15C, 0xBE684CEF, 0x18039171} } ,
32878 { {0x8CCCD057, 0xAD285A3B, 0x97F28DD2, 0x60CEBA46, 0x06533943},
32879 {0xE395B495, 0x6FD819A8, 0x660E22E2, 0xD6999286, 0x1D5954D0} } } } ;
32881 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4001 a000");
32882 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4002 a001");
32883 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4003 a010");
32884 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4004 a011");
32885 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4005 a100");
32886 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4006 a101");
32887 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4007 a110");
32888 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4008 a111");
32889 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4009 a200");
32890 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4010 a201");
32891 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4011 a210");
32892 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4012 a211");
32895 static const fp12_t var_a = { { { {0x78024544, 0x5E7884DF, 0xE7D2A5E2, 0xAFA987E8, 0x12B2658B},
32896 {0xA1121860, 0xCB6855CF, 0x156F441D, 0xE944E68A, 0x0599E1C0} } ,
32897 { {0x725D5406, 0x468673FD, 0xF58FFBA8, 0x8C1C5BA3, 0x106B39A3},
32898 {0x427B7DEA, 0x73FBE1DF, 0x08BBF9E7, 0x59305618, 0x0AF92E71} } } ,
32899 { { {0x85B4CE9F, 0xD07947D0, 0x521E1D9A, 0x4CD000CA, 0x07CC018D},
32900 {0x663C048B, 0xDAC69E37, 0x73A1E8C6, 0x99040E46, 0x1C7536AD} } ,
32901 { {0x9D4E8178, 0x942EC571, 0x6653AD08, 0x34D28A9D, 0x09BC20D1},
32902 {0x73A5F251, 0x8946CFB1, 0x5CB62591, 0x3606F0A9, 0x09D78EC9} } } ,
32903 { { {0x675C59AA, 0xEC5332A7, 0x9C90A7AE, 0x781A7D07, 0x1A8BC128},
32904 {0xEA30912C, 0x65668104, 0x4B1FB612, 0xAF7BA115, 0x20A5907F} } ,
32905 { {0x8630FCAA, 0x79F57F31, 0xA807B349, 0xEA5D9A9F, 0x18BA4E90},
32906 {0x08CE6B2A, 0x33E832C7, 0x5EE6B19F, 0xAD42F8BE, 0x01338412} } } } ;
32907 static const fp12_t var_expected = { { { {0xA3B4382D, 0x9EC3B51E, 0x965A8B26, 0xAFFCB3EB, 0x0163AB13},
32908 {0x422430C0, 0x96D0AB9F, 0x2ADE883B, 0xD289CD14, 0x0B33C381} } ,
32909 { {0xE4BAA80C, 0x8D0CE7FA, 0xEB1FF750, 0x1838B747, 0x20D67347},
32910 {0x84F6FBD4, 0xE7F7C3BE, 0x1177F3CE, 0xB260AC30, 0x15F25CE2} } } ,
32911 { { {0x0B699D3E, 0xA0F28FA1, 0xA43C3B35, 0x99A00194, 0x0F98031A},
32912 {0x8027B6BB, 0x975FE7CE, 0xADF910EF, 0x82B1C0A6, 0x14E94D57} } ,
32913 { {0x3A9D02F0, 0x285D8AE3, 0xCCA75A11, 0x69A5153A, 0x137841A2},
32914 {0xE74BE4A2, 0x128D9F62, 0xB96C4B23, 0x6C0DE152, 0x13AF1D92} } } ,
32915 { { {0x826860F9, 0xBA7910AE, 0xFFD68EBF, 0x40DE9E28, 0x1116624D},
32916 {0x8810CFFD, 0xAC9FAD69, 0x5CF4AB86, 0xAFA0E644, 0x1D4A00FB} } ,
32917 { {0xC011A6F9, 0xD5BDA9C2, 0x16C4A5F4, 0x2564D959, 0x0D737D1E},
32918 {0x119CD654, 0x67D0658E, 0xBDCD633E, 0x5A85F17C, 0x02670825} } } } ;
32920 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4013 a000");
32921 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4014 a001");
32922 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4015 a010");
32923 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4016 a011");
32924 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4017 a100");
32925 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4018 a101");
32926 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4019 a110");
32927 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4020 a111");
32928 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4021 a200");
32929 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4022 a201");
32930 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4023 a210");
32931 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4024 a211");
32934 static const fp12_t var_a = { { { {0x94856628, 0xEC5F4999, 0x0B255EB5, 0xDB20E8A2, 0x0A8A5647},
32935 {0xCEB2A3ED, 0xB49D62FB, 0xD105F3C0, 0xA0A49E57, 0x1864EE3A} } ,
32936 { {0x7FFC0309, 0x1A98D6E9, 0xBF0095D2, 0x2F48F8E1, 0x1EDEC0EA},
32937 {0xE80DF77C, 0x74FC67EA, 0xDFAAAAE9, 0x2ED3F408, 0x05D99C81} } } ,
32938 { { {0x1B8423B9, 0x566A9B5B, 0x3F964B57, 0x32ACBD69, 0x22F16935},
32939 {0x21AE97B2, 0xE2069B5B, 0xBB221BFB, 0x720D51F8, 0x1C84C6FE} } ,
32940 { {0x07D69723, 0x5CF2AB61, 0xAB3CBE3B, 0xFFBF9239, 0x1513E2CA},
32941 {0x07308E5E, 0xE4F34F2F, 0xBBAE6CE0, 0x269FDD62, 0x0AAE5FA1} } } ,
32942 { { {0x9C2FE636, 0x4E8C021F, 0xE320EA67, 0xBEC22543, 0x07E8BC03},
32943 {0x3E58C3AB, 0x5B72B19B, 0x3E7C1BFF, 0x12657DA6, 0x05CAEF21} } ,
32944 { {0x555D028E, 0xD86232CE, 0x6921A8A8, 0xD455EE8F, 0x234D14A6},
32945 {0x9DE3BA41, 0xF3CFE4DA, 0x9B396272, 0x570C15E1, 0x14F67852} } } } ;
32946 static const fp12_t var_expected = { { { {0x290ACC50, 0xD8BE9333, 0x164ABD6B, 0xB641D144, 0x1514AC8F},
32947 {0x5114F57F, 0x4B0D7157, 0x68C126E3, 0x91F2E0C9, 0x0CC8BC71} } ,
32948 { {0xB3A7B3B7, 0x17045932, 0x44B66B06, 0xAF3B95DD, 0x19BC61D0},
32949 {0xD01BEEF8, 0xE9F8CFD5, 0xBF5555D2, 0x5DA7E811, 0x0BB33902} } } ,
32950 { { {0xEAB7F517, 0x8EA7E215, 0x45E1D610, 0xB6031EEC, 0x21E1B266},
32951 {0xF70CDD09, 0xA5DFE215, 0x3CF97759, 0x34C4480B, 0x15086DF9} } ,
32952 { {0xC35CDBEB, 0x9BB80221, 0x1D2EBBD8, 0x5028C88D, 0x0626A592},
32953 {0x0E611CBC, 0xC9E69E5E, 0x775CD9C1, 0x4D3FBAC5, 0x155CBF42} } } ,
32954 { { {0x385FCC6C, 0x9D18043F, 0xC641D4CE, 0x7D844A87, 0x0FD17807},
32955 {0x7CB18756, 0xB6E56336, 0x7CF837FE, 0x24CAFB4C, 0x0B95DE42} } ,
32956 { {0x5E69B2C1, 0x929710FC, 0x98F890B3, 0xF9558138, 0x22990949},
32957 {0xEF772227, 0xC9727514, 0xFD280447, 0xFEC1CFDC, 0x05EBD0A0} } } } ;
32959 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_dbl 4025 a000");
32960 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_dbl 4026 a001");
32961 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_dbl 4027 a010");
32962 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_dbl 4028 a011");
32963 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_dbl 4029 a100");
32964 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_dbl 4030 a101");
32965 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_dbl 4031 a110");
32966 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_dbl 4032 a111");
32967 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_dbl 4033 a200");
32968 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_dbl 4034 a201");
32969 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_dbl 4035 a210");
32970 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_dbl 4036 a211");
32973 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32974 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } ,
32975 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32976 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
32977 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32978 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
32979 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32980 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
32981 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32982 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
32983 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32984 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } } } ;
32985 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32986 {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D} } ,
32987 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32988 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
32989 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32990 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
32991 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32992 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
32993 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
32994 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
32995 { {0x17D8B103, 0xE35BEE1C, 0xDEFC99AA, 0xD22637CD, 0x16BDD032},
32996 {0x17D8B103, 0xE35BEE1C, 0xDEFC99AA, 0xD22637CD, 0x16BDD032} } } } ;
32998 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4037 a000");
32999 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4038 a001");
33000 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4039 a010");
33001 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4040 a011");
33002 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4041 a100");
33003 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4042 a101");
33004 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4043 a110");
33005 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4044 a111");
33006 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4045 a200");
33007 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4046 a201");
33008 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4047 a210");
33009 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4048 a211");
33012 static const fp12_t var_a = { { { {0x638D9649, 0x37856A26, 0xF79545EC, 0xAE40CF14, 0x03B790AF},
33013 {0xFFEFA38B, 0x3DA6EEEC, 0x35564C84, 0x8CD71974, 0x0D43FD03} } ,
33014 { {0xB7D8FF8B, 0x0912FFBD, 0x81D6C2EE, 0xB990B368, 0x16945863},
33015 {0x32B38BAF, 0x8F8B91D6, 0xC1DAE0F5, 0xF9E206DD, 0x086EC936} } } ,
33016 { { {0x4619B1B7, 0x44A79CC0, 0x25D36582, 0x66CB80DC, 0x0F4FF670},
33017 {0x347802C5, 0x40638697, 0x23917998, 0x0AEECF52, 0x18D5E844} } ,
33018 { {0xDA908699, 0x9CE48A02, 0xBD8BAD08, 0x67DAF58B, 0x06C1B9D8},
33019 {0x42EA5F1C, 0x1379CD32, 0xE8080F0D, 0x7E4691DD, 0x16D09789} } } ,
33020 { { {0x966163B8, 0xC593FFF7, 0x1A7FDF79, 0xFA6B535E, 0x0309EED8},
33021 {0x8230C387, 0xA832B641, 0x3AE43BC8, 0xCD4D5815, 0x216071EF} } ,
33022 { {0xE8F59696, 0x4A9D193D, 0x1B8B7A31, 0x945E5A38, 0x1F312B4C},
33023 {0xD8040F14, 0x2660269A, 0x0D678D74, 0xD7DD7CED, 0x09568ACC} } } } ;
33024 static const fp12_t var_expected = { { { {0x638D9649, 0x37856A26, 0xF79545EC, 0xAE40CF14, 0x03B790AF},
33025 {0x4C60AED0, 0xE08665B3, 0x03F47419, 0x227F4272, 0x16BD2300} } ,
33026 { {0x44B56648, 0xAAE85827, 0x60466475, 0xAE266B97, 0x17511684},
33027 {0xA6505A9F, 0xA628CA54, 0xDBF9E8B1, 0x02717C02, 0x03B57EB0} } } ,
33028 { { {0xBF2ECDBE, 0x6A2257E7, 0xF44A0FCA, 0x00EFD45B, 0x06574427},
33029 {0x83A4B837, 0x57F75A3E, 0xFF198E28, 0xBD770230, 0x0EE06B83} } ,
33030 { {0x7085E252, 0xD11849DA, 0x61A215AF, 0x45F75BDB, 0x1702B9E4},
33031 {0x333AF25D, 0x6DF2A145, 0x54938912, 0x943935BE, 0x072E5157} } } ,
33032 { { {0xE2061A17, 0xE723400A, 0xA6186BA4, 0x63822EAB, 0x1F07F323},
33033 {0x8C0D9235, 0x4FE1D285, 0xA0873C25, 0x587B7CDF, 0x0DA74401} } ,
33034 { {0xAD466B36, 0x37571EDB, 0x96822410, 0x709F8CF0, 0x04B3C208},
33035 {0x814D99A5, 0xC4390CC2, 0x2D98A266, 0x5CD1A978, 0x1D3A6630} } } } ;
33037 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4049 a000");
33038 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4050 a001");
33039 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4051 a010");
33040 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4052 a011");
33041 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4053 a100");
33042 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4054 a101");
33043 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4055 a110");
33044 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4056 a111");
33045 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4057 a200");
33046 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4058 a201");
33047 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4059 a210");
33048 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4060 a211");
33051 static const fp12_t var_a = { { { {0xDA03B451, 0xD10DBE5E, 0xEB38CE23, 0xA329FC8B, 0x002408AC},
33052 {0x9452075D, 0x026EF45E, 0x91DF86C8, 0x14926A64, 0x06301489} } ,
33053 { {0x3E0BF418, 0xD750125A, 0x72F0BBA5, 0xA640663E, 0x0A3FC665},
33054 {0xBDCFBFD1, 0x6C508E02, 0x8A037992, 0x9A33247C, 0x028EAAD1} } } ,
33055 { { {0x72BAAB3E, 0x625478F5, 0xF2B7D7AC, 0xD43B2DB5, 0x0271E2A5},
33056 {0x33FCA026, 0x6A7DB04B, 0x320231FE, 0xF7B461CA, 0x0483505E} } ,
33057 { {0xCE70436E, 0x6E1BFADE, 0xE7325448, 0x1EFDF3BB, 0x11382ED9},
33058 {0x2DB36BBC, 0xBC0970D6, 0xFE953305, 0x7D6D440F, 0x015D5BB6} } } ,
33059 { { {0x32A3B6C9, 0x5FB3691A, 0xA5ACD441, 0x6B19421D, 0x19B9D4CC},
33060 {0x5958C833, 0x8F8E29FB, 0x28963EFF, 0xA0FF408E, 0x0C9A49B6} } ,
33061 { {0xD43FD64D, 0x6604A646, 0xF6772E11, 0xCD9B89D0, 0x158B569B},
33062 {0xFCD166AB, 0x2C49B865, 0x7AD3A3A4, 0x525B1263, 0x06E0053F} } } } ;
33063 static const fp12_t var_expected = { { { {0xDA03B451, 0xD10DBE5E, 0xEB38CE23, 0xA329FC8B, 0x002408AC},
33064 {0xB7FE4AFE, 0x1BBE6041, 0xA76B39D6, 0x9AC3F181, 0x1DD10B7A} } ,
33065 { {0x496E1E56, 0x9AE9BD06, 0x66D37A89, 0xA9B65EF3, 0x1C60FF49},
33066 {0x54063EFF, 0x31EEF36C, 0xB4F2DE95, 0xF74BED55, 0x1579C337} } } ,
33067 { { {0x90C56236, 0xFD018156, 0xBE5FE37F, 0x56B9D69E, 0x208CFB53},
33068 {0x6612A9E2, 0x58B0D705, 0x1148C606, 0x3B278AB6, 0x02F75C77} } ,
33069 { {0x33E6B5BE, 0x650C66BD, 0xD8D75FA6, 0xB36FA51E, 0x121FB765},
33070 {0x1BAD53D2, 0x64B67E85, 0x8ADD236E, 0x4EA9F948, 0x0B856E9C} } } ,
33071 { { {0x1093A93C, 0x96F34A51, 0xAA335BBF, 0x077CD07A, 0x1CB3964D},
33072 {0x22F853B3, 0x25155E2F, 0xFAF7627E, 0x1B7EB48D, 0x1BF48E3E} } ,
33073 { {0x7C972FA6, 0x7EE64C41, 0xC90F4B3F, 0x1564AD53, 0x09BEA898},
33074 {0x5629ACFD, 0x665FFA8A, 0xE36B4692, 0xD10D3BBE, 0x140348CD} } } } ;
33076 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4061 a000");
33077 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4062 a001");
33078 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4063 a010");
33079 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4064 a011");
33080 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4065 a100");
33081 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4066 a101");
33082 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4067 a110");
33083 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4068 a111");
33084 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4069 a200");
33085 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4070 a201");
33086 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4071 a210");
33087 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4072 a211");
33090 static const fp12_t var_a = { { { {0x302252D1, 0x2BDE21AA, 0x33E35275, 0x685C9D5E, 0x140A452A},
33091 {0x122CB528, 0xA72796DE, 0x1E8E0517, 0x156DA29A, 0x01CCBE6D} } ,
33092 { {0x638DBBD5, 0x8ACD218D, 0x3B818D98, 0xC9820467, 0x18E869FA},
33093 {0x7190349B, 0xA58AF0AE, 0x6677A635, 0x8E6D2A00, 0x0F20490D} } } ,
33094 { { {0xDE2161C2, 0xCB5562D4, 0x93BB06E0, 0x03B8B614, 0x116344F6},
33095 {0xBEBD40A2, 0xDF9BCFFF, 0x3D022D4F, 0x61B0B2A0, 0x00E85D67} } ,
33096 { {0x930D4AE6, 0x214D980D, 0xDAD7E1F7, 0x3C3B80D1, 0x1B59C0D1},
33097 {0x8CEF6B40, 0xC64D8090, 0x022AFEA3, 0x96204AC6, 0x00B947A6} } } ,
33098 { { {0x7BE49871, 0xCC23292D, 0xECA1A066, 0x88668EF4, 0x076692AE},
33099 {0xB91AB2B0, 0x5D184F71, 0xA06EB584, 0xA864B643, 0x0C29D23D} } ,
33100 { {0x0847A30E, 0xE5046E0E, 0x8137675E, 0xA80BECC0, 0x0210186B},
33101 {0x000AE213, 0xC1C0B0B3, 0xAD063B7A, 0xC299E7C3, 0x143CAD0B} } } } ;
33102 static const fp12_t var_expected = { { { {0x302252D1, 0x2BDE21AA, 0x33E35275, 0x685C9D5E, 0x140A452A},
33103 {0x3A239D33, 0x7705BDC2, 0x1ABCBB86, 0x99E8B94C, 0x22346196} } ,
33104 { {0xCDDA76E7, 0x9DB439F5, 0x15CA2700, 0xA722BDA8, 0x138759F7},
33105 {0xEEA03869, 0x59565DAA, 0x2A1A50E9, 0xA6348D31, 0x11FE0DF9} } } ,
33106 { { {0xD37022F3, 0xCCF1BAA7, 0x79C685C4, 0x36452307, 0x113F3E3F},
33107 {0xC941CA36, 0x2DD370AC, 0xD94C82DC, 0xD5245C0F, 0x07AB9A3C} } ,
33108 { {0x3A5CC620, 0x6E86AA22, 0xC9C2FF5C, 0xF9FE216E, 0x016D8103},
33109 {0x83203683, 0xCBD4E73E, 0xEB7B32C7, 0xE5ABCA3A, 0x187C224F} } } ,
33110 { { {0x98896C50, 0x0D6DD66A, 0x88E11A33, 0x2CCB105A, 0x1ACBA24C},
33111 {0x83AC40CF, 0x832244AD, 0x7ECFC76E, 0x6C482320, 0x21B56192} } ,
33112 { {0x2E215C66, 0x693206EC, 0x5C0B0AC8, 0x54613A52, 0x229C890F},
33113 {0x69F937D1, 0x50396C9D, 0xB7BC00C8, 0x2D2FB9A0, 0x0E2EBD4D} } } } ;
33115 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4073 a000");
33116 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4074 a001");
33117 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4075 a010");
33118 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4076 a011");
33119 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4077 a100");
33120 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4078 a101");
33121 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4079 a110");
33122 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4080 a111");
33123 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4081 a200");
33124 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4082 a201");
33125 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4083 a210");
33126 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4084 a211");
33129 static const fp12_t var_a = { { { {0xD1F2445A, 0x56012906, 0xD985A303, 0xF6126958, 0x11AD4B2F},
33130 {0x67749706, 0x5BF9AD8A, 0xFE1F7F2E, 0xB117090A, 0x071B5D1B} } ,
33131 { {0xDF01567C, 0xCFB4EE6D, 0xCC24F051, 0x3303DD96, 0x1DAC24A9},
33132 {0x541359AD, 0x42814A63, 0xC30AABA9, 0xD95B2CEA, 0x0262D8F8} } } ,
33133 { { {0xF3C0AFA2, 0x2782D9EF, 0x5FEBEB1C, 0x655A0264, 0x204037F3},
33134 {0x32D06C9D, 0x424FCA1F, 0x79107186, 0xE4E5C252, 0x08AD2E87} } ,
33135 { {0x6120E109, 0x03E5EBC9, 0xEE521318, 0x6ED18AFE, 0x1085F0A2},
33136 {0x05B683E5, 0x2164F96D, 0x2641092F, 0x97CEC232, 0x0F8597BA} } } ,
33137 { { {0x773D46A9, 0x06CA3DB7, 0x3C691C77, 0xE4EB8249, 0x13B056F4},
33138 {0x1920C5D2, 0xFEDA3992, 0x7053C3C4, 0x05E7F342, 0x095BEF31} } ,
33139 { {0x7D56D362, 0xDA4E570E, 0xC8730E98, 0x57541432, 0x2151F384},
33140 {0x572FE907, 0x46D943F4, 0x51E22BE0, 0xE20FC45E, 0x12026799} } } } ;
33141 static const fp12_t var_expected = { { { {0xD1F2445A, 0x56012906, 0xD985A303, 0xF6126958, 0x11AD4B2F},
33142 {0xE4DBBB55, 0xC233A715, 0x3B2B416F, 0xFE3F52DB, 0x1CE5C2E7} } ,
33143 { {0x1D26DC1A, 0x1DF46925, 0x4983F85A, 0x278772C8, 0x19CEB90F},
33144 {0x864F5EB8, 0x07646B35, 0x73DFC7FF, 0x1A984DB2, 0x0234AD98} } } ,
33145 { { {0x159BD3DC, 0xCB9E298C, 0x7A8B1951, 0xB8BDE6F6, 0x01486869},
33146 {0x81FDF520, 0xF2C964AB, 0xD5B50FDC, 0xB722A192, 0x14EB6918} } ,
33147 { {0xEB2F7152, 0x1A4768D6, 0x4AF8AD86, 0x4084D0E7, 0x137B2F61},
33148 {0x05B683E5, 0x2164F96D, 0x2641092F, 0x97CEC232, 0x0F8597BA} } } ,
33149 { { {0x1920C5D2, 0xFEDA3992, 0x7053C3C4, 0x05E7F342, 0x095BEF31},
33150 {0x773D46A9, 0x06CA3DB7, 0x3C691C77, 0xE4EB8249, 0x13B056F4} } ,
33151 { {0x9F2315D6, 0x1115D08F, 0x7A160260, 0x2CCCA111, 0x17E6A72B},
33152 {0x8B03F737, 0x9B3724A0, 0x1DF21D71, 0xA8A87ECF, 0x15A41F65} } } } ;
33154 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4085 a000");
33155 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4086 a001");
33156 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4087 a010");
33157 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4088 a011");
33158 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4089 a100");
33159 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4090 a101");
33160 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4091 a110");
33161 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4092 a111");
33162 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4093 a200");
33163 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4094 a201");
33164 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4095 a210");
33165 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4096 a211");
33168 static const fp12_t var_a = { { { {0x6C08B7AA, 0x065C9414, 0x8D25F6BC, 0x026215EC, 0x18571DE7},
33169 {0x822A1784, 0xFDCE585D, 0xC16D88E2, 0x94116257, 0x194C8099} } ,
33170 { {0x64F358B8, 0x6ED81B32, 0x1B03C6E0, 0x684FCB6F, 0x0AB354FC},
33171 {0xD24388C1, 0xADDF1385, 0x58BECFE5, 0xE92B6088, 0x2132D003} } } ,
33172 { { {0xD697C8D4, 0xBD248C19, 0xA51F4B31, 0xE7796441, 0x1F3C3F31},
33173 {0xC4C720B3, 0x17B59072, 0x4C817D5C, 0x8E8FD909, 0x1CFCF513} } ,
33174 { {0xF9FD9A04, 0x82C68939, 0x25B548AE, 0xA1D468A0, 0x1E2CCC61},
33175 {0x24176805, 0x337AE6B9, 0x61924611, 0xA5AA280B, 0x1BE9905F} } } ,
33176 { { {0x5DA321BD, 0x7B18E07D, 0x9C65DAC8, 0xF40F8B61, 0x038D762D},
33177 {0xB0321086, 0x19BDFAF2, 0x1C3836E5, 0x5B5112DE, 0x239C18DC} } ,
33178 { {0xED286C9B, 0xB12303CA, 0x66EECDAA, 0xEB2BCA31, 0x1C3119C4},
33179 {0xC8897D4D, 0xB9E83A10, 0x1CF596F3, 0x08C3C9AB, 0x1F327923} } } } ;
33180 static const fp12_t var_expected = { { { {0x6C08B7AA, 0x065C9414, 0x8D25F6BC, 0x026215EC, 0x18571DE7},
33181 {0xCA263AD7, 0x205EFC42, 0x77DD37BB, 0x1B44F98E, 0x0AB49F6A} } ,
33182 { {0x8CC27D43, 0xB79A399D, 0x2DE42821, 0xCDBEB996, 0x17CA93D4},
33183 {0x16FE85AE, 0xC4780189, 0x9B86D334, 0x827F6CBC, 0x22D2CBEA} } } ,
33184 { { {0x5A27B267, 0x373688E7, 0x378B7CDE, 0xE7DBA260, 0x0FD46328},
33185 {0xFFF35AA9, 0x6AFEF243, 0x9FDFC47C, 0xA4974BCA, 0x17BC889F} } ,
33186 { {0xB2308330, 0x4CB27869, 0xF99A7B0E, 0x2FCE2FCE, 0x2081083F},
33187 {0xD0F541D5, 0x2920A6E0, 0xDA4ED639, 0x7D6C67F4, 0x181814F2} } } ,
33188 { { {0x6CDF5781, 0x42A78F40, 0x7F269384, 0x91347590, 0x1ABDC85C},
33189 {0x9D7684D5, 0x45599D55, 0x580FEF3F, 0x150AC232, 0x10D7EF89} } ,
33190 { {0xC257393E, 0xD227FF1A, 0xE3C1F5ED, 0xFCD5649B, 0x1880D2C7},
33191 {0xB0A60063, 0x66D6C03C, 0x112CBB48, 0x9A8D7AF2, 0x1FD5B49F} } } } ;
33193 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4097 a000");
33194 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4098 a001");
33195 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4099 a010");
33196 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4100 a011");
33197 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4101 a100");
33198 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4102 a101");
33199 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4103 a110");
33200 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4104 a111");
33201 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4105 a200");
33202 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4106 a201");
33203 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4107 a210");
33204 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4108 a211");
33207 static const fp12_t var_a = { { { {0x6A757E06, 0x1D3E6FA3, 0xA0C4116F, 0xC677FEEE, 0x09E37F8C},
33208 {0x3B5FC5A9, 0xC878D762, 0xCD9BE74D, 0x1C201DD0, 0x1D1233A0} } ,
33209 { {0x73922DF8, 0xCCF9C444, 0xA480E011, 0xEA9398F7, 0x0C55F556},
33210 {0xAD5C31C7, 0x4BD55E68, 0x72D4D609, 0xB5ED18EE, 0x08333514} } } ,
33211 { { {0x172CE39B, 0x47964ED5, 0xBD07CAD6, 0x5071B26B, 0x1A822221},
33212 {0xC00B41E5, 0xA7480A74, 0x4333C333, 0x16ADC94B, 0x1B236680} } ,
33213 { {0xA08BFA0B, 0x9915F997, 0x3183B77E, 0xD6F5EFAB, 0x224A3B29},
33214 {0xBBF9D1F5, 0x121CFFD7, 0x45A78F68, 0xA05588FC, 0x1729CD97} } } ,
33215 { { {0x72BEABD2, 0x110B951C, 0x43665E68, 0xE9606410, 0x1F4FEE3C},
33216 {0x5928732A, 0x4A60BE71, 0x2BE5D539, 0x598B12FD, 0x118B9943} } ,
33217 { {0xD34A73EE, 0xEAE6ECFE, 0xF9E5EA5C, 0xB4A74A80, 0x2049DBDB},
33218 {0x31C6CE5A, 0x97C921D9, 0x0AE045E1, 0x5A3A4D66, 0x1B558217} } } } ;
33219 static const fp12_t var_expected = { { { {0x6A757E06, 0x1D3E6FA3, 0xA0C4116F, 0xC677FEEE, 0x09E37F8C},
33220 {0x10F08CB2, 0x55B47D3E, 0x6BAED950, 0x93363E15, 0x06EEEC63} } ,
33221 { {0x6E09A989, 0x1E61CE27, 0x023CD579, 0x3F014E52, 0x168CF792},
33222 {0x8A13612B, 0x9C997438, 0xD67B4E72, 0xEAAE1A14, 0x0BBAFD9F} } } ,
33223 { { {0x6255D76C, 0x554F8F77, 0x19D0CAF5, 0xDD672171, 0x0333ECA8},
33224 {0x7F4A0237, 0xBEEE6D10, 0x81D96ED5, 0x529892DF, 0x0AABB216} } ,
33225 { {0xABC45850, 0x85175B08, 0x07C7091F, 0xD8606C3B, 0x01B6E4D9},
33226 {0xBBF9D1F5, 0x121CFFD7, 0x45A78F68, 0xA05588FC, 0x1729CD97} } } ,
33227 { { {0x5928732A, 0x4A60BE71, 0x2BE5D539, 0x598B12FD, 0x118B9943},
33228 {0x72BEABD2, 0x110B951C, 0x43665E68, 0xE9606410, 0x1F4FEE3C} } ,
33229 { {0xBE4400A6, 0xCCC93E20, 0x758F714B, 0xB7088A58, 0x1B2246EB},
33230 {0xC3529F96, 0x833FE1FD, 0x5FC38AAA, 0x498EFDCD, 0x0B0B922B} } } } ;
33232 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4109 a000");
33233 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4110 a001");
33234 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4111 a010");
33235 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4112 a011");
33236 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4113 a100");
33237 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4114 a101");
33238 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4115 a110");
33239 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4116 a111");
33240 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4117 a200");
33241 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4118 a201");
33242 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4119 a210");
33243 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4120 a211");
33246 static const fp12_t var_a = { { { {0x2C151B2A, 0x7C5B012B, 0xBCA34CC5, 0xE73B02AA, 0x17CEF2BE},
33247 {0xB64BE419, 0xB9109B77, 0x36A10F8F, 0x8518A850, 0x20DF8F3D} } ,
33248 { {0x6E5DDE9A, 0xE50B9BC9, 0xEE5EC01D, 0xED07F818, 0x1E647857},
33249 {0xED4E953C, 0x92315439, 0x0418458D, 0x111B3778, 0x231588F5} } } ,
33250 { { {0xAF5BF10B, 0x7BA3B79C, 0x22859772, 0x70116518, 0x107BB8FA},
33251 {0x3F3691A6, 0x9FE7AC13, 0xA3BD6F9A, 0xED304004, 0x01E1C216} } ,
33252 { {0x3817079B, 0x7F017FA0, 0xE159AD1C, 0xF134C849, 0x1EACD742},
33253 {0x323E62BF, 0x5522E61D, 0xABDE621F, 0x58531E40, 0x15EA1B46} } } ,
33254 { { {0x80281562, 0xBB8231D1, 0x8C1D0897, 0x8597C503, 0x13475536},
33255 {0xE6521162, 0x1AF5BB9C, 0xFB813E69, 0xB33BD57D, 0x1F895BE3} } ,
33256 { {0x0C104DA6, 0x1E577A7E, 0x122E1C14, 0x4275B4A8, 0x0A447AC9},
33257 {0x768C7AA3, 0x1F46F7CB, 0xAED59CB7, 0xB4ED73E6, 0x21B1867E} } } } ;
33258 static const fp12_t var_expected = { { { {0x2C151B2A, 0x7C5B012B, 0xBCA34CC5, 0xE73B02AA, 0x17CEF2BE},
33259 {0xB64BE419, 0xB9109B77, 0x36A10F8F, 0x8518A850, 0x20DF8F3D} } ,
33260 { {0xDDF273C1, 0x3921B8D6, 0x4AEC0080, 0xC24E63CD, 0x059CA7AB},
33261 {0x5F01BD1F, 0x8BFC0066, 0x35327B10, 0x9E3B246E, 0x00EB970E} } } ,
33262 { { {0xC9527126, 0x1402832E, 0x2EC0D9AA, 0x5424BADD, 0x0EC1F4CE},
33263 {0xF9DB479D, 0x2C84C29B, 0x4A089A6E, 0x4ADDFF34, 0x21754A71} } ,
33264 { {0xF6A352D7, 0xC74F0ECF, 0x98889996, 0x0FFBC505, 0x15B7C38E},
33265 {0xB38F149E, 0x57B4D911, 0x085A0F0D, 0x5E347248, 0x00068E03} } } ,
33266 { { {0xF57A5613, 0xA2359FE2, 0x32C3BDFB, 0x8DE83475, 0x1E572F3A},
33267 {0x5B65C5D9, 0x8DAE9B1C, 0x235B65C1, 0xCD64A329, 0x164281FC} } ,
33268 { {0x2E5BA3D0, 0xF80DD7CE, 0x791BB331, 0xDBBE163E, 0x19236C6B},
33269 {0x7F10EAF7, 0x35B718E5, 0x1DF76393, 0xB6A1FA9E, 0x1F7BCB5E} } } } ;
33271 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4121 a000");
33272 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4122 a001");
33273 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4123 a010");
33274 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4124 a011");
33275 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4125 a100");
33276 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4126 a101");
33277 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4127 a110");
33278 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4128 a111");
33279 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4129 a200");
33280 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4130 a201");
33281 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4131 a210");
33282 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4132 a211");
33285 static const fp12_t var_a = { { { {0x9E07D7A5, 0xC909BE43, 0xEED2F80F, 0xE080F751, 0x1AF125A0},
33286 {0x3CAD7347, 0xD5F2E2EC, 0x08B9A772, 0xC51E8DBA, 0x1C8E7551} } ,
33287 { {0xD431BE49, 0xD4F24BB4, 0xD60C583D, 0xC92158D4, 0x0E485B67},
33288 {0xBF9850AD, 0x3B1CE809, 0x9A7B33E7, 0xD5C24040, 0x0FA4704A} } } ,
33289 { { {0x005E6507, 0x03E1A35F, 0xE7D423EC, 0x554665ED, 0x05B10A5D},
33290 {0x7AEC134F, 0xB9224A23, 0x4AB3EFBE, 0x7A84F004, 0x0E47AAA1} } ,
33291 { {0x34D3B703, 0x9F573EE0, 0xD5F4C108, 0xB2EF5944, 0x15D6C041},
33292 {0xBD37C12D, 0x3AD8C209, 0xC1AC652D, 0x45BDFAEA, 0x1EE4BB32} } } ,
33293 { { {0xC3D74322, 0xC0979752, 0xD20C4363, 0xFD760BF0, 0x00AF1E34},
33294 {0xEE2AFE3E, 0x1B49FFC9, 0x50FF544B, 0xC9ACCA3A, 0x1A080D05} } ,
33295 { {0x7EE7530C, 0x4888045A, 0x65425D72, 0x13E7FE70, 0x0EF49C76},
33296 {0x104CA1BE, 0x6B81F8B6, 0x722C9AAF, 0xF5797574, 0x175B4F37} } } } ;
33297 static const fp12_t var_expected = { { { {0x9E07D7A5, 0xC909BE43, 0xEED2F80F, 0xE080F751, 0x1AF125A0},
33298 {0x0FA2DF14, 0x483A71B4, 0x3091192B, 0xEA37CE2C, 0x0772AAB1} } ,
33299 { {0x84F73957, 0xE06726D2, 0xCCA8F1AB, 0x3F493839, 0x0BADF156},
33300 {0xD5C9B087, 0xDEDBCBB3, 0xC5826EBD, 0xA46564FA, 0x0A576C10} } } ,
33301 { { {0xBC1442F5, 0x18A145B2, 0xF9E475A5, 0xC3796B60, 0x16F64270},
33302 {0x583D2315, 0x79D3ECA1, 0x1EBCCADD, 0x80D3CBD0, 0x1A0CB32A} } ,
33303 { {0x59B58E05, 0x2498FF14, 0x02D32960, 0xA210715E, 0x02D6D3EE},
33304 {0x1C415372, 0xE94025F8, 0x2F270206, 0xDE861687, 0x23E1B017} } } ,
33305 { { {0x6C26ED5E, 0x97E9B5D4, 0xEE30CD4D, 0x7C2F0ECF, 0x0800B55F},
33306 {0xD800C7FE, 0x5FDE77F4, 0xA2A1F53B, 0xC2D85E27, 0x01457E26} } ,
33307 { {0xEE19F7B9, 0x1E833D60, 0x6B84891D, 0xB7122DA3, 0x22469065},
33308 {0xC5902575, 0xD0CB3680, 0x058E4A26, 0xDDB184E2, 0x18A7C508} } } } ;
33310 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4133 a000");
33311 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4134 a001");
33312 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4135 a010");
33313 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4136 a011");
33314 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4137 a100");
33315 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4138 a101");
33316 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4139 a110");
33317 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4140 a111");
33318 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4141 a200");
33319 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4142 a201");
33320 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4143 a210");
33321 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4144 a211");
33324 static const fp12_t var_a = { { { {0x89CD64EA, 0x0411D241, 0x83EDB935, 0x94C0C64A, 0x088AF829},
33325 {0xDE134C9E, 0x14864CE2, 0x38582231, 0x443E45FC, 0x1C7CF8D1} } ,
33326 { {0xF6071B87, 0x7860309E, 0x2E75769E, 0x6258C62D, 0x056AC742},
33327 {0x638E4CBF, 0x1231D463, 0x333142F6, 0x2D135FD8, 0x1D4229A0} } } ,
33328 { { {0xF742A2A1, 0x2D92065E, 0x7D63236A, 0x99A1FAAA, 0x05512BD0},
33329 {0xC82E275A, 0x7E94C06D, 0xCA0A47BA, 0x73656EDE, 0x17F474B1} } ,
33330 { {0x8296C109, 0xA6CB58F3, 0xFDE3248B, 0x05CD5CEA, 0x183751E5},
33331 {0x0978FF0D, 0x26C1CCB3, 0x811AF30B, 0x79EC9BE6, 0x0EAF910A} } } ,
33332 { { {0x0C8EF858, 0xF7A41CCC, 0x971204D2, 0x05219CA5, 0x21001D07},
33333 {0x6E630CE0, 0x33DAB874, 0xF6B4D6E7, 0x870E1BE3, 0x148EA3B3} } ,
33334 { {0x6AB1DD0F, 0x89EF052E, 0xFF8391F7, 0x1DF595DC, 0x0789099D},
33335 {0xF0E6C15B, 0x2175CAED, 0x0083DA48, 0x62A45243, 0x2023B68E} } } } ;
33336 static const fp12_t var_expected = { { { {0x89CD64EA, 0x0411D241, 0x83EDB935, 0x94C0C64A, 0x088AF829},
33337 {0x6E3D05BD, 0x09A707BD, 0x00F29E6D, 0x6B1815EA, 0x07842732} } ,
33338 { {0x938C60D6, 0xAD9AF488, 0x803DA844, 0x77F260DD, 0x1E1B923B},
33339 {0x34B28627, 0xAFE6C2E2, 0xF8F25294, 0x81D1367A, 0x049C3E8C} } } ,
33340 { { {0x718045F3, 0x6089A83F, 0xB04EBCD8, 0x37EE0524, 0x064ACCC9},
33341 {0x70D6D973, 0xB43A84F3, 0x1A300A40, 0xF5E591CC, 0x2387E4D1} } ,
33342 { {0xC9B99152, 0x7761FBAC, 0x3B679C12, 0xA988FEFB, 0x0BC9CE1E},
33343 {0x0978FF0D, 0x26C1CCB3, 0x811AF30B, 0x79EC9BE6, 0x0EAF910A} } } ,
33344 { { {0x6E630CE0, 0x33DAB874, 0xF6B4D6E7, 0x870E1BE3, 0x148EA3B3},
33345 {0x0C8EF858, 0xF7A41CCC, 0x971204D2, 0x05219CA5, 0x21001D07} } ,
33346 { {0x68E674E3, 0xF4DF0E76, 0x2272A48E, 0x7FC22EE2, 0x067E3727},
33347 {0xA45A6A10, 0xC09A4840, 0x7B61DF48, 0x6B3E015A, 0x01DE0B62} } } } ;
33349 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4145 a000");
33350 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4146 a001");
33351 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4147 a010");
33352 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4148 a011");
33353 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4149 a100");
33354 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4150 a101");
33355 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4151 a110");
33356 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4152 a111");
33357 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4153 a200");
33358 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4154 a201");
33359 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4155 a210");
33360 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4156 a211");
33363 static const fp12_t var_a = { { { {0x67F32AA9, 0x6CA16CB7, 0x10202119, 0x60CF2747, 0x115FC944},
33364 {0xF3151B1B, 0x5A45A933, 0x5E47A470, 0xCB120BFC, 0x1B3247D1} } ,
33365 { {0x9DCDE7A5, 0x1E01BA72, 0x2642590A, 0x4839B8B3, 0x16C8A95D},
33366 {0x67315539, 0xFE060689, 0x84F1110B, 0xC1D73AC1, 0x18CE0C4E} } } ,
33367 { { {0x555A23EA, 0xF546007A, 0x39C841C3, 0x927E764F, 0x0C9B0331},
33368 {0xE84B8F58, 0x641AAE3A, 0xC397C7EA, 0xC5DB6CC9, 0x18EACD0B} } ,
33369 { {0xB03C0527, 0xE05E2FB9, 0x9456E8C0, 0xAC46EA5F, 0x159A6E21},
33370 {0x8D9F889A, 0x2E5697CE, 0xC28F1DC2, 0x0121E684, 0x01CDCD46} } } ,
33371 { { {0xC004D3F6, 0xADECE1FE, 0xDDADEFAE, 0xD50A9BC4, 0x173B7D77},
33372 {0x39A53CC0, 0x9D41250E, 0x587C0102, 0x5F6426B0, 0x163596C0} } ,
33373 { {0x1B8248BA, 0xB2657BA5, 0x5A25CE76, 0x94977F13, 0x19E1CD32},
33374 {0xADD3F974, 0x81059B75, 0xD896E56C, 0xBC13D759, 0x129A7E3A} } } } ;
33375 static const fp12_t var_expected = { { { {0x67F32AA9, 0x6CA16CB7, 0x10202119, 0x60CF2747, 0x115FC944},
33376 {0xF3151B1B, 0x5A45A933, 0x5E47A470, 0xCB120BFC, 0x1B3247D1} } ,
33377 { {0x9DCDE7A5, 0x1E01BA72, 0x2642590A, 0x4839B8B3, 0x16C8A95D},
33378 {0x67315539, 0xFE060689, 0x84F1110B, 0xC1D73AC1, 0x18CE0C4E} } } ,
33379 { { {0xCE0A795D, 0xBE4FBADD, 0x4215B8D8, 0xF1CF4EA1, 0x01B10A33},
33380 {0x7BF53C1F, 0x6C7D75BF, 0xA4148A62, 0x3A5D6831, 0x18FC0572} } ,
33381 { {0x8ABBD40E, 0x18952ABA, 0x03DAFA3B, 0x3F5FB03B, 0x217EF36B},
33382 {0x0E2A32DD, 0x9C0249F7, 0xAB941ED1, 0xCE3EA2C1, 0x13F085E6} } } ,
33383 { { {0x00EF5BEB, 0xDB1367C0, 0xE1CD945A, 0xD7DB7D75, 0x0CD778F4},
33384 {0x163008F5, 0xCFF357A0, 0x316FA5A6, 0x1823F3CF, 0x23E2EC2B} } ,
33385 { {0xCFF0C0D6, 0x8E5FC073, 0xBB6BB425, 0xAECF2728, 0x1D1239AF},
33386 {0x1C8101A8, 0x6F722974, 0x2A9CD301, 0x5547EB32, 0x087824F0} } } } ;
33388 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4157 a000");
33389 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4158 a001");
33390 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4159 a010");
33391 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4160 a011");
33392 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4161 a100");
33393 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4162 a101");
33394 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4163 a110");
33395 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4164 a111");
33396 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4165 a200");
33397 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4166 a201");
33398 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4167 a210");
33399 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4168 a211");
33402 static const fp12_t var_a = { { { {0xED2E368E, 0xFFE9C0B6, 0xF24FDE10, 0x768598E4, 0x235D32C6},
33403 {0xB099CF7F, 0x8593EC66, 0x8A86F817, 0x00F737FB, 0x0AF9C585} } ,
33404 { {0xA45A74A2, 0x555073CF, 0xD4AA9061, 0x10461CA9, 0x03758866},
33405 {0x86032491, 0x4DFF772B, 0x9A5AB20B, 0x21A5FF96, 0x03E11CC4} } } ,
33406 { { {0xE98B9B8E, 0x51E2C76E, 0xCEA663A4, 0xF921C546, 0x096918AD},
33407 {0x870E2969, 0xA000FA9C, 0xAD82F95E, 0xE416B230, 0x1FE5455D} } ,
33408 { {0xAA421F69, 0xEABFD11F, 0x067C54DA, 0x52345D3C, 0x10A7EEB7},
33409 {0xB41C5AE5, 0xC0089BE9, 0x5A5373D3, 0xAF3C8033, 0x09D57D60} } } ,
33410 { { {0xD623109F, 0xF41CE01A, 0xE9FD0013, 0xAC1AD4ED, 0x1CC0890B},
33411 {0xBA591308, 0xED025B13, 0x92377EAF, 0x8E3B07F1, 0x14CC5D9E} } ,
33412 { {0x7A9403D3, 0x7B89604A, 0x8BC67ECB, 0x8D093B55, 0x08E6B4DA},
33413 {0xD3D7C097, 0x057EA4BB, 0x1A0E876D, 0x997876B8, 0x104FDFB9} } } } ;
33414 static const fp12_t var_expected = { { { {0xED2E368E, 0xFFE9C0B6, 0xF24FDE10, 0x768598E4, 0x235D32C6},
33415 {0x9BB682DC, 0x98996839, 0xAEC3C886, 0xAE5F23EA, 0x19075A7E} } ,
33416 { {0x4F9F8483, 0x06746050, 0xDF0BE565, 0xB48D6149, 0x0D1DF898},
33417 {0x4686A2D3, 0xC7CF5373, 0x0B7AC710, 0x619CA942, 0x142BBB36} } } ,
33418 { { {0x78BE9C60, 0x53898EE1, 0x62BFAA6E, 0xC9AE0363, 0x12A10724},
33419 {0x3F32815A, 0x9BF7BE99, 0x1E726F8B, 0x0D0EB580, 0x0A44C4B5} } ,
33420 { {0xA20E32F2, 0x336D8380, 0x32CE6BC3, 0x5D21FEAA, 0x1359314C},
33421 {0xB41C5AE5, 0xC0089BE9, 0x5A5373D3, 0xAF3C8033, 0x09D57D60} } } ,
33422 { { {0xBA591308, 0xED025B13, 0x92377EAF, 0x8E3B07F1, 0x14CC5D9E},
33423 {0xD623109F, 0xF41CE01A, 0xE9FD0013, 0xAC1AD4ED, 0x1CC0890B} } ,
33424 { {0x0B54C4F7, 0xB01A239C, 0xD2B2BDF1, 0x59939EDA, 0x020AE338},
33425 {0x081BC739, 0x39361402, 0x9DEF29D5, 0x39B4E389, 0x016A4DD8} } } } ;
33427 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4169 a000");
33428 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4170 a001");
33429 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4171 a010");
33430 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4172 a011");
33431 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4173 a100");
33432 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4174 a101");
33433 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4175 a110");
33434 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4176 a111");
33435 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4177 a200");
33436 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4178 a201");
33437 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4179 a210");
33438 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4180 a211");
33441 static const fp12_t var_a = { { { {0x9C0E0881, 0xB560755F, 0xCFD2E99D, 0xA267304B, 0x09DC3323},
33442 {0x0CBD3B8C, 0x75BC6783, 0x26ACBFED, 0xD1C10559, 0x0A41124F} } ,
33443 { {0xDE6A1EA5, 0x137E5B3B, 0x9523BA6B, 0x8075EEA7, 0x0FAA6541},
33444 {0xE8645224, 0x5272174F, 0xD1945188, 0x2432DC82, 0x0B39669A} } } ,
33445 { { {0xEA1EE988, 0xD2B7F4D3, 0x15047224, 0x553A26E2, 0x0629AE6E},
33446 {0x60F01A57, 0xE8A46AF4, 0x9E3C1A22, 0xEC8465F0, 0x11B1D246} } ,
33447 { {0xDEA00DA5, 0x90FC4182, 0x042E38F4, 0x780FB81F, 0x221A2ED0},
33448 {0x08D65355, 0xADBFF4FD, 0x0BABC6F1, 0xE30370E9, 0x0173C1EE} } } ,
33449 { { {0xB601A474, 0xE5B3A3BA, 0xE402611A, 0x658E0501, 0x14A3176B},
33450 {0xF6F8CB4A, 0xB40A2853, 0x3829E263, 0x0A3FCE54, 0x04AA3E52} } ,
33451 { {0xB6BEB772, 0x79649ACE, 0x1E658C81, 0x1B68202B, 0x20A9570B},
33452 {0x901CC65C, 0x5848B9DB, 0x53506A8A, 0x0DF93206, 0x21FAE716} } } } ;
33453 static const fp12_t var_expected = { { { {0x9C0E0881, 0xB560755F, 0xCFD2E99D, 0xA267304B, 0x09DC3323},
33454 {0x3F9316CF, 0xA870ED1D, 0x129E00B0, 0xDD95568D, 0x19C00DB3} } ,
33455 { {0x0BE0E747, 0xF06E7B23, 0x06F76A5C, 0xBBB681B9, 0x1DF21862},
33456 {0x0789BE18, 0x4EFEF862, 0x38CCE492, 0x2A6826A3, 0x1349A4F8} } } ,
33457 { { {0xE762CA8D, 0x09EC0BDA, 0x4F11CACC, 0xD27E7C3C, 0x1B83426A},
33458 {0xD1253521, 0xF6B41124, 0x622B03EB, 0x382026BF, 0x085EA607} } ,
33459 { {0x79596A61, 0x785826D1, 0xFED9BFDE, 0x5A4EE074, 0x1D2A597E},
33460 {0x75412517, 0x5966CA72, 0x5ACCBCA8, 0xB4FFA5A4, 0x05779F46} } } ,
33461 { { {0x680747A9, 0x1FFB99CE, 0x53083473, 0x30EBB7A5, 0x0AB7505C},
33462 {0xF49A263F, 0x1BFB7520, 0x233D8EA4, 0xA80523EF, 0x129090B2} } ,
33463 { {0x3E230E52, 0xFDF7AC9B, 0xEF192B95, 0xE88F3C3D, 0x13A479D1},
33464 {0x894C078B, 0x320F712B, 0x8338884F, 0xDFFCCC35, 0x0238DAA0} } } } ;
33466 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4181 a000");
33467 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4182 a001");
33468 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4183 a010");
33469 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4184 a011");
33470 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4185 a100");
33471 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4186 a101");
33472 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4187 a110");
33473 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4188 a111");
33474 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4189 a200");
33475 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4190 a201");
33476 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4191 a210");
33477 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4192 a211");
33480 static const fp12_t var_a = { { { {0x134316AA, 0x37436863, 0xD94A8D45, 0x1609E111, 0x1A45BDC1},
33481 {0xFC53156D, 0x585D6EA8, 0x080E15AB, 0x801A79C5, 0x06E1D3E1} } ,
33482 { {0x10A64501, 0x63C0B98E, 0x00612167, 0x4726BC14, 0x09BEEFC7},
33483 {0xA99DD231, 0xF6A75185, 0x19C8A678, 0x7CE1E7FC, 0x09FA5FA2} } } ,
33484 { { {0x29CD9F0D, 0x35DAE929, 0xE5F425A9, 0xAE2B4ECC, 0x207937A3},
33485 {0xE08C16FD, 0x00AF7E4A, 0x97B7E41C, 0xEE2E6673, 0x166D2C4D} } ,
33486 { {0x4B4E4845, 0xD1E3B4E8, 0x6DD136F3, 0x21173915, 0x1C1098E3},
33487 {0x87001276, 0x4BBAE193, 0x9498D1BD, 0xE780FA4D, 0x0EE8A147} } } ,
33488 { { {0xDFD5D931, 0x5CAC66A6, 0x4015E74D, 0x0465C25D, 0x19E7D202},
33489 {0x0406D7DE, 0xB465053A, 0xF67447B8, 0x6946F94F, 0x139968DA} } ,
33490 { {0x0A1C662C, 0xDB2E8D46, 0xED654A2F, 0x24EAAE40, 0x1D169D0C},
33491 {0x1DD05F59, 0xE8DB5D1A, 0x5D5A56B5, 0x14C81682, 0x0DE82454} } } } ;
33492 static const fp12_t var_expected = { { { {0x134316AA, 0x37436863, 0xD94A8D45, 0x1609E111, 0x1A45BDC1},
33493 {0x4FFD3CEE, 0xC5CFE5F7, 0x313CAAF2, 0x2F3BE221, 0x1D1F4C22} } ,
33494 { {0xF422E509, 0xFA243BD6, 0x78646C36, 0x84782457, 0x1E9BD0F4},
33495 {0x2C796C93, 0x1D96D90F, 0x0F50F469, 0xCF339AE5, 0x226BDF06} } } ,
33496 { { {0x9C3DB70B, 0xA95B8075, 0xB8388B50, 0xEDC9D380, 0x1B798ADD},
33497 {0x7AA8718C, 0x43DB88DC, 0xD344B6DD, 0xF2621750, 0x0BB3D352} } ,
33498 { {0x01020A16, 0x4C499FB8, 0xCB7989AA, 0x8E3F22D0, 0x07F08720},
33499 {0x87001276, 0x4BBAE193, 0x9498D1BD, 0xE780FA4D, 0x0EE8A147} } } ,
33500 { { {0x0406D7DE, 0xB465053A, 0xF67447B8, 0x6946F94F, 0x139968DA},
33501 {0xDFD5D931, 0x5CAC66A6, 0x4015E74D, 0x0465C25D, 0x19E7D202} } ,
33502 { {0x1738813C, 0x8E98A7DC, 0x3CBF1AF0, 0x61550CE2, 0x0E46EE2D},
33503 {0x06429437, 0x36067BF3, 0x0948C9E2, 0xBCA254A7, 0x0A80EC32} } } } ;
33505 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4193 a000");
33506 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4194 a001");
33507 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4195 a010");
33508 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4196 a011");
33509 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4197 a100");
33510 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4198 a101");
33511 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4199 a110");
33512 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4200 a111");
33513 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4201 a200");
33514 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4202 a201");
33515 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4203 a210");
33516 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4204 a211");
33519 static const fp12_t var_a = { { { {0x01228665, 0xAB20FC54, 0x9D68D1D2, 0x9C2058D9, 0x0732427A},
33520 {0x63E3657A, 0x8226EA25, 0xFB1211C9, 0x57603EAC, 0x06B6F593} } ,
33521 { {0xFBDDE583, 0xE222FA25, 0xEF235B47, 0x1B61A286, 0x1B4710D3},
33522 {0x1F9623EE, 0x73E53194, 0x2B7F5C64, 0x413E7A95, 0x0BEDC1E9} } } ,
33523 { { {0x29948A8F, 0x01DCEE75, 0x055916D5, 0x87D1F6DC, 0x0371E037},
33524 {0x9500A090, 0xB967F85D, 0xB3094325, 0x1F23E5C0, 0x1E321092} } ,
33525 { {0xB5378670, 0x83691598, 0xB42102BE, 0x85F1B4AE, 0x1FDDFFE6},
33526 {0xFA3C31CF, 0xC3D6B902, 0x4C84392D, 0xFB56ACFC, 0x0E1F3C03} } } ,
33527 { { {0x0665C2C5, 0xBBAC27BE, 0x4575577B, 0x873302AE, 0x1509572C},
33528 {0x24F57ACD, 0x9ADEB672, 0xB3663D3D, 0xE6AEB9ED, 0x04BF6F76} } ,
33529 { {0x8187A399, 0xC250AB77, 0xA7CBFE59, 0x76DF8245, 0x2321DC31},
33530 {0x39479CF2, 0x9724AA3B, 0x2DA87050, 0x06607622, 0x21EA06A9} } } } ;
33531 static const fp12_t var_expected = { { { {0x01228665, 0xAB20FC54, 0x9D68D1D2, 0x9C2058D9, 0x0732427A},
33532 {0xE86CECE1, 0x9C066A7A, 0x3E38AED4, 0x57F61D39, 0x1D4A2A70} } ,
33533 { {0x61F5C2D1, 0xE50E2029, 0x801EE6E4, 0x90117163, 0x07774BD5},
33534 {0x09573ADB, 0xE3D18F22, 0x3DDEEF58, 0x8050AA54, 0x09C79641} } } ,
33535 { { {0xFF276214, 0x5759DB24, 0x4801056C, 0xBBA6A39F, 0x0E67B6E8},
33536 {0x4184047E, 0xE69F9BEB, 0x7188D73D, 0x3EA31AFD, 0x18884CB1} } ,
33537 { {0x9718CBEB, 0x9AC43F07, 0x8529BDDF, 0x2964A737, 0x0423201D},
33538 {0xFA3C31CF, 0xC3D6B902, 0x4C84392D, 0xFB56ACFC, 0x0E1F3C03} } } ,
33539 { { {0x24F57ACD, 0x9ADEB672, 0xB3663D3D, 0xE6AEB9ED, 0x04BF6F76},
33540 {0x0665C2C5, 0xBBAC27BE, 0x4575577B, 0x873302AE, 0x1509572C} } ,
33541 { {0x28526040, 0x2078DB2E, 0xB489C1B5, 0x4B3A876C, 0x1F0B4E52},
33542 {0x44A4967D, 0x71DF1AB7, 0x4C85B70D, 0x87AE54DF, 0x07DDB788} } } } ;
33544 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4205 a000");
33545 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4206 a001");
33546 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4207 a010");
33547 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4208 a011");
33548 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4209 a100");
33549 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4210 a101");
33550 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4211 a110");
33551 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4212 a111");
33552 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4213 a200");
33553 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4214 a201");
33554 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4215 a210");
33555 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4216 a211");
33558 static const fp12_t var_a = { { { {0xCDEDCAAE, 0xABCA2CF3, 0x01C81D09, 0xA624CCE9, 0x0FE2A4F2},
33559 {0xD1855A8D, 0x0F106C88, 0x0AADBDDF, 0x45980B57, 0x221E1369} } ,
33560 { {0xECBA5DF1, 0x773B6212, 0x7DA4180D, 0x6EC97A0A, 0x140CD49D},
33561 {0xC57FA82A, 0x454165C8, 0x0BCDCA50, 0xA089DC50, 0x1984BA73} } } ,
33562 { { {0xB885545C, 0x725E3D40, 0x7BB4BE21, 0xF2865F08, 0x1201B0D9},
33563 {0xCD29133D, 0xED525193, 0x4B1EE57B, 0xAF6A4055, 0x0FBBA1E0} } ,
33564 { {0xCD233CDE, 0xBFE701D9, 0x2CDA308D, 0x1DB962B5, 0x146383B4},
33565 {0xAE6B537A, 0xE2AABE64, 0x4EB75E1B, 0xFB2EB86C, 0x0D756F9B} } } ,
33566 { { {0xA7D4BEE3, 0xCCDE8C47, 0xC2F659EB, 0x4CC3FBDF, 0x073528DF},
33567 {0x3A31B48A, 0xAD56E317, 0x411DA953, 0x23DF3083, 0x095C5683} } ,
33568 { {0x58B5EBFD, 0x8161BEC2, 0x3E30DF6D, 0x19E3EDBF, 0x08E0BD4F},
33569 {0xAE17B4AB, 0xC15A65BA, 0xE079C8EE, 0x50F126A4, 0x05194DFD} } } } ;
33570 static const fp12_t var_expected = { { { {0xCDEDCAAE, 0xABCA2CF3, 0x01C81D09, 0xA624CCE9, 0x0FE2A4F2},
33571 {0x7ACAF7CE, 0x0F1CE817, 0x2E9D02BF, 0x69BE508F, 0x01E30C9A} } ,
33572 { {0x2E94525A, 0xC6D3BAAA, 0xEC0E5648, 0xE8EC8573, 0x0F682DAC},
33573 {0x715F0D39, 0x04BD754C, 0x7CC7B26C, 0x9C4F77AD, 0x01531047} } } ,
33574 { { {0xEC0A0218, 0x0C22B664, 0x9B73C0A4, 0x5193A62A, 0x00D0E939},
33575 {0xF2AF9664, 0x65E8065B, 0xBADCD82A, 0xF3AEE6D7, 0x0CD17654} } ,
33576 { {0x1B27F28D, 0x0C48AEB1, 0xBA27F2EF, 0x70BD017C, 0x0BEB3D5A},
33577 {0x34314862, 0x4A8BC0EB, 0x26D0EC9C, 0x34D455D8, 0x0CDC48FA} } } ,
33578 { { {0x0BBDB862, 0xCCEFFE52, 0xB07DEF3F, 0xE1182E01, 0x108A38AD},
33579 {0x3A3F56D2, 0x5FEC4BC6, 0x26343AE3, 0x8E5B86E9, 0x1D5C8204} } ,
33580 { {0xD7D7E365, 0xEB2BF2E9, 0x61C7F0A6, 0x291FF692, 0x0DD26CCD},
33581 {0xD6404485, 0xF950804B, 0xBC763F06, 0xEDA40B2D, 0x18A4DA12} } } } ;
33583 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4217 a000");
33584 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4218 a001");
33585 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4219 a010");
33586 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4220 a011");
33587 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4221 a100");
33588 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4222 a101");
33589 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4223 a110");
33590 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4224 a111");
33591 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4225 a200");
33592 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4226 a201");
33593 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4227 a210");
33594 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4228 a211");
33597 static const fp12_t var_a = { { { {0xD517C154, 0x89260CE5, 0x99E0705E, 0x36206C55, 0x20C65B71},
33598 {0x0D04E7BA, 0xA77B91CC, 0xB946B2FB, 0xB90D478A, 0x0CB0BC75} } ,
33599 { {0x15ACBD86, 0x95E20B9E, 0x3A9DCC6D, 0xA4895C54, 0x1AC7B0D8},
33600 {0x53AD74CC, 0xF8906C34, 0xA98E42D5, 0xF5829E77, 0x23A848E5} } } ,
33601 { { {0x4A9769DF, 0x62ED3AB7, 0x4D1E84E0, 0x5C810672, 0x1D119419},
33602 {0xE6FD370B, 0xA7267D9B, 0x65DCAA2A, 0x002EA105, 0x1FF51D1F} } ,
33603 { {0xE648ED72, 0xF3579642, 0x83E9D6D9, 0x4A0887B8, 0x01E3A90A},
33604 {0xC7BD10B1, 0x66BFDAC9, 0x5B7C11BB, 0x77BEA613, 0x19DB16F5} } } ,
33605 { { {0xF2202006, 0x9D3FE5DC, 0xF3A052EB, 0x6DF72FC3, 0x092F7623},
33606 {0x229102E5, 0xF19D26BA, 0xB99C6624, 0x32B1F436, 0x1F119DE4} } ,
33607 { {0xBF8562FF, 0xD103B724, 0xCE58B899, 0x2718AAC2, 0x1060DCB6},
33608 {0x766C4089, 0xE9C265E0, 0xACC86C2F, 0x4BE05CE7, 0x0D6C680A} } } } ;
33609 static const fp12_t var_expected = { { { {0xD517C154, 0x89260CE5, 0x99E0705E, 0x36206C55, 0x20C65B71},
33610 {0x3F4B6AA1, 0x76B1C2D4, 0x80040DA2, 0xF649145B, 0x1750638D} } ,
33611 { {0x487B5AD0, 0x04F81FE3, 0xD9AA4732, 0x4B309276, 0x21AE1F15},
33612 {0x3A1D1A0C, 0x62D17CE9, 0xBC14B6DF, 0xCA3044EC, 0x1FAA8850} } } ,
33613 { { {0xFFC499F4, 0xBE0A2AFA, 0xE3884849, 0x07724FA8, 0x0CE1F353},
33614 {0x72B2C813, 0x95E5431A, 0xEFB192B2, 0xA2740FE4, 0x04F41439} } ,
33615 { {0x0B69BDB4, 0xE407B552, 0x48B1A8B6, 0xE4B18C17, 0x176183F4},
33616 {0xA1CAD4FE, 0x86E8C805, 0xE80B7ACE, 0x4337E037, 0x1F865026} } } ,
33617 { { {0x56044E92, 0x179AD878, 0x80D47F64, 0x215D8244, 0x20A27CCA},
33618 {0x0620C7A2, 0x11C3275F, 0xA08F25BD, 0x08C702D6, 0x146855BB} } ,
33619 { {0xE6F54BF7, 0x038732CA, 0x568CD25A, 0x1AA26823, 0x1E562CCA},
33620 {0x40C8BD33, 0xA126041B, 0x867F57BE, 0x8AA38930, 0x020E1527} } } } ;
33622 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4229 a000");
33623 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4230 a001");
33624 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4231 a010");
33625 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4232 a011");
33626 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4233 a100");
33627 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4234 a101");
33628 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4235 a110");
33629 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4236 a111");
33630 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4237 a200");
33631 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4238 a201");
33632 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4239 a210");
33633 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4240 a211");
33636 static const fp12_t var_a = { { { {0x7B9AECEF, 0xF8D25678, 0x829582D7, 0x2991B520, 0x0E0486DD},
33637 {0xA9835028, 0x6ACC3949, 0x4171FCAA, 0x9363E6E5, 0x1D84E3D4} } ,
33638 { {0x9DD3A790, 0xFD422BFF, 0x69B2A447, 0xFD43A4E0, 0x091B5821},
33639 {0x6B189DA6, 0x8D597CFE, 0x39064812, 0x1D5D4909, 0x03D7B52B} } } ,
33640 { { {0xCE40BB48, 0xC09230C2, 0x87BD901D, 0x11C33D80, 0x11F99028},
33641 {0xC6C962E3, 0xC0C2A92E, 0x9E54A091, 0xF1034133, 0x008777BF} } ,
33642 { {0x4E4D1F8B, 0x273167D5, 0xB13FDCF1, 0xE2394D9B, 0x23DC2BCF},
33643 {0x458129C9, 0x45ED03D3, 0x7DD59990, 0x3A77424C, 0x2298EA7C} } } ,
33644 { { {0xE7C9087E, 0x6D1B8393, 0xC56077C6, 0x87B61C44, 0x1D3250BE},
33645 {0xBA02ECCB, 0x448E547D, 0x80FFF392, 0x5036DC9C, 0x23810260} } ,
33646 { {0x5A1280EA, 0x64A86827, 0xF4ECA4F6, 0x35441E62, 0x1A6C1B14},
33647 {0x3811506F, 0x4E84953E, 0x45B57D83, 0x37596C54, 0x1C00EC8E} } } } ;
33648 static const fp12_t var_expected = { { { {0x7B9AECEF, 0xF8D25678, 0x829582D7, 0x2991B520, 0x0E0486DD},
33649 {0xA9835028, 0x6ACC3949, 0x4171FCAA, 0x9363E6E5, 0x1D84E3D4} } ,
33650 { {0xAE7CAACB, 0x20EB28A0, 0xCF981C56, 0xB212B705, 0x1AE5C7E1},
33651 {0xE137B4B5, 0x90D3D7A1, 0x0044788B, 0x91F912DD, 0x20296AD8} } } ,
33652 { { {0x6AA08795, 0x40FF89FB, 0x82B61AAF, 0x5F82D0D3, 0x00703825},
33653 {0xA44031BF, 0xB76829F0, 0x75455F40, 0x0D4CE07A, 0x0513D925} } ,
33654 { {0x68F61F27, 0x055399CD, 0xF6FD828D, 0x5B78D1E4, 0x02D71645},
33655 {0x98B378D4, 0x82098FBF, 0xD7C71890, 0x4E804E10, 0x08856CDE} } } ,
33656 { { {0xC40D7867, 0x7DD0BA58, 0x5BEF49FC, 0xA9B1C0FB, 0x02ECEC94},
33657 {0xA6777587, 0x48FCA55A, 0x717D7B1F, 0x3F90DC7C, 0x0CD88A06} } ,
33658 { {0x2B252633, 0xC9B74CBD, 0xE9373238, 0xC7F44742, 0x2290EBCB},
33659 {0x1456E3A8, 0x9FC0A087, 0x379356FA, 0xF9AEE1BE, 0x20C208B2} } } } ;
33661 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_frobenius 4241 a000");
33662 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_frobenius 4242 a001");
33663 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_frobenius 4243 a010");
33664 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_frobenius 4244 a011");
33665 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_frobenius 4245 a100");
33666 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_frobenius 4246 a101");
33667 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_frobenius 4247 a110");
33668 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_frobenius 4248 a111");
33669 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_frobenius 4249 a200");
33670 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_frobenius 4250 a201");
33671 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_frobenius 4251 a210");
33672 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_frobenius 4252 a211");
33675 static const fp12_t var_a = { { { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
33676 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33677 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33678 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33679 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33680 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33681 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33682 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33683 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33684 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33685 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33686 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
33687 static const fp12_t var_expected = { { { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
33688 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33689 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33690 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33691 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33692 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33693 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33694 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33695 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33696 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33697 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33698 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
33700 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4253 a000");
33701 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4254 a001");
33702 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4255 a010");
33703 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4256 a011");
33704 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4257 a100");
33705 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4258 a101");
33706 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4259 a110");
33707 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4260 a111");
33708 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4261 a200");
33709 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4262 a201");
33710 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4263 a210");
33711 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4264 a211");
33714 static const fp12_t var_a = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33715 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33716 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33717 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33718 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33719 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33720 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33721 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33722 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33723 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33724 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33725 {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6} } } } ;
33726 static const fp12_t var_expected = { { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33727 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33728 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33729 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33730 { { {0x3141496C, 0x78B55281, 0xE52B0278, 0xBD596F98, 0x1004800E},
33731 {0x3141496C, 0x78B55281, 0xE52B0278, 0xBD596F98, 0x1004800E} } ,
33732 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33733 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33734 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33735 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33736 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33737 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } } ;
33739 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4265 a000");
33740 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4266 a001");
33741 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4267 a010");
33742 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4268 a011");
33743 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4269 a100");
33744 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4270 a101");
33745 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4271 a110");
33746 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4272 a111");
33747 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4273 a200");
33748 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4274 a201");
33749 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4275 a210");
33750 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4276 a211");
33753 static const fp12_t var_a = { { { {0xE9CDBF83, 0x2CC2AF9D, 0x6EF4BBAD, 0x34A37CB4, 0x03F81FE6},
33754 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33755 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33756 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33757 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33758 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33759 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33760 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } } ,
33761 { { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33762 {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000} } ,
33763 { {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
33764 {0x628292D8, 0xF16AA502, 0xCA5604F0, 0x7AB2DF31, 0x2009001D} } } } ;
33765 static const fp12_t var_expected = { { { {0x20FE9B8B, 0x45F86C11, 0x9B661D2C, 0x15503050, 0x1C53C3DD},
33766 {0x53326489, 0x7FAAFCF4, 0x9049C4CC, 0x5D250369, 0x163CDADF} } ,
33767 { {0xF5ACE4BB, 0x6DC38381, 0xFD8179BA, 0x7B4A04BA, 0x14A667B6},
33768 {0x5A1476B7, 0xE128A548, 0xE748C8FA, 0x0AF3AAEC, 0x087895BB} } } ,
33769 { { {0xB428ED6E, 0xC2514A90, 0xCE9191F5, 0x15E755D9, 0x10F12B76},
33770 {0xAD46DB40, 0x60D3A23C, 0x77928DC7, 0x6818AE56, 0x1EB5709A} } ,
33771 { {0x7E841B59, 0x57DFE583, 0x2E2E683E, 0xF72B2EFF, 0x1DEA3705},
33772 {0x246FA4A2, 0x76B7403B, 0x46E59F43, 0xEC378412, 0x1571A14A} } } ,
33773 { { {0xFC8EF6E9, 0xCF412BD5, 0x54807DE8, 0x2918AC3E, 0x06E22292},
33774 {0x9B986E04, 0x8C9ADE39, 0x1638B0BF, 0x705659CE, 0x0C2DD1FB} } ,
33775 { {0xF91DEDD2, 0x9E8257AB, 0xA900FBD1, 0x5231587C, 0x0DC44524},
33776 {0x20FE9B8B, 0x45F86C11, 0x9B661D2C, 0x15503050, 0x1C53C3DD} } } } ;
33778 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4277 a000");
33779 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4278 a001");
33780 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4279 a010");
33781 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4280 a011");
33782 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4281 a100");
33783 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4282 a101");
33784 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4283 a110");
33785 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4284 a111");
33786 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4285 a200");
33787 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4286 a201");
33788 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4287 a210");
33789 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4288 a211");
33792 static const fp12_t var_a = { { { {0x4ACCAE73, 0x89FD0B3B, 0xC15246B4, 0x49F3C9B8, 0x109037D9},
33793 {0xB7C85B96, 0xE31B9BE5, 0xB902F11E, 0xC54D9BE3, 0x1D674AE9} } ,
33794 { {0x896BA51C, 0x5162C8AD, 0x7059CA6D, 0x404E8928, 0x1F195375},
33795 {0x86BF34F8, 0xBBB3BD0C, 0xADA277FA, 0x4FAD7D03, 0x007CB59B} } } ,
33796 { { {0xE63423C8, 0xAA7A22AE, 0x7158CFDB, 0xAD7B6E1C, 0x1E7C8B8D},
33797 {0x64656FA6, 0xE5489A3F, 0x7AACEF1F, 0x6ECB741A, 0x179A2C8D} } ,
33798 { {0xEE9EC6CC, 0xB11F28B7, 0x123C6564, 0xFB807FC2, 0x14DA70F8},
33799 {0xB8C2EC32, 0xDF3C6FF2, 0xCA92937F, 0xD6A927D7, 0x0DE1ABA9} } } ,
33800 { { {0xE4CD4750, 0x1202BFCB, 0x63556AE4, 0x9DD715B5, 0x1195EEFE},
33801 {0x995D4B98, 0x697A7F37, 0x25CA752E, 0x55D5F2BD, 0x0004AFD4} } ,
33802 { {0xE11B6F6A, 0xC5F217BA, 0xF29A19C7, 0x0D5CEA46, 0x0EA7B0AD},
33803 {0x0678AC7C, 0x5336BF38, 0x134E9EC8, 0x625F6F75, 0x18284BDD} } } } ;
33804 static const fp12_t var_expected = { { { {0xF3D108D1, 0xC13490A1, 0xA58B53BA, 0x53D093DE, 0x0A184CCE},
33805 {0xB32768FF, 0xC80ED9AA, 0x65A0D149, 0x1B4C26A5, 0x16CAFDD6} } ,
33806 { {0xFD3E5DD9, 0x07B19B18, 0xD5E461BF, 0x1E4DAC8C, 0x1212B52C},
33807 {0x4EDCF70E, 0x088516A1, 0x0C3C3787, 0x5C2645AA, 0x175B3FB5} } } ,
33808 { { {0xBC079E54, 0x9E42D6A6, 0x2E8B4A93, 0x3F52019F, 0x18DF96BF},
33809 {0x154B17FF, 0x50C59185, 0xE9A676FE, 0x5B48E7A8, 0x00A3A971} } ,
33810 { {0xCB3B0F67, 0x9E20F1D4, 0xC1B1B861, 0xAE6758DC, 0x0499D1D2},
33811 {0x303C6A77, 0xB98FD95E, 0xC7A11F74, 0x76B9DD63, 0x08A03379} } } ,
33812 { { {0x96FA124F, 0x62841AC5, 0xC317C157, 0x542B1F8D, 0x0D12F4D8},
33813 {0xD1CAD310, 0xCDBF6A0B, 0x0EC61A6A, 0x5EBBD672, 0x2284AAD2} } ,
33814 { {0x95D344D8, 0x4783D9B7, 0x203C5164, 0x7739CE0E, 0x1A68B3B2},
33815 {0x5EA9F4D8, 0x25433DE4, 0xD13595F3, 0xAA6ECB0B, 0x16573A91} } } } ;
33817 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4289 a000");
33818 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4290 a001");
33819 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4291 a010");
33820 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4292 a011");
33821 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4293 a100");
33822 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4294 a101");
33823 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4295 a110");
33824 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4296 a111");
33825 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4297 a200");
33826 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4298 a201");
33827 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4299 a210");
33828 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4300 a211");
33831 static const fp12_t var_a = { { { {0xAA1ACA52, 0xD13DBB5D, 0x79605832, 0xE7B78C40, 0x1C81E078},
33832 {0x1EC2F0AF, 0xDAE4672E, 0xF29E7EAB, 0x9CA6D33B, 0x1231DF7A} } ,
33833 { {0xF51816E5, 0x212DBFCA, 0x12D3AFCB, 0xA0BF1DA3, 0x093B994D},
33834 {0x6AC6FC79, 0xD0B04F0A, 0x6AB5A408, 0x8304FC2D, 0x13143F1C} } } ,
33835 { { {0xE247CCA3, 0xA1CC4167, 0x13B0D8E2, 0x0C89AB7F, 0x187266AE},
33836 {0x362AEE5A, 0x7C697177, 0xB1025B68, 0x5CE09F37, 0x21DAE3C3} } ,
33837 { {0x25B761C5, 0x74E6BF92, 0x91488197, 0x45011939, 0x1FE55A63},
33838 {0x7E974E8C, 0x9ADA4143, 0x79DEDDD5, 0xBF0FC447, 0x10AF564C} } } ,
33839 { { {0xF9285755, 0x4552BF00, 0x07FB3A47, 0x2F7DDE39, 0x1FAFA4C2},
33840 {0x75E4282A, 0x272771BF, 0x4BBDC25A, 0x95D596B7, 0x0110D455} } ,
33841 { {0x95E4358E, 0xA117BC85, 0x0E0ED158, 0xC180BE2C, 0x05C2A69E},
33842 {0x4D35EFD8, 0xBB12E10D, 0x7CC22D1E, 0x29828195, 0x0E63D452} } } } ;
33843 static const fp12_t var_expected = { { { {0x46C291CB, 0xB04D4C1B, 0x34BC9922, 0x936B37D5, 0x2100C5A7},
33844 {0x6C47BDFF, 0xA14FE931, 0x79917EA2, 0x8079B196, 0x023A01A1} } ,
33845 { {0xFDEC4E53, 0xB3BFA624, 0x014CEA30, 0x65301DCC, 0x0F26DB36},
33846 {0xC40E54C0, 0xF4EA9533, 0xC9E76C43, 0x01337A4A, 0x19690392} } } ,
33847 { { {0xFE0928F8, 0x8350F72C, 0xDB124979, 0x64D9C4EC, 0x00B1E17D},
33848 {0x6965B521, 0x671607F2, 0xA26B99C5, 0x88266EDE, 0x17201448} } ,
33849 { {0x05AE7FFA, 0x7930D8D5, 0x0F1B6D06, 0xDE4E678A, 0x00A7859B},
33850 {0xB4CC63A5, 0x3CE78E7B, 0x8EF69026, 0x6F53F5B6, 0x1F03910E} } } ,
33851 { { {0x5DC4F8C5, 0xEECECA12, 0x8555CDAF, 0x55D7B2FA, 0x0B61C259},
33852 {0xE3760C22, 0xE4EF6F5A, 0xC0C68584, 0x430D1849, 0x07D9A5BF} } ,
33853 { {0x9C2A2E82, 0x7733D02E, 0x5592F0F8, 0x1AD67EF4, 0x137D6668},
33854 {0x5ABDF608, 0xA741E0C0, 0x8C4B1BE5, 0xF69C92BF, 0x00DB0125} } } } ;
33856 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4301 a000");
33857 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4302 a001");
33858 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4303 a010");
33859 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4304 a011");
33860 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4305 a100");
33861 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4306 a101");
33862 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4307 a110");
33863 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4308 a111");
33864 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4309 a200");
33865 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4310 a201");
33866 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4311 a210");
33867 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4312 a211");
33870 static const fp12_t var_a = { { { {0x8390D68E, 0x5D66281E, 0x1EE7075D, 0xC9B6C94D, 0x07FE26B0},
33871 {0x46C48651, 0x1C21066B, 0x9C60FF0F, 0x17BD7716, 0x1511057B} } ,
33872 { {0x11475C34, 0x19F7D179, 0xD837909F, 0x6041DB2F, 0x1775FE14},
33873 {0x96096099, 0x9BDDEFA4, 0x3770296E, 0x695F5FFF, 0x001DBF11} } } ,
33874 { { {0xE85883E7, 0xEFE7E738, 0xBF2670E3, 0xC9204349, 0x036C5DB6},
33875 {0x68E20952, 0x2F6E2FE7, 0x629DF1F4, 0x6CCBD41F, 0x17E46C8E} } ,
33876 { {0xB6CE4EF3, 0x7190CE3F, 0xC01E1EAB, 0xF156ED94, 0x029F83E5},
33877 {0x109B471E, 0x333353D6, 0xB2D2EDC0, 0x5504F608, 0x14BC7665} } } ,
33878 { { {0x46A7F3DF, 0xF858E818, 0x8092B74D, 0x58A7AE7A, 0x117CA348},
33879 {0x543947CC, 0x8102F5B3, 0xAA58B235, 0x80D84E3C, 0x1F73B596} } ,
33880 { {0xCC436E52, 0xE1F71C4E, 0xA2A18689, 0x69B4F9A9, 0x17BA2074},
33881 {0x6AC69F90, 0x5C270C16, 0xDBCE1F5C, 0x06E4E415, 0x1D379FCC} } } } ;
33882 static const fp12_t var_expected = { { { {0x7245020C, 0x123D60E5, 0x37B88617, 0x4CBAAE67, 0x12CBE1D5},
33883 {0x26E0AF8F, 0xB172633D, 0x957C2F1E, 0xE93A1A50, 0x0B6F05E3} } ,
33884 { {0x1C72371A, 0x38093BE6, 0x5986B060, 0x05E83F9B, 0x21AEC4A6},
33885 {0xD38BA042, 0xE5E61621, 0xA04BA9CB, 0x00607B44, 0x0C45D705} } } ,
33886 { { {0xEC455AE4, 0xFF198B1C, 0x03207BB6, 0x2189EA2A, 0x0FD0287A},
33887 {0x7E996DCE, 0x9C9F674F, 0xDB0631CE, 0xD8D7C2AB, 0x1A6EB30F} } ,
33888 { {0xA320915F, 0x5AE6EBAB, 0x54C41621, 0x4C652992, 0x0677421C},
33889 {0x128E6EB0, 0xA2B2807A, 0xFDE3C6F6, 0x9FDD1372, 0x157653DB} } } ,
33890 { { {0x1813E2D0, 0xA933E50D, 0x607B1151, 0xAFD46C6F, 0x11C01A59},
33891 {0x482545E7, 0xDF840E3B, 0xA4D3A1FB, 0xC155D84F, 0x1BCCE397} } ,
33892 { {0x2695FE4B, 0x062EA934, 0x1E448D34, 0xFBCBA350, 0x0D11352E},
33893 {0xE30652BE, 0x2E655892, 0xB03D7B6C, 0x57BDA865, 0x06FFDE4B} } } } ;
33895 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4313 a000");
33896 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4314 a001");
33897 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4315 a010");
33898 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4316 a011");
33899 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4317 a100");
33900 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4318 a101");
33901 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4319 a110");
33902 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4320 a111");
33903 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4321 a200");
33904 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4322 a201");
33905 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4323 a210");
33906 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4324 a211");
33909 static const fp12_t var_a = { { { {0xEC022A23, 0xA9344E31, 0xA50E54BC, 0x74532BA7, 0x15E86E5A},
33910 {0xD6DD4114, 0x4B14EB2F, 0x81A91AB9, 0xB91B4851, 0x02B6528D} } ,
33911 { {0x5062966B, 0x634FAB89, 0xB6FDB87C, 0x5DD1A89B, 0x23E74F70},
33912 {0xBC42CBC2, 0x1C88CE22, 0xE0BDA52A, 0xB367C7DD, 0x0BE9D0FD} } } ,
33913 { { {0x279E00B3, 0x312593CC, 0x879ECE0B, 0x888CECEA, 0x1D21A084},
33914 {0x66B73A98, 0x2778B5F2, 0xAFF920C4, 0x5A3D4059, 0x06E403E6} } ,
33915 { {0x72A1683F, 0x239E6A09, 0xD8DE5934, 0x2C052AC8, 0x1CED5BA2},
33916 {0x944B2FBF, 0x70BAEE68, 0xDD411B7B, 0xFCD6B01C, 0x048C1814} } } ,
33917 { { {0xDE452FB3, 0x70B55384, 0xE60AAD63, 0xF6A10048, 0x21E377D9},
33918 {0x69EACCDB, 0xD0AA5633, 0xAFB0FB89, 0x110DD30E, 0x02E1F34A} } ,
33919 { {0x3D2E7189, 0x43B256BE, 0x6FEE7E9A, 0xB5FEBCEA, 0x0ABD21B7},
33920 {0x82AB3A66, 0x44416BA7, 0x51359DF3, 0x9153A209, 0x09547FC6} } } } ;
33921 static const fp12_t var_expected = { { { {0xAE44473E, 0x68956396, 0x3A7179CC, 0xD4A7880C, 0x18D67099},
33922 {0x8DA1DD96, 0x2C00E603, 0x0E2B9B2C, 0xB38C4973, 0x0ECAC182} } ,
33923 { {0x6A8BFE01, 0x86462871, 0x8A416320, 0xFFE66F90, 0x0D260DDD},
33924 {0xE4DDA28D, 0x1F4051AC, 0xF4610F95, 0x92864813, 0x08265D56} } } ,
33925 { { {0x26CF4867, 0x051526DA, 0x7AE17604, 0xE9DA1504, 0x09CB80D9},
33926 {0xCA9C9622, 0x47751C24, 0x3494B40E, 0x91DB5D8E, 0x126792F9} } ,
33927 { {0x46D0D861, 0x0A83EFD1, 0x313A3112, 0xF89BFED0, 0x1A022FDA},
33928 {0xD48F839F, 0xD4FFFCA6, 0x47A5DF9E, 0xF2377C07, 0x20B51358} } } ,
33929 { { {0x0E184839, 0x82F54842, 0x4FDC28DE, 0x887F37E3, 0x0D12333F},
33930 {0x0C3E54C6, 0x13B845E1, 0xE1680CDB, 0xF7B86B4E, 0x0132000A} } ,
33931 { {0x39CB3D91, 0x91E3EE3D, 0xCD4E2D9B, 0x2E920CF7, 0x1EB71DD8},
33932 {0x8CABE1D2, 0x9AEE5692, 0xD33CEFE7, 0x8C84E4F3, 0x04FD4E69} } } } ;
33934 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4325 a000");
33935 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4326 a001");
33936 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4327 a010");
33937 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4328 a011");
33938 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4329 a100");
33939 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4330 a101");
33940 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4331 a110");
33941 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4332 a111");
33942 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4333 a200");
33943 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4334 a201");
33944 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4335 a210");
33945 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4336 a211");
33948 static const fp12_t var_a = { { { {0x99AA677D, 0x17F133C9, 0xE74D39F0, 0x06C6114A, 0x04C8277A},
33949 {0x8967725F, 0xD487022E, 0x03E6CE03, 0xF0CF2F51, 0x0AC6B05D} } ,
33950 { {0x336ADA26, 0x422740A1, 0x006D61B3, 0x457E53A8, 0x0829C0D0},
33951 {0xC41FC125, 0x67C0474A, 0x7F7B1D78, 0x362C764E, 0x1B51C8C6} } } ,
33952 { { {0xB8ECE11A, 0x5EB4C5AD, 0xD51E9CE5, 0x2F144BE3, 0x0488077A},
33953 {0xB41B154D, 0x1044999E, 0x3CCDCD67, 0x160B4A35, 0x0F84F2E7} } ,
33954 { {0xB4DBD3EE, 0xF1238F13, 0x065CAEC2, 0xBEF777FD, 0x1161455C},
33955 {0x5BF9E6B6, 0xF5A2AD19, 0x0B0E52FC, 0xEF992CDB, 0x23D078ED} } } ,
33956 { { {0x4D36A167, 0x0A77AC38, 0x054787E9, 0x1FD82715, 0x1CDAD446},
33957 {0xB81768C4, 0x102D31A3, 0x121B0EB5, 0x5D1329DD, 0x0A8D3D5C} } ,
33958 { {0xC9AD3480, 0x9BCE4A4A, 0x3E6B0BB3, 0x98EB52E1, 0x01351E82},
33959 {0x74FA193A, 0x2DC60DA6, 0xB6AED716, 0xC65A975F, 0x020A7B46} } } } ;
33960 static const fp12_t var_expected = { { { {0xACAA2F13, 0x768C8892, 0xB067AD0F, 0xFD9B5C43, 0x141C9CAE},
33961 {0x3068B516, 0xBD82B1E1, 0x5EC7EB12, 0xF800BF46, 0x12DE060D} } ,
33962 { {0x64270B9A, 0x68D96619, 0x608C8FB7, 0xCD4E7250, 0x1150C98C},
33963 {0x25461930, 0x54A9DB58, 0xD5D09717, 0x0470AC1E, 0x070322D6} } } ,
33964 { { {0x71188E63, 0x72E5EA38, 0xF657CC62, 0xD4C19B38, 0x1627A806},
33965 {0x1B20526F, 0x65155FFE, 0xB4C112EC, 0xC0847655, 0x10BC2B63} } ,
33966 { {0x7C7CDD4F, 0xCB127EEB, 0x512F5BD9, 0x5BE87D9D, 0x1C8C1B65},
33967 {0xA040E03E, 0x96A87E41, 0x92AB0CAD, 0xE5C30E07, 0x078F7137} } } ,
33968 { { {0xBD4BC74D, 0xE45A19B0, 0x34534B70, 0x274BBE5F, 0x04A10CE0},
33969 {0xE9A52FAA, 0xE1C168D4, 0x73D301E3, 0x1E47A2F1, 0x168E8A8F} } ,
33970 { {0xF6FECEE8, 0x663F5906, 0x88CBB23D, 0x4E4D6AE1, 0x22B6F077},
33971 {0xFBD3DC3C, 0x3957D123, 0x7BFFBB40, 0xC0EDEE4D, 0x105173B6} } } } ;
33973 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4337 a000");
33974 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4338 a001");
33975 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4339 a010");
33976 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4340 a011");
33977 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4341 a100");
33978 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4342 a101");
33979 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4343 a110");
33980 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4344 a111");
33981 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4345 a200");
33982 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4346 a201");
33983 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4347 a210");
33984 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4348 a211");
33987 static const fp12_t var_a = { { { {0xA9473527, 0x86AA90CB, 0x0962A8FC, 0xC6679ADA, 0x147E8CD5},
33988 {0x6305CBBB, 0xF986E92A, 0x998CEC47, 0xF94E8950, 0x06BD7E57} } ,
33989 { {0xA7842F37, 0x6F2C8F4B, 0x360A007A, 0xB1EA2C25, 0x1CBE713C},
33990 {0xC3DCB73E, 0x34498E74, 0x189621AB, 0x95E76B02, 0x2128B5D3} } } ,
33991 { { {0x8A2F1792, 0xBDE43304, 0xE11AA81D, 0x1E021FC8, 0x10382204},
33992 {0x152910BF, 0x7C48DA98, 0xA26DD805, 0x276EC18C, 0x164D83A6} } ,
33993 { {0x3AE3DC1F, 0x405C8AEB, 0x6A9F18B2, 0xD53AB5B3, 0x03743CAA},
33994 {0x5605C1A3, 0xBC2BA624, 0x1FAD7B47, 0x582C3E5F, 0x113F251E} } } ,
33995 { { {0xA18D15DE, 0x1CF9E8C9, 0x2C7AD549, 0x7E352817, 0x16BBD646},
33996 {0x2399960E, 0x84D63769, 0x2FB016C3, 0x25D0CEF5, 0x087A905C} } ,
33997 { {0x2B8274CE, 0xB18527E1, 0xA0D886E1, 0x0A37A10A, 0x0995822B},
33998 {0xDEFB1F0F, 0x84FAD2F1, 0xF67AF60B, 0xE194C6CB, 0x0A59D969} } } } ;
33999 static const fp12_t var_expected = { { { {0x2D0D797C, 0x1B514C3D, 0xACE09A2E, 0xEAD70A68, 0x1964D66A},
34000 {0x6FD931E6, 0x31A33238, 0x664A5D68, 0xC856FACC, 0x07AFCDDC} } ,
34001 { {0x4988DB2A, 0xA0F2C51A, 0xD672602E, 0xB49CC825, 0x110A35F2},
34002 {0xE43CD27D, 0xE3F197F5, 0xD4A0E75B, 0x75405697, 0x0A4FA165} } } ,
34003 { { {0xCC32CD83, 0x38502C60, 0x02B0A1C1, 0xDE52F7BE, 0x086A209B},
34004 {0xC50FCAEC, 0x43E2F6EE, 0xFA157E42, 0x9C2ED4A8, 0x03162EB9} } ,
34005 { {0x488EE73A, 0x47B523B4, 0x72AFFAA9, 0x8F680BF1, 0x00B183B3},
34006 {0x57C7A524, 0x169593DC, 0x005EFCE2, 0xB156E24C, 0x02BD196A} } } ,
34007 { { {0x57984352, 0x9153AAD1, 0x2D499B07, 0x1EFFA200, 0x02F39FA4},
34008 {0xA3F2134C, 0x9493AEF0, 0x61D0E419, 0x8C8EDD69, 0x20B59CE1} } ,
34009 { {0xA7F968EE, 0xD7B35314, 0x89218B46, 0xD7D9460D, 0x1F311B8E},
34010 {0x6152D5D6, 0x72B512AC, 0xFE633143, 0xA9F474CA, 0x1EE601E0} } } } ;
34012 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4349 a000");
34013 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4350 a001");
34014 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4351 a010");
34015 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4352 a011");
34016 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4353 a100");
34017 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4354 a101");
34018 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4355 a110");
34019 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4356 a111");
34020 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4357 a200");
34021 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4358 a201");
34022 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4359 a210");
34023 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4360 a211");
34026 static const fp12_t var_a = { { { {0x1C6B05B2, 0xA276BC99, 0x9598C065, 0xCDA788C1, 0x0D069F82},
34027 {0x66581A8E, 0x5BDA0E60, 0xF7E8B8BB, 0x20A37C82, 0x1B461F2D} } ,
34028 { {0x8AFEB698, 0x458BE5CF, 0x4D611CF1, 0x3B3DC5C6, 0x1A8C2633},
34029 {0x0537D897, 0xE2CC495C, 0x121DA0E9, 0xCC31F6D1, 0x20BE8FE1} } } ,
34030 { { {0xA1351957, 0x7EEE6080, 0x185DED22, 0xC143A9C7, 0x1D7C9156},
34031 {0xA0B41E86, 0xC52B5309, 0xF185889F, 0xFD003BB4, 0x22887FE3} } ,
34032 { {0x362D2523, 0x9535AEBF, 0xE5DC9E39, 0xAEFEA51C, 0x1B090A59},
34033 {0xC5222030, 0x18A282DA, 0xCC0F2100, 0x43AF036F, 0x1D506AFB} } } ,
34034 { { {0xE263C65C, 0xBB2DCC7C, 0xE207E81A, 0x2A03EF26, 0x05C40C71},
34035 {0x4D3E5CB8, 0x08F9C46F, 0x4689A0D7, 0x6FABC117, 0x07469638} } ,
34036 { {0x47F00F69, 0xDFEF9BDF, 0x59E5CBDE, 0x247EA48C, 0x1BDDC48A},
34037 {0x03FF52D3, 0x9A5DC690, 0xBC57C468, 0x3ED7E53F, 0x0705B088} } } } ;
34038 static const fp12_t var_expected = { { { {0x2E06F661, 0xDD421F10, 0x309BD873, 0x2D8E7401, 0x07E0592B},
34039 {0x95C7652D, 0x06ADD5B6, 0x5541D514, 0x9E120B26, 0x176D152A} } ,
34040 { {0xD8D7BA60, 0x48A2564B, 0x478E6FBE, 0x37C03B26, 0x1977F5B9},
34041 {0x9D42B4AA, 0xAD728E5D, 0x9D184472, 0xC025BB15, 0x22358F64} } } ,
34042 { { {0x76D01530, 0xBB701D30, 0x86C1CA49, 0xF4F46EB9, 0x0D7A29AA},
34043 {0x808FE0B5, 0xAECEC57A, 0xC70E6D9E, 0x2E788E60, 0x1DB2BE8A} } ,
34044 { {0x261D2988, 0x035B3C2F, 0x2BF0BDA0, 0xB31F8C4F, 0x1301B994},
34045 {0x6142BEC7, 0xC916E85A, 0x4B390EFB, 0x5CE55D78, 0x1B93030B} } } ,
34046 { { {0x261B738D, 0x396B9203, 0x9B50BED5, 0x595B8D77, 0x1EED621E},
34047 {0xA18F04FF, 0x9128AD6C, 0x1870FA6F, 0x293CA4E3, 0x10683596} } ,
34048 { {0xAD7D624A, 0x89DB1C4A, 0x83BFB267, 0xA200AC72, 0x12284AFF},
34049 {0x20A0176E, 0x63287F07, 0x9CD4E945, 0xF0345307, 0x071DE3DD} } } } ;
34051 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4361 a000");
34052 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4362 a001");
34053 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4363 a010");
34054 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4364 a011");
34055 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4365 a100");
34056 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4366 a101");
34057 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4367 a110");
34058 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4368 a111");
34059 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4369 a200");
34060 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4370 a201");
34061 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4371 a210");
34062 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4372 a211");
34065 static const fp12_t var_a = { { { {0x14DC523F, 0x81F79EB4, 0xB98C525A, 0xEBEF914B, 0x09DDAB7D},
34066 {0xB1A0517C, 0x3A264D8C, 0x5DF6F7C0, 0x8B9BFAF4, 0x2275948C} } ,
34067 { {0x76DBD2D6, 0xED6B8879, 0xFC4BC2FC, 0xF45A65F2, 0x1DAB34A8},
34068 {0xCF3361C7, 0x0FFB6B02, 0x48D0D320, 0xA3103977, 0x099CC60A} } } ,
34069 { { {0x7EDDF1CC, 0xE1FAB010, 0x65760564, 0x1A3C3219, 0x126F7329},
34070 {0x906289D4, 0x583E60BC, 0xC7FAC539, 0xECFB2BC4, 0x12340F92} } ,
34071 { {0x61E9C731, 0x215AE796, 0x0B725537, 0xB0CFA54C, 0x0D1290E4},
34072 {0xE2D5C366, 0xC9BEF9E5, 0x1343AD1D, 0x28512A17, 0x10E3A79E} } } ,
34073 { { {0xF1D399A1, 0x2E9CF533, 0x6D3512EB, 0x41BC9BC4, 0x10F76D9C},
34074 {0x5BABEF4D, 0x5F2E4A81, 0xF9D3E12A, 0x4778C3C0, 0x222C22B3} } ,
34075 { {0x3FF7078A, 0xE6027E78, 0x74A49A03, 0x9C3B5F16, 0x07DA4ECB},
34076 {0xA688389A, 0xE5161E8B, 0xD21EA8D7, 0xD13B5054, 0x011D4866} } } } ;
34077 static const fp12_t var_expected = { { { {0x607AAD10, 0x45F4F7ED, 0xD996E2E4, 0x4297C45A, 0x1162A293},
34078 {0x71F86DE2, 0x8EFDE481, 0x7A51868D, 0x0F51690E, 0x0E77F26D} } ,
34079 { {0xE71525F1, 0x93E5F861, 0xFC752A30, 0x24C80A95, 0x14601F59},
34080 {0xD108736C, 0xBB535EF3, 0x090D144A, 0x4FC7D3CD, 0x20C00326} } } ,
34081 { { {0x6F63F5CA, 0x6D5919A5, 0x465DEFC6, 0x9A830C03, 0x0D2E3C64},
34082 {0xD228CC4E, 0x43DCBEC8, 0x5A3546B4, 0x1EA27452, 0x1F26ED7A} } ,
34083 { {0x8A23246A, 0x32B92E84, 0xB65BDD55, 0x31C875AE, 0x033CB2B5},
34084 {0x596CDE40, 0xD54284D8, 0xD8C37049, 0x12D16FD6, 0x0EDDCC75} } } ,
34085 { { {0x45215A3A, 0x7685DF00, 0x4A491D26, 0x8B173979, 0x15C2039E},
34086 {0x63F944E0, 0xDA4127B1, 0x6E724A7C, 0x77979C55, 0x162EBFAF} } ,
34087 { {0xA09446B0, 0x06DBC8CC, 0xCCD45B56, 0x5A337578, 0x009BFEB4},
34088 {0x9E007A57, 0xAFC92F83, 0x9081040C, 0x0FBAA899, 0x0CF5A055} } } } ;
34090 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4373 a000");
34091 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4374 a001");
34092 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4375 a010");
34093 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4376 a011");
34094 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4377 a100");
34095 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4378 a101");
34096 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4379 a110");
34097 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4380 a111");
34098 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4381 a200");
34099 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4382 a201");
34100 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4383 a210");
34101 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4384 a211");
34104 static const fp12_t var_a = { { { {0xE0B6E7D4, 0xF9137E2A, 0x41BBCE04, 0x44261149, 0x20755E05},
34105 {0x0546D014, 0x8099D9F8, 0x5CBCBDB4, 0x8EAC94EF, 0x08E96DE0} } ,
34106 { {0xBDA754B3, 0x3E53716A, 0x7B827307, 0xD5A1258F, 0x0AD5E626},
34107 {0x1905214D, 0x8D89A748, 0x438AAA03, 0x3671BA09, 0x1A75FC49} } } ,
34108 { { {0x4CF11482, 0x02B04A0E, 0xC3E74298, 0xBA1EF00F, 0x064A6AA0},
34109 {0x3FA1BB6F, 0x4160C4DF, 0xAB8F9F29, 0x696A9CAD, 0x0C7519C4} } ,
34110 { {0x5A6DA185, 0x6D9EBCA7, 0x20594DA7, 0xFCAE130A, 0x12A14D9C},
34111 {0x894CB966, 0xD56EB6E9, 0x72168B2F, 0x1CCF39D0, 0x188248FD} } } ,
34112 { { {0xE3CEC4E2, 0xFD367FF1, 0x2E0CD1BB, 0xAB766FAD, 0x156DF8ED},
34113 {0xF252B9CA, 0xAE43F42C, 0x9E8FBCF7, 0x14B06117, 0x1CBDAA0C} } ,
34114 { {0x58D700DA, 0x20698100, 0x65D8C8BE, 0x36A26CF6, 0x05DFC255},
34115 {0xC1E40B01, 0x6195CD24, 0x08B848ED, 0x3053BF6E, 0x1068A07A} } } } ;
34116 static const fp12_t var_expected = { { { {0xD787EF59, 0xA9240ABA, 0x769BB9D3, 0x55A558D2, 0x0E6D9729},
34117 {0x226FD444, 0xB723077B, 0x8A8479D8, 0xD1A1A833, 0x1B133116} } ,
34118 { {0x03CFD2C4, 0x7B55B19D, 0xB8C4C62F, 0x8995BFDB, 0x008A8E11},
34119 {0x2E401E72, 0x4F22D0B4, 0x2D2B065C, 0xC66E12F5, 0x0FFD369A} } } ,
34120 { { {0xB8C36576, 0x3E55F7FB, 0x58DFBF0A, 0xBE5657A1, 0x0B410FCB},
34121 {0x65B8766A, 0xA3A5B051, 0x65B0C2FB, 0x6C459680, 0x1CF8E2D9} } ,
34122 { {0x7C4F2F9E, 0x1218A129, 0x364955D8, 0xBB5EAF19, 0x06C67F2C},
34123 {0x43DF2930, 0x5C70BB54, 0xC72853F3, 0x6CB21A1C, 0x13BD4077} } } ,
34124 { { {0xE733CAA5, 0xE5DCA9F6, 0xB8878F16, 0x9FA41D49, 0x0A01B5F0},
34125 {0x7CCF9F7A, 0xFEB2FCCD, 0x90D979D6, 0xD3408D37, 0x1F3BF00C} } ,
34126 { {0xECBAC944, 0xFC294006, 0xCCE36449, 0x8EE1F099, 0x21C4A4B8},
34127 {0x3CF36792, 0x18F06801, 0x56748384, 0x40173855, 0x0A6E94FA} } } } ;
34129 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4385 a000");
34130 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4386 a001");
34131 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4387 a010");
34132 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4388 a011");
34133 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4389 a100");
34134 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4390 a101");
34135 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4391 a110");
34136 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4392 a111");
34137 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4393 a200");
34138 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4394 a201");
34139 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4395 a210");
34140 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4396 a211");
34143 static const fp12_t var_a = { { { {0x11B569FE, 0xAF454F6C, 0xC3B91720, 0x7F385108, 0x02B22CDC},
34144 {0xD86AB0B4, 0x3E862DC2, 0x71A0DE1A, 0x0D8AF9C0, 0x067E52DD} } ,
34145 { {0x1B4E8C1C, 0xDF3A2C75, 0xC15BFA8A, 0x17F05A0C, 0x20A0EFA4},
34146 {0xCC63AE8F, 0x1F7C2BA4, 0xDCB13F6B, 0x307838ED, 0x110F9615} } } ,
34147 { { {0x408B1E19, 0xA8A6CE67, 0xAF172596, 0x8CD11DDF, 0x18778299},
34148 {0x60EAC126, 0x69A0521B, 0x039F4325, 0x805BAF20, 0x02020C2A} } ,
34149 { {0xA132E8E4, 0x7408D181, 0x57FBEAFF, 0x5EBC4F69, 0x16EEE2B1},
34150 {0x8D8F33E2, 0xB10A9812, 0x6386BE93, 0xF0BBCC4B, 0x18BC7790} } } ,
34151 { { {0x7B5250E1, 0xEB37EA9B, 0xE154F26A, 0x3B499C21, 0x0DA56CA0},
34152 {0x677FD782, 0x5B43E2B6, 0xC2801780, 0x18CB78BB, 0x0AC0E092} } ,
34153 { {0xEE2AE31B, 0x757B585B, 0x3A0E125A, 0x0E4360F9, 0x0BC2B80B},
34154 {0x84CEB370, 0x2C00CF41, 0xA4AF5A26, 0x95552CB2, 0x000007CD} } } } ;
34155 static const fp12_t var_expected = { { { {0xB66DAACA, 0xDA854A07, 0xFDD690B9, 0x4BFDAB74, 0x015AFD75},
34156 {0xF20CBCD6, 0x384557E9, 0xA84759FE, 0x4E1C406F, 0x06559567} } ,
34157 { {0x40A1E5D9, 0xF5BB4667, 0xAA8DAE4D, 0x4D84CAD3, 0x1A7630AC},
34158 {0x7BA6070B, 0x069666B4, 0xB90CE447, 0xF794F616, 0x18FFD8B4} } } ,
34159 { { {0xCC853C26, 0x74867451, 0x141F854E, 0x587CF637, 0x07C42AE1},
34160 {0x5892CC9B, 0x4F323B51, 0x55A1E5C8, 0xFEA9A793, 0x0C337E0C} } ,
34161 { {0xEC835D6E, 0x09550DE1, 0x9E0142EE, 0x332D62E6, 0x1B364CFB},
34162 {0x731F8710, 0x0E78A4F6, 0x347AE7F0, 0x348B2278, 0x179CC9B8} } } ,
34163 { { {0x32CB1B15, 0x73C57C50, 0x1CD846EA, 0xC6C8A4A7, 0x0FAFCFAF},
34164 {0x12C003C9, 0xBB9FA88B, 0x58D082BD, 0xEB9E63FC, 0x137545CA} } ,
34165 { {0xB4ECD1CF, 0x24BD3F70, 0x8D5B0BCC, 0xB118EB4B, 0x0C88FA2F},
34166 {0x113400FA, 0x2C800B92, 0x012B68BD, 0xD1F5C134, 0x20170D63} } } } ;
34168 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4397 a000");
34169 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4398 a001");
34170 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4399 a010");
34171 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4400 a011");
34172 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4401 a100");
34173 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4402 a101");
34174 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4403 a110");
34175 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4404 a111");
34176 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4405 a200");
34177 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4406 a201");
34178 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4407 a210");
34179 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4408 a211");
34182 static const fp12_t var_a = { { { {0xACECB3AF, 0x45B92F8B, 0x539CF7A5, 0xDF5C4361, 0x0DB118E4},
34183 {0x17B1F274, 0xD3C41AEC, 0xBFCE17B2, 0xEB36A574, 0x0E44A6CD} } ,
34184 { {0xDB9378C8, 0x36CC2AEA, 0xD2E1DF09, 0x2D55ADE1, 0x085BF47E},
34185 {0x7EAC68C3, 0xC6C2DF1A, 0x3539BC22, 0xD364D5A0, 0x0B151760} } } ,
34186 { { {0x755FEB25, 0xB45C2819, 0x38EDB6F8, 0x00BEA7AE, 0x1110EFF2},
34187 {0xC70D1F64, 0x1445D1B2, 0x5409F4F2, 0x66EBFEA9, 0x0208707C} } ,
34188 { {0x2F3F8440, 0x15E736FD, 0x908BF285, 0xED4D43BB, 0x1AD3742E},
34189 {0x6AE91BFA, 0x4A67C791, 0xFA91AF99, 0x8EDF92BD, 0x0161EC4F} } } ,
34190 { { {0x892C8B3E, 0x323077BD, 0xE9A6E21B, 0x8B745A28, 0x22A8F0EF},
34191 {0x9433AC18, 0x5A975E11, 0x1AB1DE57, 0xB4EE2F51, 0x01014C49} } ,
34192 { {0x71B37C3C, 0xC627A545, 0xECE0AF40, 0x51CD3D71, 0x1CC18EFC},
34193 {0x579C26F9, 0x4C8B7BD0, 0x25C56F5C, 0xDA7403EB, 0x176237E7} } } } ;
34194 static const fp12_t var_expected = { { { {0xD8962168, 0x7A88A1B2, 0x7B6A3539, 0xCF4440B9, 0x0B6E1EFA},
34195 {0xF0AE1DF8, 0xE77B5EFB, 0xCC005F70, 0x2592B3AD, 0x00BAC762} } ,
34196 { {0xE511B179, 0x9D0808A1, 0x9A16EA96, 0xD1EE5416, 0x19802B61},
34197 {0x20F97926, 0xCAFFFB7D, 0x4D251F2A, 0x67F0A39B, 0x1A5B13AE} } } ,
34198 { { {0x425F563A, 0x6B0C7016, 0x225A3FF0, 0x5B9CE2F1, 0x05613E45},
34199 {0x4B18D739, 0xA7423F28, 0xE4048AC2, 0xCFA91C6B, 0x1715CC55} } ,
34200 { {0x83404DD6, 0x963BA5CF, 0x614F1E13, 0xA6266DA5, 0x0AC723B7},
34201 {0xF212A869, 0xBD69C7D3, 0x12C38CD4, 0x1CB5C0A1, 0x02F9CE25} } } ,
34202 { { {0xB2607FEF, 0xD317C063, 0x13B10CF2, 0x25D38B11, 0x025626E8},
34203 {0x1C8690B8, 0x98348AB6, 0x7C9D2313, 0x033599F7, 0x163FDEE5} } ,
34204 { {0x30DFB090, 0x1713E69D, 0xE5431C31, 0x4CD52B09, 0x0235E393},
34205 {0x34A90E95, 0x02460306, 0x3616DB75, 0x65634D16, 0x00459197} } } } ;
34207 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4409 a000");
34208 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4410 a001");
34209 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4411 a010");
34210 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4412 a011");
34211 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4413 a100");
34212 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4414 a101");
34213 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4415 a110");
34214 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4416 a111");
34215 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4417 a200");
34216 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4418 a201");
34217 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4419 a210");
34218 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4420 a211");
34221 static const fp12_t var_a = { { { {0xE703442B, 0xF6882086, 0x66A07688, 0xB3A59AE4, 0x102224FA},
34222 {0x69B3CC8A, 0x128E3F0D, 0xE9C8A9B3, 0xB85C50AE, 0x0BCF2739} } ,
34223 { {0xC2999D12, 0x12D897C3, 0x7E2F95E6, 0x4970628D, 0x13C0E9C6},
34224 {0xE4F87B0C, 0x74CA4089, 0xC55EC7F0, 0x0D92B44E, 0x033878F3} } } ,
34225 { { {0xB9A40EC1, 0xF80B5AE3, 0xC29852AC, 0x7301EEAB, 0x035F22B7},
34226 {0xCFB14ED0, 0x9E9AEC63, 0xAD58E1D9, 0x5343FAB1, 0x02638FCC} } ,
34227 { {0x4EC93135, 0xD1A973B7, 0x53CFFEBE, 0x788E8FE2, 0x14F3D9ED},
34228 {0x72E005E7, 0x53704568, 0x321E278B, 0x885BA071, 0x225133AE} } } ,
34229 { { {0x6CEC023A, 0x94478112, 0x86A830A6, 0x6AB59B81, 0x0B18D69E},
34230 {0x82C543E7, 0x1A6EA734, 0xF8D8EE31, 0x601F6F67, 0x17A6924B} } ,
34231 { {0x99AFAB60, 0xD3684276, 0x717DACEB, 0x8804FF5B, 0x1E3D8C62},
34232 {0xBF9A7579, 0xAE045C08, 0x527FE015, 0x69DE1D11, 0x14BDF184} } } } ;
34233 static const fp12_t var_expected = { { { {0x3C9481B6, 0x092C942D, 0xCFA969A2, 0x1D562EE6, 0x1E5F786C},
34234 {0x52C1BC14, 0x0E3FD3E1, 0x863E61D0, 0xBA7AB766, 0x071AFBEB} } ,
34235 { {0xF16944F0, 0xD16A8C01, 0x465B1B02, 0x59AD9D1D, 0x14DFE957},
34236 {0x33ACB38D, 0xA673A828, 0x0B163B2D, 0x271EE426, 0x14D30480} } } ,
34237 { { {0x85467B5B, 0xE222791B, 0x9D3F724D, 0xAEA3CB43, 0x035CBC8A},
34238 {0x0BEA09E5, 0x304B22E2, 0x3348A2FD, 0x3665288A, 0x1FC00485} } ,
34239 { {0x60E4C8B5, 0xDED0D761, 0x863692D0, 0x29D05AD9, 0x0F8E223D},
34240 {0x6E0097FD, 0x4EBA57CA, 0x5E40C478, 0x49A03958, 0x0CAA08DA} } } ,
34241 { { {0x3322BFDE, 0x5CC2E266, 0x1D9E309D, 0x258F9061, 0x01B5B820},
34242 {0x124472DF, 0xFB23BC26, 0x0E0A1ABA, 0x12CAF23A, 0x1E54F9E0} } ,
34243 { {0x87D33A59, 0x4D41FAB7, 0xEB7928EA, 0x6FA40051, 0x03D9ABE3},
34244 {0x590A43F1, 0x89F458BE, 0x0A002191, 0x600E7B5E, 0x00360867} } } } ;
34246 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4421 a000");
34247 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4422 a001");
34248 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4423 a010");
34249 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4424 a011");
34250 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4425 a100");
34251 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4426 a101");
34252 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4427 a110");
34253 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4428 a111");
34254 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4429 a200");
34255 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4430 a201");
34256 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4431 a210");
34257 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4432 a211");
34260 static const fp12_t var_a = { { { {0xAEE5E6C0, 0x01AFC946, 0x24FBE7DF, 0xEAD90AB3, 0x20495231},
34261 {0xB19D1D11, 0x61EEAB23, 0x29A3563C, 0xB2303D0D, 0x06F52457} } ,
34262 { {0x6673328A, 0x81E380C5, 0x501FB3F9, 0xD8F65E65, 0x177DD4CD},
34263 {0xFE917DB0, 0x33D938DB, 0x5F5BDBC9, 0x7DEBBAF2, 0x231223C4} } } ,
34264 { { {0xBD6FE572, 0xF8B5A131, 0x54A5E871, 0xD43FF9B2, 0x041810EE},
34265 {0x722EE293, 0x49ED76E4, 0xDE72F516, 0x95BCFE86, 0x16724312} } ,
34266 { {0xD4D7E51A, 0x8C7C0C37, 0x3F3CF847, 0xCD76B263, 0x0B4B50EB},
34267 {0x240CB60F, 0xC50ACD99, 0x61471C26, 0x2D4447F1, 0x1EDD3036} } } ,
34268 { { {0xE590611D, 0xA4AB701C, 0x92A5EE05, 0x8987680D, 0x070226D4},
34269 {0x43110FB5, 0xE9075933, 0x6E225564, 0x3D5CCED4, 0x0EA5E87D} } ,
34270 { {0xF628CCB6, 0xD7F8CC0F, 0xAB264452, 0x56E6349B, 0x05B2BC38},
34271 {0xD0A1F720, 0x20F28702, 0x17DE9AB2, 0xDBD8E746, 0x05DEAE8F} } } } ;
34272 static const fp12_t var_expected = { { { {0x0A554348, 0xEAEA25B8, 0x2C2BF22E, 0x5211C6AC, 0x1BACCE23},
34273 {0xEE8C7716, 0xC2987D6A, 0x452E2CAF, 0x7AFA2A35, 0x051D11A9} } ,
34274 { {0x5081AE10, 0x5554AC78, 0x9041BA63, 0x927ED623, 0x1D7F3D91},
34275 {0x181C3D73, 0xC1CA9AF1, 0x885A33CA, 0xE88EDC87, 0x0A238DE9} } } ,
34276 { { {0xBBC98E9A, 0xE8D9E413, 0x9940F27D, 0x8361487E, 0x0A0BF9D1},
34277 {0xBDA714D6, 0x472908F9, 0x98361A08, 0xC2C4B3A7, 0x1AD00601} } ,
34278 { {0xC50F8DC6, 0x180B54F2, 0x3A1305D2, 0xB5705EA1, 0x2122462A},
34279 {0xB11A8D69, 0x9EA67100, 0x3C27486F, 0x3FBCF55E, 0x0E8A317D} } } ,
34280 { { {0xE856093E, 0x7C52DCAF, 0xBEB6E7FD, 0x14A81D72, 0x0E01C063},
34281 {0x27573181, 0x4932DD7C, 0x30A44AD5, 0xD93410B3, 0x0CFCA64F} } ,
34282 { {0xC0A4F2DA, 0xA37DFE7D, 0xA0B94733, 0xA360E75A, 0x04343CD8},
34283 {0x3EF858D9, 0xF0C5702A, 0x557B11FE, 0x2123BDED, 0x158AD70B} } } } ;
34285 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4433 a000");
34286 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4434 a001");
34287 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4435 a010");
34288 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4436 a011");
34289 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4437 a100");
34290 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4438 a101");
34291 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4439 a110");
34292 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4440 a111");
34293 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4441 a200");
34294 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4442 a201");
34295 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4443 a210");
34296 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4444 a211");
34299 static const fp12_t var_a = { { { {0xA9408D67, 0x79D635DB, 0xC64E80C8, 0x1D70B487, 0x1FBC839F},
34300 {0x5B4C83E2, 0x3D862EE5, 0xC93E2B6D, 0x551ADA4C, 0x1BAFF8CE} } ,
34301 { {0x03D23C21, 0x108CC543, 0xE101D4B8, 0xF18F0692, 0x2280F447},
34302 {0xDC6B1C30, 0xDD4F9FF3, 0xBE3F68B2, 0xF29EF27E, 0x1273BBA7} } } ,
34303 { { {0x59CBE3B9, 0x077D32D5, 0x55335C05, 0xE09C0659, 0x1EAA31E0},
34304 {0xC9FBF6E9, 0xE50F176C, 0x7E850380, 0xE15BD51E, 0x1CB14D38} } ,
34305 { {0x30B0BA37, 0x6B821FB9, 0xABB46BD1, 0x89E706F8, 0x14CA25A7},
34306 {0x8935FB0E, 0x1640D000, 0x3B6B8943, 0x6C952F69, 0x2354CAB1} } } ,
34307 { { {0x339B9A18, 0xFB6FCF4E, 0x920A41C4, 0x1FEF5BEA, 0x063424AF},
34308 {0xDEB56CB9, 0x3871821B, 0xFA3BFA34, 0xC7972C5A, 0x15AC2CF4} } ,
34309 { {0x25ED51B0, 0x5569F1DB, 0x9C84CADD, 0x1B661C2D, 0x16B39511},
34310 {0xDBF824B0, 0x390E08DF, 0x54AAE2C1, 0x14EEE86A, 0x037D9489} } } } ;
34311 static const fp12_t var_expected = { { { {0x662B968C, 0xC5826405, 0x72E686C0, 0x70C2D22D, 0x08E6F2FC},
34312 {0x11501BC3, 0x8E5FC827, 0x4625F5A8, 0x11C0A0B9, 0x12C4C2CF} } ,
34313 { {0x7972AD0E, 0xD080320D, 0x053CC8DC, 0xF4EDB07E, 0x225A1C21},
34314 {0x3F11BADB, 0xDA222B9F, 0xF9B73B84, 0xD3510E1C, 0x0E2F8774} } } ,
34315 { { {0x81FDD98E, 0xD27E14BC, 0x8D849ECB, 0xE485D96A, 0x229FD805},
34316 {0x08666604, 0xEF62DDE7, 0xCD724401, 0xE49ADEB3, 0x0D02C719} } ,
34317 { {0x2A91DA04, 0xCC9EE1B3, 0x176604AB, 0x8C881B6F, 0x1CFFF39A},
34318 {0x8EBA9B55, 0x75336969, 0x957DA83A, 0xAF999B8D, 0x14058E9F} } } ,
34319 { { {0x4E3866A4, 0x96F4E24C, 0x6E788B97, 0x75EA0E5F, 0x10DFE06B},
34320 {0x69AC6CD8, 0x5944C9C5, 0x09C8AE23, 0x8CF20369, 0x0ABFBC3D} } ,
34321 { {0x6AC31BB1, 0xB54740A1, 0x95EF4CAC, 0x9974BEA2, 0x14DA570B},
34322 {0x32D771B0, 0x3825772C, 0x69C0191B, 0x6C01DCC6, 0x07BD1738} } } } ;
34324 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4445 a000");
34325 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4446 a001");
34326 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4447 a010");
34327 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4448 a011");
34328 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4449 a100");
34329 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4450 a101");
34330 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4451 a110");
34331 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4452 a111");
34332 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4453 a200");
34333 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4454 a201");
34334 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4455 a210");
34335 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4456 a211");
34338 static const fp12_t var_a = { { { {0xC356D592, 0x63CF259C, 0xC22CF91E, 0x3F485895, 0x23AEEEEB},
34339 {0x0E86C9A5, 0x664B6679, 0x62706204, 0xE1738C9C, 0x0AFC5B23} } ,
34340 { {0xBEA74C64, 0xA85BB7BF, 0x2089B91E, 0xB86AD0AB, 0x030AD4DF},
34341 {0xDCB02F1F, 0x0518C238, 0x1A58CE82, 0x759CEBE4, 0x0850ADD2} } } ,
34342 { { {0xC6174E85, 0x9A54C2C4, 0xF8503448, 0x5C2D3ABE, 0x0F4311A6},
34343 {0xC55AB9C7, 0xF68FFF15, 0x53A6C5BD, 0x4343E08A, 0x156671BF} } ,
34344 { {0x2826B8C6, 0xE393C1AA, 0x34CA5D9D, 0x26477510, 0x0530286A},
34345 {0x94F6CCC0, 0x29C88FED, 0xC8B5E019, 0xB86CAB6D, 0x11E2B291} } } ,
34346 { { {0xC43F4F4D, 0x4E299284, 0xF76D2E87, 0xCA363DFE, 0x07A22BBD},
34347 {0x8922352A, 0x5B10E72F, 0xBECACEBB, 0x46577203, 0x160C7BA2} } ,
34348 { {0x174F4077, 0xAC081139, 0xA8CB86B8, 0x160D2FB9, 0x08581CB8},
34349 {0x21E14911, 0x42515856, 0x5CA8604F, 0x0C697562, 0x13941800} } } } ;
34350 static const fp12_t var_expected = { { { {0xD9F8EACE, 0x4F23DCFA, 0xF86FEC5A, 0x8518C430, 0x1F4E7B04},
34351 {0x62FA721D, 0xDBE3EF0E, 0xD937CB0E, 0x0C6117B6, 0x19292064} } ,
34352 { {0xC37D5A5E, 0x021141EE, 0xC1BB59E2, 0x740EAC41, 0x052F6C63},
34353 {0x844199FD, 0x2D4DA9DB, 0x16F56869, 0xB68F5B3C, 0x1E404B68} } } ,
34354 { { {0xFE2E7EA5, 0x0C16FE90, 0x1F030814, 0x8BA4A132, 0x00B01FD8},
34355 {0xA17174B9, 0x2009006D, 0x515FA075, 0x3A0BD00A, 0x0A054FF1} } ,
34356 { {0x83B5A2B7, 0xB05B6177, 0x79EB32DB, 0xFC8C309D, 0x040CE195},
34357 {0xA8F63F6F, 0x44440F9A, 0x349C567E, 0xD3015639, 0x0963228B} } } ,
34358 { { {0xDBBE9048, 0x2FC6A983, 0x393E3A03, 0xD84D6783, 0x0630CC20},
34359 {0x14BADB00, 0x52631C61, 0xD246C34F, 0x4A7EAC3B, 0x17257062} } ,
34360 { {0x22C1B103, 0x64FB2970, 0x37270EEA, 0x1D1F5DA8, 0x1930DE3A},
34361 {0x826A7E6D, 0xE4E92E52, 0xA910D58E, 0x74FA4B90, 0x0043266F} } } } ;
34363 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4457 a000");
34364 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4458 a001");
34365 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4459 a010");
34366 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4460 a011");
34367 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4461 a100");
34368 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4462 a101");
34369 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4463 a110");
34370 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4464 a111");
34371 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4465 a200");
34372 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4466 a201");
34373 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4467 a210");
34374 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4468 a211");
34377 static const fp12_t var_a = { { { {0x9FB72771, 0x5F59B449, 0xDEA75EB6, 0xFB39F070, 0x0EDBCBC5},
34378 {0xECB7DC6B, 0xFE671CBB, 0x20963E56, 0x811E01B4, 0x1CACB956} } ,
34379 { {0x001A1BEF, 0xC6FAA360, 0x2B29CC8F, 0xCC271AD6, 0x18E666EB},
34380 {0x9BC432A2, 0x48502549, 0x1549D405, 0x7129B986, 0x004ECF94} } } ,
34381 { { {0xE1738CC6, 0xB4300FF2, 0x865B4391, 0x11DFCB9A, 0x0A73B840},
34382 {0x73DD25DA, 0xB6F549B5, 0x46AEB5EC, 0xBF458743, 0x1190EA0F} } ,
34383 { {0xE9E5DBDD, 0xE62E23F9, 0xE9703E64, 0x3CE4CF07, 0x0DC816D0},
34384 {0x9403874E, 0xA7537C6A, 0x0361B4FE, 0x8F65F229, 0x22B973BE} } } ,
34385 { { {0x1569FFDA, 0xBF48CD77, 0x39B53DDA, 0xAF1A7239, 0x22119048},
34386 {0xFB3297B8, 0x71C9E6F5, 0x3A1BC7B6, 0x91A7BF26, 0x1C11B37E} } ,
34387 { {0x5799EC31, 0xCFFD91EA, 0x118940B4, 0x78B98E99, 0x13BC6DC9},
34388 {0x93EF1E7B, 0x3D835DE3, 0xB0CF187D, 0xD19D1BF6, 0x11EB395F} } } } ;
34389 static const fp12_t var_expected = { { { {0xC98BDEC1, 0x08D2CBC3, 0xF668F915, 0x82C57333, 0x1E4107D4},
34390 {0x1C7624FC, 0x7A44F945, 0x66FBAB21, 0xFF0B9C16, 0x0AC8C188} } ,
34391 { {0x47CFFCA8, 0xFCF4BF62, 0xC5FFD66A, 0x97E2DFF7, 0x17249143},
34392 {0x02EA64D0, 0x9EEECDDD, 0xB2F54AAB, 0x929571F2, 0x002FCCEF} } } ,
34393 { { {0xEB489818, 0x1A690C61, 0xFAF0DA8E, 0x59BA25DF, 0x0CD1B9FB},
34394 {0x8A178F0C, 0xF34819CB, 0x07221FEA, 0x3F131A1F, 0x15C186D8} } ,
34395 { {0x2A0E7885, 0x9D384448, 0xBD850AD7, 0xF1C5423B, 0x07E96415},
34396 {0x997F8277, 0x3F880702, 0x4BB4C0E3, 0xDB96D7C0, 0x0AAD7044} } } ,
34397 { { {0x1215CF3B, 0xD4B61DE7, 0xCAEFC300, 0x4FC147CD, 0x16AEE730},
34398 {0x39B959D4, 0xFA97CF2F, 0xFE645AB8, 0x9C70E0C9, 0x18A74DDF} } ,
34399 { {0xDE829DAA, 0xC6D383FB, 0xBE461C4C, 0xBDC956E1, 0x10867E34},
34400 {0xA3E84808, 0x4C421CED, 0x35A49301, 0xD7E0C33B, 0x1977258B} } } } ;
34402 assert_bi_equal(var_expected[0][0][0], var_res[0][0][0],
"fp12_inv 4469 a000");
34403 assert_bi_equal(var_expected[0][0][1], var_res[0][0][1],
"fp12_inv 4470 a001");
34404 assert_bi_equal(var_expected[0][1][0], var_res[0][1][0],
"fp12_inv 4471 a010");
34405 assert_bi_equal(var_expected[0][1][1], var_res[0][1][1],
"fp12_inv 4472 a011");
34406 assert_bi_equal(var_expected[1][0][0], var_res[1][0][0],
"fp12_inv 4473 a100");
34407 assert_bi_equal(var_expected[1][0][1], var_res[1][0][1],
"fp12_inv 4474 a101");
34408 assert_bi_equal(var_expected[1][1][0], var_res[1][1][0],
"fp12_inv 4475 a110");
34409 assert_bi_equal(var_expected[1][1][1], var_res[1][1][1],
"fp12_inv 4476 a111");
34410 assert_bi_equal(var_expected[2][0][0], var_res[2][0][0],
"fp12_inv 4477 a200");
34411 assert_bi_equal(var_expected[2][0][1], var_res[2][0][1],
"fp12_inv 4478 a201");
34412 assert_bi_equal(var_expected[2][1][0], var_res[2][1][0],
"fp12_inv 4479 a210");
34413 assert_bi_equal(var_expected[2][1][1], var_res[2][1][1],
"fp12_inv 4480 a211");
#define fp12_add(res, a, b)
#define fp12_exp(res, a, b)
#define fp12_sub(res, a, b)
word_t bigint_t[BI_WORDS]
#define fp12_mul(res, a, b)
int assert_bi_equal(const bigint_t ex, const bigint_t tst, const char *msg)
Verifies that two big integers are equal.
#define fp12_frobenius_map(res, a, i)